Commit eca76842 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

add query_ref_cat

parent 9de74895
Pipeline #11818 passed with stage
in 0 seconds
...@@ -23,6 +23,7 @@ import warnings ...@@ -23,6 +23,7 @@ import warnings
from typing import Callable, NamedTuple, Optional, Any, Union from typing import Callable, NamedTuple, Optional, Any, Union
from astropy.time import Time, TimeDelta from astropy.time import Time, TimeDelta
from astropy.io import fits from astropy.io import fits
from astropy import table
import joblib import joblib
import csst_dfs_client import csst_dfs_client
...@@ -488,6 +489,47 @@ class Pipeline: ...@@ -488,6 +489,47 @@ class Pipeline:
hdulist.flush() hdulist.flush()
return meta return meta
def query_ref_cat(
self, file_path, catalog_name: str = "trilegal_093"
) -> None | str:
"""
References
----------
https://gea.esac.esa.int/archive/documentation/GDR3/Gaia_archive/chap_datamodel/sec_dm_main_source_catalogue/ssec_dm_gaia_source.html
"""
image = File(file_path)
header = fits.getheader(image.file_path)
pointing_ra = header["RA_OBJ"]
pointing_dec = header["DEC_OBJ"]
print(f"Query reference catalog RA={pointing_ra}, Dec={pointing_dec} ...")
rec_cat = self.retry(
csst_dfs_client.catalog.search,
n_try=3,
ra=pointing_ra,
dec=pointing_dec,
catalog_name=catalog_name,
radius=2.0,
columns=["*"],
min_mag=0,
max_mag=30,
obstime=-1,
limit=-1,
)
assert rec_cat.success, rec_cat
# convert pandas data frame to table
ref_cat = table.Table.from_pandas(rec_cat["data"])
self.logger.info(f"{len(ref_cat)} rows in reference catalog")
if len(ref_cat) < 10:
return None
# rename columns to lower case
ref_cat.rename_columns(
ref_cat.colnames, [colname.lower() for colname in ref_cat.colnames]
)
self.logger.info(f"Writing to file: {ref_cat} ...")
ref_cat.write(image.derive1(ext="cat_ref.fits"), overwrite=True)
return image.derive1(ext="cat_ref.fits")
class ModuleResult(NamedTuple): class ModuleResult(NamedTuple):
module: str = "" module: str = ""
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment