*match a corrdinate set against this Matcher object's coordinate set*

        **Key Arguments:**
            - ``ra`` -- list, numpy array or single ra value
            - ``dec`` -- --list, numpy array or single dec value (must match ra array length)
            - ``radius`` -- radius of circle in degrees
            - ``maxmatch`` -- maximum number of matches to return. Set to `0` to match all points. Default *1* (i.e. closest match)

        **Return:**
            - None

        **Usage:**

            Once we have initialised a Matcher coordinateSet object we can match other coordinate sets against it:

            .. code-block:: python

                twoArcsec = 2.0 / 3600.
                raList2 = [200.0, 200.0, 200.0, 175.23, 55.25]
                decList2 = [24.3 + 0.75 * twoArcsec, 24.3 + 0.25 * twoArcsec,
                    24.3 - 0.33 * twoArcsec, -28.25 + 0.58 * twoArcsec, 75.22]

                matchIndices1, matchIndices2, seps = coordinateSet.match(
                    ra=raList2,
                    dec=decList2,
                    radius=twoArcsec,
                    maxmatch=0
                )

                for m1, m2, s in zip(matchIndices1, matchIndices2, seps):
                    print raList1[m1], decList1[m1], " -> ", s * 3600., " arcsec -> ", raList2[m2], decList2[m2]

            Or to return just the nearest matches:

            .. code-block:: python

                matchIndices1, matchIndices2, seps = coordinateSet.match(
                    ra=raList2,
                    dec=decList2,
                    radius=twoArcsec,
                    maxmatch=1
                )

            Note from the print statement, you can index the arrays ``raList1``, ``decList1`` with the ``matchIndices1`` array values and  ``raList2``, ``decList2`` with the ``matchIndices2`` values.

def match(self, ra, dec, radius, maxmatch=1):
        """*match a corrdinate set against this Matcher object's coordinate set*

        **Key Arguments:**
            - ``ra`` -- list, numpy array or single ra value
            - ``dec`` -- --list, numpy array or single dec value (must match ra array length)
            - ``radius`` -- radius of circle in degrees
            - ``maxmatch`` -- maximum number of matches to return. Set to `0` to match all points. Default *1* (i.e. closest match)

        **Return:**
            - None

        **Usage:**

            Once we have initialised a Matcher coordinateSet object we can match other coordinate sets against it:

            .. code-block:: python

                twoArcsec = 2.0 / 3600.
                raList2 = [200.0, 200.0, 200.0, 175.23, 55.25]
                decList2 = [24.3 + 0.75 * twoArcsec, 24.3 + 0.25 * twoArcsec,
                    24.3 - 0.33 * twoArcsec, -28.25 + 0.58 * twoArcsec, 75.22]

                matchIndices1, matchIndices2, seps = coordinateSet.match(
                    ra=raList2,
                    dec=decList2,
                    radius=twoArcsec,
                    maxmatch=0
                )

                for m1, m2, s in zip(matchIndices1, matchIndices2, seps):
                    print raList1[m1], decList1[m1], " -> ", s * 3600., " arcsec -> ", raList2[m2], decList2[m2]

            Or to return just the nearest matches:

            .. code-block:: python

                matchIndices1, matchIndices2, seps = coordinateSet.match(
                    ra=raList2,
                    dec=decList2,
                    radius=twoArcsec,
                    maxmatch=1
                )

            Note from the print statement, you can index the arrays ``raList1``, ``decList1`` with the ``matchIndices1`` array values and  ``raList2``, ``decList2`` with the ``matchIndices2`` values.
        """

        if self.convertToArray == True:
            from astrocalc.coords import coordinates_to_array
            ra, dec = coordinates_to_array(
                log=self.log,
                ra=ra,
                dec=dec
            )

        radius = numpy.array(radius, dtype='f8', ndmin=1, copy=False)

        if ra.size != dec.size:
            raise ValueError("ra size (%d) != "
                             "dec size (%d)" % (ra.size, dec.size))

        if radius.size != 1 and radius.size != ra.size:
            raise ValueError("radius size (%d) != 1 and"
                             " != ra,dec size (%d)" % (radius.size, ra.size))

        return super(Matcher, self).match(ra, dec, radius, maxmatch, False)