pyKurucz: A Pure Python Reimplementation of Kurucz SYNTHE for Stellar Spectrum Synthesis
pyKurucz: A Pure Python Reimplementation of Kurucz SYNTHE for Stellar Spectrum Synthesis
Elliot M. Kim, Yuan-Sen Ting
AbstractpyKurucz is a pure Python reimplementation of Kurucz's SYNTHE, the standard code for computing synthetic stellar spectra. The original Fortran, written decades ago in a legacy dialect, is difficult to compile with modern toolchains without significant manual patching, and its long-term maintenance is uncertain following the passing of Robert L. Kurucz in 2025. pyKurucz is not a wrapper around Fortran but a line-by-line translation: continuous and line opacity from approximately 1.3 million atomic transitions, Voigt profiles, hydrogen Stark broadening, Saha-Boltzmann populations, molecular equilibrium for 189 species, and radiative transfer, all in Python with NumPy, SciPy, and Numba, requiring no Fortran at any stage. Validated against the original across 100 atmosphere models spanning 2500 K cool giants to 44,000 K O stars over 300-1800 nm at resolving power R = 300,000, it achieves sub-0.01% median agreement. The pure Python implementation enables direct integration with machine learning workflows and large-scale survey pipelines, while preserving an archival reference implementation of SYNTHE in a modern, readable language.