Exemplo n.º 1
0
 def query_GaiaDR1(self, ID=None):
     from astroquery.gaia import Gaia
     
     key = 'Gaia DR1'
     
     if ID is None:
         ID = self.IDs[key]
 
     tbl = Table(names = ('source_id',), dtype = (int,))
     for i, gid in tqdm(enumerate(ID)):
         if not isinstance(gid, str):
             tbl.add_row(None)
             tbl[-1][key] = int(re.sub(r"\D", "", gid))
         elif len(gid) == 0:
             tbl.add_row(None)
         else:
             gid = int(gid.replace(key+' ', ''))
 
             adql_query = "select * from gaiadr1.gaia_source where source_id=%i" % (gid)
             
             job = Gaia.launch_job(adql_query).get_results()
 
             idx = np.where(job['source_id'].quantity == gid)[0]
 
             if len(idx) > 0:
                 tbl = avstack([tbl, job[idx]])
             else:
                 tbl.add_row(None)
                 tbl[-1][key] = int(re.sub(r"\D", "", gid))
 
     self.GDR1 = tbl
     return self.GDR1
Exemplo n.º 2
0
def add_to_table(job, tbl, identifier):
    if len(job) == 0:
        add_empty_row(tbl)
    else:
        for i, row in enumerate(job[0]):
            if row[identifier] in id:
                tbl = avstack([tbl, row])
                break
Exemplo n.º 3
0
    def query_TIC(self, ID=None, radius = 10.0*u.arcsec):
        
        key = 'TIC'
        
        if ID is None:
            ID = self.IDs['TIC']
        
        tbl = Table(names = ('ID',), dtype = (str,))
        
        for i, id in tqdm(enumerate(ID)):
            if not isinstance(id, str):
                add_empty_row(tbl)
            else:
                job = Catalogs.query_object(objectname=id, catalog='TIC', objType='STAR', radius = 10.0*u.arcsec)
                
                ridx = job['ID'] == str(id.replace('TIC ',''))
                if len(job[ridx][0]) > 0:
                    tbl = avstack([tbl, job[ridx][0]])
                else:
                    add_empty_row(tbl)
        
        self.TIC = tbl

        if not hasattr(self, 'simbad'):
            self.query_simbad(ID)  
            
        for i in range(len(self.IDs)): 
            if len(self.IDs['2MASS'][i])==0 and (self.TIC['TWOMASS'][i] != 0):
                self.IDs['2MASS'][i] = '2MASS J'+self.TIC['TWOMASS'][i]
            
            if len(self.IDs['HIP'][i])==0 and (self.TIC['HIP'][i] != 0):
                self.IDs['HIP'][i] = 'HIP '+self.TIC['HIP'][i]
            
            if len(self.IDs['TYC'][i])==0 and (self.TIC['TYC'][i] != 0):
                self.IDs['TYC'][i] = 'TYC '+self.TIC['TYC'][i]
            
            if len(self.IDs['KIC'][i])==0 and (self.TIC['KIC'][i] != 0):
                self.IDs['KIC'][i] = 'KIC '+self.TIC['KIC'][i]
        
        return self.TIC
Exemplo n.º 4
0
 def query_EPIC(self, ID=None, radius = 10.0*u.arcsec):
     import warnings
     from astropy.utils.metadata import MergeConflictWarning
     warnings.filterwarnings("ignore", category = MergeConflictWarning)
     
     if ID is None:
         ID = self.IDs['EPIC']
             
     tbl = Table(names = ('ID',), dtype = (int,))
     
     for i, id in tqdm(enumerate(ID)):
         id = id.replace('EPIC ','')
         if not isinstance(id, str):
             add_empty_row(tbl)
         else:
             
             v = Vizier(column_filters={"ID":f"=={id}", 'OType':'STAR'})
             job = v.get_catalogs('IV/34/epic')
             
             ridx = job[0]['ID'].quantity == int(id)
             
             if len(job[0][ridx]) > 0:
                 tbl = avstack([tbl, job[0][ridx][0]])  
             else:
                 add_empty_row(tbl)
     
     self.EPIC = tbl
     
     # Fill in blank IDs where possible
     if not hasattr(self,'simbad'):
         self.query_simbad(ID)        
     for i in range(len(self.IDs)): 
         if len(self.IDs['2MASS'][i])==0:
             self.IDs['2MASS'][i] = '2MASS J'+self.EPIC['_2MASS'][i]
     self.query_simbad(self.IDs['2MASS'])
     
     return self.EPIC
Exemplo n.º 5
0
 def query_KIC(self, ID = None, radius = 10.0*u.arcsec):
 
     warnings.filterwarnings("ignore", category = MergeConflictWarning)
 
     if ID is None:
         ID = self.IDs['KIC']
 
     tbl = Table(names = ('KIC',), dtype = (int,))
     for i, id in tqdm(enumerate(ID)):
         
         if not isinstance(id, ):
             tbl.add_row(None)
             tbl[-1]['KIC'] = int(re.sub(r"\D", "", id))
             
         else:
             job = Vizier.query_object(object_name = id, catalog = 'V/133/kic', radius = radius)
             
             if len(job) > 0:
                 
                 id_int = int(id.replace('KIC',''))
             
                 idx = job[0]['KIC'] == id_int
                 
                 id_int = int(id.replace('KIC',''))
             
                 idx = job[0]['KIC'] == id_int
                 
                 tbl = avstack([tbl, job[0][idx]]) 
             
             else:
                 tbl.add_row(None)
                 tbl[-1]['KIC'] = int(re.sub(r"\D", "", id))
                 warnings.warn(f'Unable to find KIC entry for {id}')
 
     self.KIC = tbl
     return self.KIC