Пример #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
Пример #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
Пример #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
Пример #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