Quickstart
Basic CLI workflow
Crossmatch sources:
euclidkit crossmatch \
--input my_sources.csv \
--output crossmatch_results.fits \
--radius 1.0 \
--environment PDR
For IDR DEEP MER data, the default partition is survey. Use
--idr-deep-partition mode for CDFS/COSMOS, or both to query survey
first and mode second:
euclidkit crossmatch \
--input my_deep_sources.fits \
--output deep_crossmatch_results.fits \
--environment IDR \
--idr-field DEEP \
--idr-deep-partition both
Query spectra for crossmatched objects:
euclidkit query-spectra \
--crossmatch crossmatch_results.fits \
--output spectra_sources.fits
Query segmentation-map metadata from MER crossmatch results:
euclidkit query-segmap \
--input crossmatch_results.fits \
--output segmentation_maps.fits \
--environment IDR
The result is the input for local 10 arcsec segmentation-map cutouts:
euclidkit compile-segmap \
--input segmentation_maps.fits \
--output-dir ./segmap_cutouts
The command opens local datalabs_path + file_name FITS files from the
query-segmap table and writes one raw-label FITS cutout per source row. See
Segmentation Map Cutouts for required columns, table mapping, and output
semantics.
Export local Datalabs spectra to raw Parquet parts. This is the default
non-Datalink compile-spectra output; Datalink still writes FITS files.
euclidkit compile-spectra \
--spectra-table spectra_sources.fits \
--output-dir ./output \
--prefix raw_spectra \
--chunk-size 2000 \
-L RGS
Export per-dither spectra from the same local Datalabs catalog rows:
euclidkit dithers-to-parquet \
--catalog-table spectra_sources.fits \
--output-prefix ./output/raw_sir \
--lambda-range RGS
Compile both Euclid arms via datalink (RGS + BGS):
euclidkit compile-spectra \
--spectra-table spectra_sources.fits \
--output-dir ./output \
--prefix compiled_dl \
--use-datalink \
--environment IDR \
-L BOTH
Python API example
from euclidkit.core.data_access import EuclidArchive
archive = EuclidArchive(environment="PDR")
archive.login(credentials_file="~/.euclidkit/.cred.txt")
xmatch = archive.crossmatch_sources(
user_table="my_sources.csv",
radius=1.0,
output_file="crossmatch_results.fits",
)
deep_xmatch = archive.crossmatch_sources(
user_table="my_deep_sources.fits",
output_file="deep_crossmatch_results.fits",
idr_field="DEEP",
idr_deep_partition="survey",
)
spectra = archive.query_spectra_sources(
crossmatch_table=xmatch,
output_file="spectra_sources.fits",
)