Roadmap
This page is a living document. It lists what the pipeline does today, what is planned, and what is known to be unfinished. Contributions that tackle any open item are welcome: see Contributing.
How the statuses were set
A box is ticked only if the corresponding code exists in the AstroSpectro repository (src/, app.py, .devcontainer/, .github/). The repository also keeps a more detailed ROADMAP.md, in French; some of its boxes are older than the code and may not match it.
Axis 1 — Scientific content
Extract more, and more reliable, information from each spectrum.
- Base measurements on six lines (Hα, Hβ, Ca II K and H, Mg b, Na D): prominence, FWHM and equivalent width.
- Line ratios and spectral indices (among them TiO5, Dn4000, G4300, CaH2, CaH3).
- Extended extractor: molecular bands, extended Balmer series, metal lines, extended indices, continuum analysis, line profiles, synthetic colours and composite indices. See Feature engineering theory.
- Gaia DR3 cross-match and derived quantities (distance, absolute magnitudes, tangential velocity).
-
spectro_onlymode, which removes non-spectroscopic columns by name. See Spectro-only mode and the Data Leakage Audit for its present limits. - SHAP interpretability (notebook
04_shap_interpretability). See SHAP interpretability. - Anomaly detection: intersect the HDBSCAN noise points with the spectra of highest autoencoder reconstruction error.
- Characterise the HDBSCAN clusters against rare objects (variables, binaries, red-giant-branch stars).
Axis 2 — Models and data
Explore better models and richer data handling.
- XGBoost as the main model, with RandomForest as an alternative.
- Other estimators selectable in
SpectralClassifier: LightGBM, CatBoost, ExtraTrees, SVM, k-NN, MLP, soft voting and others. See the Classifier API. - Grid and randomised hyper-parameter search with cross-validation.
- Probability calibration (sigmoid, isotonic) and an Expected Calibration Error helper.
- Dimensionality reduction and clustering: PCA, UMAP, t-SNE, HDBSCAN, and a spectral autoencoder (PyTorch) in
src/dimred/. See the dimensionality reduction section. - Opt-in Weights & Biases logging (
use_wandb). See Experiment tracking. - Partial: class-imbalance oversampling (SMOTE and variants) is integrated as an option of
SpectralClassifier; the default is no oversampling. - Optuna-based search: not in the code today; hyper-parameters are searched with
GridSearchCVorRandomizedSearchCV. - Extension to other LAMOST releases or to SDSS (see multi-survey support below).
- 1D convolutional network on the raw flux: planned, not implemented.
Axis 3 — Infrastructure
Make the pipeline more robust, more accessible and easier to use.
- Modular layout (
src/pipeline/,src/dimred/,src/tools/) packaged withpyproject.toml. See Project structure. - GitHub Codespaces dev container: no local installation needed.
- Documentation deployed to GitHub Pages with GitHub Actions.
- Streamlit application (
app.py). - Parallel feature extraction: a thread pool for reading files, a process pool for the CPU-bound stage. See Processing pipeline.
- Timestamped artefacts for every run: model pickle plus JSON metadata.
- Automated tests: the repository has no test suite yet.
- REST API for predictions (a
/predictendpoint). - Workflow orchestration (Snakemake or Prefect) to chain download, preprocessing, features, classification and reporting.
- Multi-survey support (SDSS, Gaia RVS).
Upcoming releases
An earlier version of this page gave Q3 2026 as the target for v1.1. That date has passed and is not repeated here.
v1.1
- Optuna hyper-parameter optimisation, tracked with Weights & Biases sweeps.
- Scale the processing to the full set of downloaded FITS files, once the Gaia cross-match issue below is solved.
- Archive the canonical model artefact with its full metadata.
- Submit the manuscript (see Citing AstroSpectro).
v1.2
- Extension to a later LAMOST release or to SDSS.
- Anomaly-detection pipeline (HDBSCAN noise intersected with high reconstruction error).
- Identification of binary-star candidates.
Known issues
- Gaia cross-match instability blocking the large-scale extension.
- Feature-count discrepancy: resolved in the documentation, model artefact still to be regenerated.
- Optuna is not integrated: searches use
GridSearchCV.