def load_photometry(fieldname, tile, radec_poly, use_vega, disable_intercal, server='marvin'): """Load WIRCam photometry from Starplex, converted to AB mag.""" instrument = "wircam" connect_to_server(server) session = Session() mag1obs = aliased(Observation) mag2obs = aliased(Observation) bp1 = aliased(Bandpass) bp2 = aliased(Bandpass) catalog = session.query(Catalog).\ filter(Catalog.name == fieldname).\ filter(Catalog.instrument == instrument).\ one() q = session.query(CatalogStar.cfrac, mag1obs.mag, mag2obs.mag_err, mag2obs.mag, mag2obs.mag_err).\ join(mag1obs, CatalogStar.observations).\ join(mag2obs, CatalogStar.observations).\ join(Catalog).\ filter(Catalog.name == fieldname).\ filter(Catalog.instrument == instrument).\ join(bp1, mag1obs.bandpass).\ filter(bp1.name == "J").\ join(bp2, mag2obs.bandpass).\ filter(bp2.name == "Ks").\ filter(func.q3c_poly_query(CatalogStar.ra, CatalogStar.dec, np.array(radec_poly).flatten().tolist())) dt = [('cfrac', np.float), ('J', np.float), ('J_err', np.float), ('Ks', np.float), ('Ks_err', np.float)] data = np.array(q.all(), dtype=np.dtype(dt)) # Apply the intercal ZP correction if not disable_intercal: if 'intercal' in catalog.meta: for band in ['J', 'Ks']: if band in catalog.meta['intercal']: data[band] += catalog.meta['intercal'][band]['zp'] # Convert to AB if not use_vega: data['J'] = wircam_vega_to_ab(data['J'], "J") data['Ks'] = wircam_vega_to_ab(data['Ks'], "Ks") log.info("Field {0} {2} {3:d} has {1:d} stars". format(fieldname, data.shape[0], instrument, tile)) session.close() if len(data) == 0: raise NoDataError return data
def load_photometry(fieldname, use_vega=False, apply_intercal=False, server='marvin'): """Load WIRCam photometry from Starplex, converted to AB mag. Filter out MW stars with a rudimentary J-Ks > 0.9 (Vega) color cut. """ instrument = "wircam" connect_to_server(server) session = Session() mag1obs = aliased(Observation) mag2obs = aliased(Observation) bp1 = aliased(Bandpass) bp2 = aliased(Bandpass) catalog = session.query(Catalog).\ filter(Catalog.name == fieldname).\ filter(Catalog.instrument == instrument).\ one() q = session.query(CatalogStar.cfrac, CatalogStar.ra, CatalogStar.dec, mag1obs.mag, mag1obs.mag_err, mag2obs.mag, mag2obs.mag_err).\ join(mag1obs, CatalogStar.observations).\ join(mag2obs, CatalogStar.observations).\ join(Catalog).\ filter(Catalog.name == fieldname).\ filter(Catalog.instrument == instrument).\ join(bp1, mag1obs.bandpass).\ filter(bp1.name == "J").\ join(bp2, mag2obs.bandpass).\ filter(bp2.name == "Ks") dt = [('cfrac', np.float), ('ra', np.float), ('dec', np.float), ('J', np.float), ('J_err', np.float), ('Ks', np.float), ('Ks_err', np.float)] data = np.array(q.all(), dtype=np.dtype(dt)) # Filter out MW stars # FIXME rudimentary # Using Vega Mag here! sel = np.where((data['J'] - data['Ks']) > 0.9)[0] data = data[sel] # Apply the intercal ZP correction if apply_intercal: if 'intercal' in catalog.meta: for band in ['J', 'Ks']: if band in catalog.meta['intercal']: data[band] += catalog.meta['intercal'][band]['zp'] # Convert to AB if not use_vega: data['J'] = wircam_vega_to_ab(data['J'], "J") data['Ks'] = wircam_vega_to_ab(data['Ks'], "Ks") log.info("Field {0} {2} has {1:d} stars".format(fieldname, data.shape[0], instrument)) session.close() if len(data) == 0: raise NoDataError return data
def load_photometry(fieldname, use_vega=False, apply_intercal=False, server='marvin'): """Load WIRCam photometry from Starplex, converted to AB mag. Filter out MW stars with a rudimentary J-Ks > 0.9 (Vega) color cut. """ instrument = "wircam" connect_to_server(server) session = Session() mag1obs = aliased(Observation) mag2obs = aliased(Observation) bp1 = aliased(Bandpass) bp2 = aliased(Bandpass) catalog = session.query(Catalog).\ filter(Catalog.name == fieldname).\ filter(Catalog.instrument == instrument).\ one() q = session.query(CatalogStar.cfrac, CatalogStar.ra, CatalogStar.dec, mag1obs.mag, mag1obs.mag_err, mag2obs.mag, mag2obs.mag_err).\ join(mag1obs, CatalogStar.observations).\ join(mag2obs, CatalogStar.observations).\ join(Catalog).\ filter(Catalog.name == fieldname).\ filter(Catalog.instrument == instrument).\ join(bp1, mag1obs.bandpass).\ filter(bp1.name == "J").\ join(bp2, mag2obs.bandpass).\ filter(bp2.name == "Ks") dt = [('cfrac', np.float), ('ra', np.float), ('dec', np.float), ('J', np.float), ('J_err', np.float), ('Ks', np.float), ('Ks_err', np.float)] data = np.array(q.all(), dtype=np.dtype(dt)) # Filter out MW stars # FIXME rudimentary # Using Vega Mag here! sel = np.where((data['J'] - data['Ks']) > 0.9)[0] data = data[sel] # Apply the intercal ZP correction if apply_intercal: if 'intercal' in catalog.meta: for band in ['J', 'Ks']: if band in catalog.meta['intercal']: data[band] += catalog.meta['intercal'][band]['zp'] # Convert to AB if not use_vega: data['J'] = wircam_vega_to_ab(data['J'], "J") data['Ks'] = wircam_vega_to_ab(data['Ks'], "Ks") log.info("Field {0} {2} has {1:d} stars". format(fieldname, data.shape[0], instrument)) session.close() if len(data) == 0: raise NoDataError return data