A DISORT radiometric backend for the Eradiate radiative transfer model.
This project lets Eradiate experiments be solved with DISORT instead of Monte Carlo ray tracing, providing a fast radiometric backend for 1D plane-parallel scenes. The solver is reached through the nanodisort bindings to CDISORT, a C port of the original DISORT software.
- Computes radiances and fluxes for 1D plane-parallel atmospheres (no polarization).
- Drives an Eradiate experiment end-to-end, returning results as an
xarray.DataTree. - Supports Eradiate's
monoandckdspectral modes. - Defines a
DisortMeasureto record fluxes and intensities at chosen altitudes or optical thicknesses, optionally as a full radiance field.
See the online documentation for installation details, the API reference and worked examples.
- Linux or macOS, Python 3.10 to 3.13.
- A working Eradiate installation.
pip install eradiate[kernel,recommended] eradiate-disortConfigure an Eradiate experiment with a disort measure, then run it through the
backend:
import eradiate
import eradiate_disort as ed
from eradiate.experiments import AtmosphereExperiment
eradiate.set_mode("ckd")
exp = AtmosphereExperiment(
surface={"type": "lambertian", "reflectance": 0.5},
atmosphere=None,
illumination={"type": "directional", "zenith": 30.0, "azimuth": 0.0},
measures={
"type": "disort",
"construct": "hplane",
"azimuth": 0.0,
"zeniths": [-60.0, -30.0, 0.0, 30.0, 60.0],
"srf": {"type": "delta", "wavelengths": [550.0]},
},
)
backend = ed.DisortBackend()
result = backend.run(exp)Developed and maintained by Vincent Leroy and Claudia Emde.
This backend builds on CDISORT and DISORT; see the nanodisort README for the full credits to the CDISORT and DISORT authors.
Consistent with the nanodisort package it links to, this project is licensed under the terms of the GNU General Public License v3.0 or later (GPL-3.0-or-later).