HEALPix-indexed star catalog combining Gaia DR3 and Hipparcos. Memory-mapped for fast cone searches.
As a library:
[dependencies]
celestial-catalog = "0.1"For the CLI tools (forge and query-catalog):
cargo install celestial-catalog --features cliuse celestial_catalog::query::{Catalog, cone_search, ConeSearchParams};
let catalog = Catalog::open("/path/to/catalog.bin").unwrap();
let results = cone_search(&catalog, &ConeSearchParams {
ra_deg: 83.633,
dec_deg: 22.014,
radius_deg: 0.5,
max_mag: Some(12.0),
max_results: Some(100),
epoch: None,
}).unwrap();
for r in &results {
println!("{} mag={:.2} dist={:.4}°", r.star.source_id, r.star.mag, r.distance_deg);
}| Module | Purpose |
|---|---|
query::Catalog |
Memory-mapped catalog reader (mmap, zero-copy star access) |
query::cone |
Cone search with optional proper-motion propagation |
query::healpix |
HEALPix pixel math (ang2pix_nest, query_disc_nest) |
You may download the latest catalog from Google Drive. The pre-built catalog has a magnitude cutoff at 18.5.
The pre-built catalog is derived from:
- Gaia DR3 — European Space Agency (ESA) mission Gaia (gaia.esa.int), processed by the Gaia Data Processing and Analysis Consortium (DPAC). Gaia DR3 is licensed under CC-BY-4.0. See the Gaia credit page for full citation requirements.
- Hipparcos — ESA Hipparcos and Tycho Catalogues (ESA, 1997). Public domain.
If you use the pre-built catalog in published work, please cite Gaia DR3 per ESA's guidelines.
Building your own catalog from raw survey data requires significant disk space (~700 GB for raw Gaia CSVs) and time. The forge CLI handles the full pipeline: download, ingest, merge, and index.
forge download-gaia --output /path/to/download/it/toSee forge ingest-gaia --help for all flags.
forge ingest-gaia \
--path /path/to/gaia/dir/ \
--output /path/to/output/dir/ \
--mag-limit 16Outputs gaia_ingest.bin.
Most applications don't need stars fainter than ~18.5. A this cutoff keeps the final HEALPix binary around 1.5 GB. Going deeper balloons quickly.
Hipparcos epochs are propagated to J2016.0 to match Gaia DR3.
forge ingest-hipparcos \
--hip /path/to/hip_main.dat \
--crossmatch /path/to/Hipparcos2BestNeighbour.csv \
--output /path/to/outputOutputs hipparcos_ingest.bin.
forge merge --verbose --workdir /path/to/working/dirOutputs merged.bin.
forge build-index \
--workdir /path/that/contains/both/bin/files \
--threads 16 \
--output ./catalog.20260217.bin \
--max-per-cell 40The --max-per-cell flag caps the number of stars per HEALPix pixel, dropping faint stars first. This trims dense regions along the galactic plane.
cli— Enables theforgeandquery-catalogbinaries (adds clap, rayon, reqwest, etc.)
Licensed under either of:
- Apache License, Version 2.0
- MIT License
See the repository for contribution guidelines.