Skip to content

Commit

Permalink
Updated poetry file dependencies. Updated Vizier catalog queries to n…
Browse files Browse the repository at this point in the history
…ew archive URLs, matched updated vizier query return list formats, added support for Gaia DR3, fixed Gaia Catalog test
  • Loading branch information
rachel3834 committed Jan 14, 2025
1 parent 010086d commit 6aa3fe3
Show file tree
Hide file tree
Showing 5 changed files with 1,311 additions and 22 deletions.
11 changes: 7 additions & 4 deletions microlensing_photometry/logistics/GaiaTools/GaiaCatalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import astropy.units as u
from astropy.coordinates import SkyCoord
import numpy as np
from os import path

from microlensing_photometry.logistics import vizier_tools

Expand All @@ -23,21 +24,23 @@ def collect_Gaia_catalog(ra,dec,radius=15,row_limit = 10000,catalog_name='Gaia_c
-------
gaia_catalog : astropy.Table, sorted by magnitude (brighter to fainter)
"""
catalog_path = path.join(catalog_path, catalog_name)

try:

from astropy.table import Table

gaia_catalog = Table.read(catalog_name, format='ascii')
gaia_catalog = Table.read(catalog_path, format='ascii')

except:

gaia_catalog = vizier_tools.search_vizier_for_sources(ra, dec, radius, 'Gaia-EDR3', row_limit=-1,
coords='degree', log=None, debug=False)
gaia_catalog = vizier_tools.search_vizier_for_sources(ra, dec, radius, 'Gaia-DR3', row_limit=-1,
coords='degree', log=None, debug=True)

mask = np.isfinite(gaia_catalog['phot_g_mean_flux'])
sub_gaia_catalog = gaia_catalog[mask]
sub_gaia_catalog = sub_gaia_catalog[sub_gaia_catalog['phot_g_mean_flux'].argsort()[::-1],]
sub_gaia_catalog.write(catalog_name, format='ascii')
sub_gaia_catalog.write(catalog_path, format='ascii')

gaia_catalog = sub_gaia_catalog

Expand Down
29 changes: 19 additions & 10 deletions microlensing_photometry/logistics/vizier_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,27 @@ def search_vizier_for_sources(ra, dec, radius, catalog, row_limit=-1,
'pmDE':'pm_dec', 'e_pmDE':'pm_dec_error',
'Plx':'parallax', 'e_Plx': 'parallax_error'},
#'parallax':'parallax', 'parallax_error': 'parallax_error'},
{}]
{}],
'Gaia-DR3': ['I/355/gaiadr3',
{'RA_ICRS': 'ra', 'DE_ICRS': 'dec', 'Source': 'source_id',
'e_RA_ICRS': 'ra_error', 'e_DE_ICRS': 'dec_error',
'FG': 'phot_g_mean_flux', 'e_FG': 'phot_g_mean_flux_error',
'FBP': 'phot_bp_mean_flux', 'e_FBP': 'phot_bp_mean_flux_error',
'FRP': 'phot_rp_mean_flux', 'e_FRP': 'phot_rp_mean_flux_error',
'PM': 'pm', 'pmRA': 'pm_ra', 'e_pmRA': 'pm_ra_error',
'pmDE': 'pm_dec', 'e_pmDE': 'pm_dec_error',
'Plx': 'parallax', 'e_Plx': 'parallax_error'},
{}],
}

(cat_id,cat_col_dict,cat_filters) = supported_catalogs[catalog]

if catalog=='Gaia-EDR3':
v = Vizier(column_filters=cat_filters)
else:
v = Vizier(columns=list(cat_col_dict.keys()),\
column_filters=cat_filters)

v = Vizier(column_filters=cat_filters)

v.ROW_LIMIT = row_limit

if 'sexigesimal' in coords:
Expand All @@ -75,12 +83,11 @@ def search_vizier_for_sources(ra, dec, radius, catalog, row_limit=-1,
catalog_list = Vizier.find_catalogs(cat_id)

(status, result) = query_vizier_servers(v, c, r, [cat_id], debug=debug)

if result != None and len(result) == 1:
if result != None and len(result) > 0:

col_list = []
for col_id, col_name in cat_col_dict.items():
col = table.Column(name=col_name, data=result[0][col_id].data)
col = table.Column(name=col_name, data=result[col_id].data)
col_list.append(col)

result = table.Table( col_list )
Expand Down Expand Up @@ -111,7 +118,7 @@ def query_vizier_servers(query_service, coord, search_radius, catalog_id, log=No
result : astropy.Table, an astropy.Table containing the catalog
"""

vizier_servers_list = ['vizier.cfa.harvard.edu', 'vizier.hia.nrc.ca', 'vizier.u-strasbg.fr']
vizier_servers_list = ['vizier.cds.unistra.fr', 'vizier.cfa.harvard.edu']

query_service.VIZIER_SERVER = vizier_servers_list[0]

Expand All @@ -132,6 +139,7 @@ def query_vizier_servers(query_service, coord, search_radius, catalog_id, log=No
log.warning('Searching catalog server '+repr(query_service.VIZIER_SERVER))

try:
# Query_region now returns a TableList object, so we need to extract the result
result = query_service.query_region(coord, radius=search_radius, catalog=catalog_id)

# Handle long timeout requests:
Expand Down Expand Up @@ -159,14 +167,15 @@ def query_vizier_servers(query_service, coord, search_radius, catalog_id, log=No

return status, result

if result == None or len(result) > 0:
continue_query = False
elif len(result) == 0:
if result == None or len(result) == 0:
iserver += 1
if iserver >= len(vizier_servers_list):
continue_query = False
result = []
status = False
elif len(result) > 0:
continue_query = False
result = result[0]

return status, result

Expand Down
18 changes: 11 additions & 7 deletions microlensing_photometry/tests/test_logistics.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,26 @@
from microlensing_photometry.astrometry import wcs as lcowcs
from microlensing_photometry.logistics import image_tools

CWD = getcwd()
TEST_DATA_DIR = path.join(CWD, 'tests/test_output')
def test_collect_Gaia_catalog():

ra,dec,radius = 270,-30, 0.1

gaia_catalog = GC.collect_Gaia_catalog(ra,dec,radius=radius,row_limit = 10000,catalog_name='Gaia_catalog.dat',
catalog_path='../')
catalog_path=TEST_DATA_DIR)

assert len(gaia_catalog) == 5
assert np.allclose(gaia_catalog['phot_g_mean_flux'].value,np.array([3687.1 , 822.27, 742.57, 251.3 , 201.87]),
atol = 0.01)
assert np.allclose(
gaia_catalog['phot_g_mean_flux'].value,
np.array([3687.07248 , 830.04544, 747.28028, 252.18597 , 201.87001]),
atol = 0.01
)

filename = './Gaia_catalog.dat'
checkfile = path.isfile(filename)
assert checkfile
filepath = path.join(TEST_DATA_DIR, 'Gaia_catalog.dat')
assert(path.isfile(filepath))

remove(filename)
remove(filepath)



Expand Down
Loading

0 comments on commit 6aa3fe3

Please sign in to comment.