def query_GaiaEDR3(ra, dec, mag, filter, radius=60.): G_guess = guess_Gaia_mag_from_color(mag, filter) coord = SkyCoord(ra = ra, dec = dec, unit = (u.degree, u.degree), \ frame = 'icrs') radius = u.Quantity(radius / 3600., u.deg) result = Gaia.query_object(coordinate=coord, radius=radius) Gmag0 = result["phot_g_mean_mag"] filt = np.abs(Gmag0 - G_guess) < 1.0 parallax0 = result["parallax"][filt] parallax_error0 = result["parallax_error"][filt] gaiaid0 = result["source_id"][filt] if len(parallax0) == 0: gaiaid = "" parallax = np.nan parallax_error = np.nan elif len(parallax0) > 1: gaiaid = gaiaid0 parallax = parallax0 parallax_error = parallax_error0 else: gaiaid = gaiaid0[0] parallax = parallax0[0] parallax_error = parallax_error0[0] return (gaiaid, parallax, parallax_error)
def query_survey(dataframe, idx, features, survey): series = dataframe.loc[idx] coord = SkyCoord(ra=series.RA, dec=series.Dec, unit=(u.deg, u.deg)) try: if survey == '2MASS': temp = Irsa.query_region(coord, radius=search_radius, catalog='fp_psc').to_pandas() elif survey == 'GAIA': temp = Gaia.query_object(coordinate=coord, width=search_radius, height=search_radius).to_pandas() else: print('Invalid Survey') catalog = SkyCoord(ra=temp.ra, dec=temp.dec, unit=(u.deg, u.deg)) i, _, _ = match_coordinates_sky(coord, catalog) for feature in features: dataframe.at[idx, feature] = temp.at[int(i), feature] except Exception as e: print(e)
def get_distance(target): """ Parameters ---------- target : str Target name. Returns ------- str SIMBAD name. float Distance (pc). """ # Liu et al. (2016) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/ApJ/833/96 # Dupuy & Liu (2012) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/ApJS/201/19 # Faherty et al. (2012) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/ApJ/752/56 # Weinberger et al. (2016) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/AJ/152/24 # Theissen (2018) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/ApJ/862/173 # Kirkpatrick et al. (2012) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/ApJ/753/156 # Monet et al. (1992) # http://cdsarc.u-strasbg.fr/viz-bin/cat/J/AJ/103/638 catalogues = ('J/ApJ/833/96' 'J/ApJS/201/19', 'J/ApJ/752/56', 'J/AJ/152/24', 'J/ApJ/862/173', 'J/ApJ/753/156', 'J/AJ/103/638') if target[-2:] == 'AB': target = target[:-2] elif target[-3:] == 'ABC': target = target[:-3] if target[0:7] == 'DENIS-P': target = target[:5] + target[7:] if target[-2] == '.': target = target[:-2] if target[0:5] == 'DENIS' and target[6:7] != 'J': target = target[:5] + ' J' + target[6:] simbad_id = 'None' parallax = ma.masked time.sleep(0.15) simbad = Simbad() simbad.add_votable_fields('parallax') simbad = simbad.query_object(target) if simbad is not None: simbad_id = simbad['MAIN_ID'][0] simbad_id = simbad_id.decode('utf-8') parallax = simbad['PLX_VALUE'][0] if ma.is_masked(parallax): for _, item in enumerate(catalogues): result = Vizier.query_object(target, catalog=item) if result.keys(): try: parallax = result[0]['plx'][0] # [mas] except KeyError: pass if ma.is_masked(parallax): try: parallax = result[0]['Plx'][0] # [mas] except KeyError: pass else: continue if not ma.is_masked(parallax): break if ma.is_masked(parallax): if simbad is not None: coord_ra = simbad['RA'][0] coord_dec = simbad['DEC'][0] coord = SkyCoord(ra=coord_ra, dec=coord_dec, unit=(u.hourangle, u.deg), frame='icrs') result = Gaia.query_object(coordinate=coord, width=1. * u.arcsec, height=1. * u.arcsec) if result: parallax = result['parallax'][0] # [mas] if ma.is_masked(parallax) or parallax < 0.: distance = np.nan else: distance = 1. / (parallax * 1e-3) # [pc] return simbad_id, distance