How bu-hammerteam/pyhammer works
PyHammer is a desktop and command-line stellar spectral-typing suite. Users supply spectra and options; the runtime loads each spectrum, estimates spectral type and metallicity, measures spectral features, and can estimate radial-velocity shifts. It writes classification and rejection results, with optional line measurements, then offers a GUI for visual review and user corrections. The template library covers single stars and SB2 systems. The main workflow is supported by the excerpts and README; some internal calls are not shown, so those links are marked unverified rather than asserted.
Main entry points: spectrum.py Spectrum analysis · pyhammer.py Classification runner · eyecheck.py Review interface · measure_allTemps_Indices.py Index measurement
Components 16
Entry and settings
- Run settings
pyhammer.py - Classification runner
pyhammer.py - Classification output
pyhammer.py - Rejected spectra
pyhammer.py - Line measurements
pyhammer.py
Spectral analysis
- Spectrum analysis
spectrum.py - Spectrum data
spectrum.py - Shared dependencies
pyhamimports.py
Visual review
- Review interface
eyecheck.py - GUI helpers
gui_utils.py
Templates and indices
- Spectral templates
resources/templates - SB2 templates
resources/templates_SB2 - Template line indices
resources/tempLines.pickle - Index measurement
measure_allTemps_Indices.py
Other components
- Spectrum user
- Visual reviewer
Connections 21
- Spectrum user → Run settings: sets options
README.md - Run settings → Classification runner: starts run
pyhammer.py - Classification runner → Spectrum analysis: loads and classifies
pyhammer.py - Spectrum analysis → Spectrum data: reads spectra
spectrum.py - Spectrum analysis → Spectral templates: compares templates
- Spectrum analysis → SB2 templates: compares SB2 templates
- Spectrum analysis → Template line indices: uses line indices
- Classification runner → Classification output: writes classifications
pyhammer.py - Classification runner → Rejected spectra: records rejects
pyhammer.py - Classification runner → Line measurements: writes line data
pyhammer.py - Classification runner → Review interface: opens review
pyhammer.py - Visual reviewer → Review interface: reviews spectra
README.md - Review interface → Spectrum analysis: loads and reclassifies
eyecheck.py - Review interface → GUI helpers: uses widgets
eyecheck.py - Index measurement → Spectrum analysis: measures templates
measure_allTemps_Indices.py - Index measurement → Spectral templates: reads templates
measure_allTemps_Indices.py - Index measurement → SB2 templates: reads SB2 templates
measure_allTemps_Indices.py - Index measurement → Template line indices: writes index data
measure_allTemps_Indices.py - Classification runner → Shared dependencies: imports shared tools
pyhammer.py - Spectrum analysis → Shared dependencies: imports shared tools
spectrum.py - Review interface → Shared dependencies: imports shared tools
eyecheck.py