This respository contains the pipeline described in "50,000 Spectra and Counting: Preparing for a Roman Spectral Atlas", the Master's Thesis of Maya Seagraves.
Slitless spectroscopy with the Hubble Space Telescope's Wide Field Camera 3 (WFC3/IR) enables simultaneous spectral coverage of all sources in a field, but large-scale single-orientation datasets remain challenging to process. We developed a pipeline that automates HSTaXe spectral extraction across hundreds of Hubble Space Telescope observations, enabling efficient processing of 84 fields and producing over 50,000 spectra from three filters (F110W, F125W, and F160W) and two grisms (G102 and G141). This was achieved by creating a companion Python package, the Module for Infrared Label Analysis (MILA), that integrates data calibration, extraction, and visualization. To assess the scientific utility of the extracted spectra, we performed stellar label determination using The Cannon. Spectra from multiple grisms were stitched and normalized onto a common wavelength grid to enable consistent label determination. We validated label recovery for Red Giant Branch stars with known stellar parameters, and then repeated validation for the full spectral range. Finally, we recovered effective temperature, surface gravity, and metallicity for 411 survey stars. The resulting spectral library serves as a testbed for the Wide Field Instrument on the Nancy Grace Roman Space Telescope, where similarly large slitless spectroscopic datasets will be routine. These results confirm that large-volume, data-driven stellar characterization is feasible with slitless infrared spectroscopy. Our next step is to optimize the stellar label determination process for metallicity recovery and apply the pipeline to more datasets from the Hubble Space Telescope.
The project has a validated single-environment workflow using the conda environment name slitless_spec_env.
Create it from the committed spec:
conda env create -f environment.slitless_spec_env.yml
conda activate slitless_spec_env
pip install -e .Quick sanity checks:
python -c "import mila, hstaxe, drizzlepac, TheCannon; print(mila.__version__)"Path handling is centralized through mila.paths.
- Default behavior: paths are resolved relative to the repository root.
- Override behavior: set
SLITLESS_SPEC_ROOTif your workflow needs an explicit root path.
export SLITLESS_SPEC_ROOT="/absolute/path/to/slitless_spec"Notebook startup cells now auto-anchor kernel working directories:
hstaxe/wfc3_grism_extraction.ipynbanchors tohstaxe/cannon/cannon_analysis.ipynbanchors tocannon/
This prevents accidental creation of HSTaXe scratch directories (DATA, CONF, OUTPUT, DRIZZLE, SIMDATA, OUTSIM) in unexpected locations.