Example #1
0
def get_mcat_data(skypos,rad):
    # Try once with the default radius.
    out = np.array(gQuery.getArray(
            gQuery.mcat_visit_sources(skypos[0],skypos[1],rad)))
    # If no MCAT sources found, try again with a radius 5 times bigger.
    if len(out) == 0:
        out = np.array(gQuery.getArray(
                gQuery.mcat_visit_sources(skypos[0],skypos[1],rad*5.)))
    # FIXME: The APER entries should really be generated
    try:
        return {'objid':np.array(out[:,0],dtype='int64'),
            'ra':np.array(out[:,1],dtype='float32'),
            'dec':np.array(out[:,2],dtype='float32'),
            'NUV':{'mag':np.array(out[:,3],dtype='float32'),
                   'skybg':np.array(out[:,6],dtype='float32'),
                   'expt':np.array(out[:,11],dtype='float32'),
                   'fwhm':np.array(out[:,8],dtype='float32'),
                   1:{'mag':np.array(out[:,19],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,33],dtype='float32')},
                   2:{'mag':np.array(out[:,20],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,34],dtype='float32')},
                   3:{'mag':np.array(out[:,21],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,35],dtype='float32')},
                   4:{'mag':np.array(out[:,22],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,36],dtype='float32')},
                   5:{'mag':np.array(out[:,23],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,37],dtype='float32')},
                   6:{'mag':np.array(out[:,24],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,38],dtype='float32')},
                   7:{'mag':np.array(out[:,25],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,39],dtype='float32')} },
            'FUV':{'mag':np.array(out[:,4],dtype='float32'),
                   'skybg':np.array(out[:,7],dtype='float32'),
                   'expt':np.array(out[:,10],dtype='float32'),
                   'fwhm':np.array(out[:,9],dtype='float32'),
                   1:{'mag':np.array(out[:,12],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,26],dtype='float32')},
                   2:{'mag':np.array(out[:,13],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,27],dtype='float32')},
                   3:{'mag':np.array(out[:,14],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,28],dtype='float32')},
                   4:{'mag':np.array(out[:,15],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,29],dtype='float32')},
                   5:{'mag':np.array(out[:,16],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,30],dtype='float32')},
                   6:{'mag':np.array(out[:,17],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,31],dtype='float32')},
                   7:{'mag':np.array(out[:,18],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,32],dtype='float32')} } }
    except IndexError:
        # If there are STILL no detections, then pass a dict with empty values.
        # A default set of values will then be used.
        return {'objid':None,'ra':None,'dec':None,'NUV':None,'FUV':None}
    except:
        raise
Example #2
0
def get_mcat_data(skypos,rad):
    out = np.array(gQuery.getArray(
                         gQuery.mcat_visit_sources(skypos[0],skypos[1],rad)))
    # FIXME: The APER entries should really be generated
    try:
        return {'objid':np.array(out[:,0],dtype='int64'),
            'ra':np.array(out[:,1],dtype='float32'),
            'dec':np.array(out[:,2],dtype='float32'),
            'NUV':{'mag':np.array(out[:,3],dtype='float32'),
                   'skybg':np.array(out[:,6],dtype='float32'),
                   'expt':np.array(out[:,11],dtype='float32'),
                   'fwhm':np.array(out[:,8],dtype='float32'),
                   1:{'mag':np.array(out[:,19],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,33],dtype='float32')},
                   2:{'mag':np.array(out[:,20],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,34],dtype='float32')},
                   3:{'mag':np.array(out[:,21],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,35],dtype='float32')},
                   4:{'mag':np.array(out[:,22],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,36],dtype='float32')},
                   5:{'mag':np.array(out[:,23],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,37],dtype='float32')},
                   6:{'mag':np.array(out[:,24],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,38],dtype='float32')},
                   7:{'mag':np.array(out[:,25],dtype='float32')+zpmag('NUV'),
                      'err':np.array(out[:,39],dtype='float32')} },
            'FUV':{'mag':np.array(out[:,4],dtype='float32'),
                   'skybg':np.array(out[:,7],dtype='float32'),
                   'expt':np.array(out[:,10],dtype='float32'),
                   'fwhm':np.array(out[:,9],dtype='float32'),
                   1:{'mag':np.array(out[:,12],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,26],dtype='float32')},
                   2:{'mag':np.array(out[:,13],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,27],dtype='float32')},
                   3:{'mag':np.array(out[:,14],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,28],dtype='float32')},
                   4:{'mag':np.array(out[:,15],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,29],dtype='float32')},
                   5:{'mag':np.array(out[:,16],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,30],dtype='float32')},
                   6:{'mag':np.array(out[:,17],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,31],dtype='float32')},
                   7:{'mag':np.array(out[:,18],dtype='float32')+zpmag('FUV'),
                      'err':np.array(out[:,32],dtype='float32')} } }
    except IndexError:
        return False
    except:
        raise
Example #3
0
def get_mags(band,ra0,dec0,radius,maglimit,mode='coadd',
                   zpmag={'NUV':20.08,'FUV':18.82},verbose=0):
    """Given RA, Dec and search radius, searches the coadd MCAT for sources.
    Returns a dict() which contains magnitudes for all of the APER settings.
    Note: Visit mode returns a lot more sources, more slowly than coadd mode
    given the same search parameters. You should probably use smaller search
    radii in visit mode. If you're just trying to find unique sources in a
    large region, use coadd mode and then pass the result through the
    parse_unique_sources() function contained in this module.
    """
    zpf,zpn = zpmag['FUV'],zpmag['NUV']
    if mode=='coadd':
        out =np.array(gQuery.getArray(
                  gQuery.mcat_sources(band,ra0,dec0,radius,maglimit=maglimit),
                  verbose=verbose))
        if not len(out):
            print "Warning: No sources found!"
            return 0
        return {'ra':out[:,0],'dec':out[:,1],
                'FUV':{'mag':out[:,3],1:out[:,9]+zpf,2:out[:,10]+zpf,
                       3:out[:,11]+zpf,4:out[:,12]+zpf,5:out[:,13]+zpf,
                       6:out[:,14],7:out[:,15]+zpf},
                'NUV':{'mag':out[:,2],1:out[:,16]+zpn,2:out[:,17]+zpn,
                       3:out[:,18]+zpn,4:out[:,19]+zpn,5:out[:,20]+zpn,
                       6:out[:,21]+zpn,7:out[:,22]+zpn}}
    elif mode=='visit':
        out = np.array(gQuery.getArray(
                       gQuery.mcat_visit_sources(ra0,dec0,radius),
                       verbose=verbose))
        # NOTE: For runtime considerations, mcat_visit_sources() does not
        # make any slices on time or maglimit, so we need to do it here.
        ix = np.where((out[:,2 if band=='NUV' else 3]<maglimit) &
                                           (out[:,2 if band=='NUV' else 3]>0))
        return {'ra':out[:,0][ix],'dec':out[:,1][ix],
                'NUV':{'mag':out[:,2][ix],'expt':out[:,8][ix],
                1:out[:,18][ix]+zpn,2:out[:,19][ix]+zpn,3:out[:,20][ix]+zpn,
                4:out[:,21][ix]+zpn,5:out[:,22][ix]+zpn,6:out[:,23][ix]+zpn,
                7:out[:,24][ix]+zpn},
                'FUV':{'mag':out[:,3][ix],'expt':out[:,9][ix],
                1:out[:,11][ix]+zpf,2:out[:,12][ix]+zpf,3:out[:,13][ix]+zpf,
                4:out[:,14][ix]+zpf,5:out[:,15][ix]+zpf,6:out[:,16][ix]+zpf,
                7:out[:,17][ix]+zpf}}
    else:
        print "mode must be in [coadd,visit]"
        return
Example #4
0
def get_mcat_data(skypos, rad):
    # Try once with the default radius.
    out = np.array(gQuery.getArray(gQuery.mcat_visit_sources(skypos[0], skypos[1], rad)))
    # If no MCAT sources found, try again with a radius 5 times bigger.
    if len(out) == 0:
        out = np.array(gQuery.getArray(gQuery.mcat_visit_sources(skypos[0], skypos[1], rad * 5.0)))
    # FIXME: The APER entries should really be generated
    try:
        return {
            "objid": np.array(out[:, 0], dtype="int64"),
            "ra": np.array(out[:, 1], dtype="float32"),
            "dec": np.array(out[:, 2], dtype="float32"),
            "NUV": {
                "mag": np.array(out[:, 3], dtype="float32"),
                "skybg": np.array(out[:, 6], dtype="float32"),
                "expt": np.array(out[:, 11], dtype="float32"),
                "fwhm": np.array(out[:, 8], dtype="float32"),
                1: {
                    "mag": np.array(out[:, 19], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 33], dtype="float32"),
                },
                2: {
                    "mag": np.array(out[:, 20], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 34], dtype="float32"),
                },
                3: {
                    "mag": np.array(out[:, 21], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 35], dtype="float32"),
                },
                4: {
                    "mag": np.array(out[:, 22], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 36], dtype="float32"),
                },
                5: {
                    "mag": np.array(out[:, 23], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 37], dtype="float32"),
                },
                6: {
                    "mag": np.array(out[:, 24], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 38], dtype="float32"),
                },
                7: {
                    "mag": np.array(out[:, 25], dtype="float32") + zpmag("NUV"),
                    "err": np.array(out[:, 39], dtype="float32"),
                },
            },
            "FUV": {
                "mag": np.array(out[:, 4], dtype="float32"),
                "skybg": np.array(out[:, 7], dtype="float32"),
                "expt": np.array(out[:, 10], dtype="float32"),
                "fwhm": np.array(out[:, 9], dtype="float32"),
                1: {
                    "mag": np.array(out[:, 12], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 26], dtype="float32"),
                },
                2: {
                    "mag": np.array(out[:, 13], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 27], dtype="float32"),
                },
                3: {
                    "mag": np.array(out[:, 14], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 28], dtype="float32"),
                },
                4: {
                    "mag": np.array(out[:, 15], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 29], dtype="float32"),
                },
                5: {
                    "mag": np.array(out[:, 16], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 30], dtype="float32"),
                },
                6: {
                    "mag": np.array(out[:, 17], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 31], dtype="float32"),
                },
                7: {
                    "mag": np.array(out[:, 18], dtype="float32") + zpmag("FUV"),
                    "err": np.array(out[:, 32], dtype="float32"),
                },
            },
        }
    except IndexError:
        # If there are STILL no detections, then pass a dict with empty values.
        # A default set of values will then be used.
        return {"objid": None, "ra": None, "dec": None, "NUV": None, "FUV": None}
    except:
        raise