This library provides an interface to read and query the absorption databases of the Eradiate radiative transfer model.
- Monochromatic and CKD databases: Read and evaluate absorption coefficients for both monochromatic and correlated-k distribution spectral representations.
- Fast interpolation: Numba-accelerated multi-dimensional interpolation of thermophysical profiles (pressure, temperature, mole fractions).
- Configurable error handling: Fine-grained, per-coordinate control over out-of-bounds behaviour (clamp, fill, raise, warn).
- Efficient I/O: Lazy or eager loading of NetCDF data files, with LRU caching for repeated lookups.
- xarray and Pint integration: Works natively with xarray datasets and Pint quantities.
- CLI: Validate database integrity from the command line with
axsdb check.
Python 3.9 or later is required.
pip install axsdbimport xarray as xr
from axsdb import MonoAbsorptionDatabase
from axsdb.units import get_unit_registry
ureg = get_unit_registry()
# Open a database directory
db = MonoAbsorptionDatabase.from_directory("path/to/database")
# Load a thermophysical profile
thermoprops = xr.load_dataset("path/to/thermoprops.nc")
# Evaluate the absorption coefficient at a given wavelength
sigma_a = db.eval_sigma_a_mono(
w=550.0 * ureg.nm,
thermoprops=thermoprops,
)For CKD databases, use CKDAbsorptionDatabase and eval_sigma_a_ckd (which
takes an additional g parameter for the quadrature point).
AxsDB ships a command-line tool to validate databases:
# Check a monochromatic database
axsdb check path/to/database -m mono
# Check and fix missing index files
axsdb check path/to/database -m ckd --fixFull documentation is available at axsdb.readthedocs.io.
AxsDB is distributed under the terms of the GNU Lesser General Public License v3.0.