Many line shapes
Doppler, Lorentz, Voigt, speed-dependent Voigt, and Hartmann-Tran — plus first-order (Rosenkranz) line mixing. Validated against HAPI to ~1e-6.
Line-by-line absorption cross-sections for atmospheric radiative transfer — HITRAN & ExoMol, Voigt → Hartmann-Tran, line mixing, MT_CKD/CIA continuum, on CPU, CUDA and Metal. Validated against HAPI.

AtmosphericAbsorption.jl computes molecular absorption cross-sections σ(ν) [cm²/molecule] from spectroscopic line lists, the engine that turns a HITRAN or ExoMol database into the optical properties a radiative-transfer model needs.
using AtmosphericAbsorption
# download CO2 lines for the 1.6 µm band straight from hitran.org
db = load_hitran(:CO2; numin = 6300, numax = 6400)
model = LineByLineModel(db, TIPS2021PF(); profile = Voigt(), wing_cutoff = 40.0)
grid = collect(6300.0:0.01:6400.0) # cm⁻¹
σ = compute_cross_section(model, grid, 500.0, 250.0) # pressure [hPa], temperature [K]pkg> add AtmosphericAbsorptionJulia 1.10+. GPU support loads automatically when CUDA.jl (NVIDIA) or Metal.jl (Apple Silicon) is available.
HITRAN & ExoMol line lists behind a single load_lines interface, with on-demand downloads cached and version-tracked — plus tabulated HITRAN .xsc cross-sections for heavy molecules (CFCs, SF₆, …) that have no line list.
Voigt → speed-dependent Voigt → Rautian → Hartmann-Tran line shapes and line mixing, all validated against HAPI.
Authenticated non-Voigt parameters (Hartmann-Tran / speed-dependent / line-mixing) from HITRANonline.
MT_CKD water-vapor continuum and CIA collision-induced absorption.
CPU / CUDA / Metal from one kernel; Float32 & Float64 to machine precision.
Partition functions (latest TIPS-2021, with TIPS-2017, and ExoMol) driving the line-strength temperature dependence.
This package is a clean-slate successor to the absorption module of vSmartMOM.jl.