What’s new?#


For now, Eradiate uses a “ZeroCalVer” versioning scheme. The ZeroVer part reflects the relative instability of our API: breaking changes may happen at any time. The CalVer part gives an idea of how fresh the version you are running is. We plan to switch to a versioning scheme more similar to SemVer in the future.

Updates are tracked in this change log. Every time you decide to update to a newer version, we recommend that you to go through the list of changes. We try hard to remain backward-compatible and warn in advance for deprecation when necessary—we also advise to not ignore DeprecationWarnings.

v0.22.5 (upcoming release)#

New features#

  • Added support for various azimuth definition conventions (PR247).

  • Added an offline mode which disables all data file downloads (PR249).

  • Added support for Digital Elevation Models (DEM) (PR246).

Breaking changes#

  • Dropped the xarray metadata validation system (PR266).

Deprecations and removals#

  • Removed the deprecated Experiment.run() method (PR210).

  • Removed the path resolver component (PR251).

  • Renamed Experiment classes (PR252).

    • OneDimExperimentAtmosphereExperiment

    • RamiExperimentCanopyExperiment

    • Rami4ATMExperimentCanopyAtmosphereExperiment

Improvements and fixes#

  • Added the atmo-centimeter, a.k.a. atm-cm, to the unit registry (PR245).

  • Added spectral response functions for the VIIRS instrument onboard JPSS1 and NPP platforms (PR253).

  • Submodules and packages are now imported lazily (PR254, PR261). This significantly decreases import time for most use cases.

  • Optimised calls to Quantity.m_as() in InstancedCanopyElement.kernel_instances() (PR256).

  • Fixed incorrect scaling formula for datetime-based scaling of Solar irradiance spectra (PR258).

  • Added system information report to the eradiate show command-line utility (PR264).

  • Some dependencies are now optional, although recommended (PR266).

  • Added new sahara and continental particle radiative properties including the full scattering phase matrix (PR259).

  • Allow mixing a purely absorbing MolecularAtmosphere with a ParticleLayer (PR239).

  • Change the ExponentialParticleDistribution formulation to rate-based; allow scale-based parametrisation for initialisation (PR271).

  • Fixed missing parameters in the LeafCloud.sphere() constructor (PR272).

  • Add spectral response function filtering utility (PR269).


  • Dependencies are now listed explicitly (PR266).

  • Major tutorial overhaul (PR209).

  • Rendered tutorial notebooks and added thumbnail galleries (PR273).

Internal changes#

  • Updated Mitsuba submodule to v3.0.2 (PR250, PR255, PR267). This notably fixes the sampling method of the tabphase plugin and a Dr.Jit warning on some Linux machines.

  • Aligned the tabphase_irregular plugin with the fix tabphase code (PR255).

  • Updated codebase to use attrsnext-generation APIs (PR268).

v0.22.4 (17 June 2022)#

New features#

  • Added a InterpolatedSpectrum.from_dataarray() class method constructor (PR243).

Breaking changes#

  • Removed temporary volume files used by the AbstractHeterogeneousAtmosphere line and the BlendPhaseFunction class (replaced by in-memory buffers). Corresponding file name and cache directory control parameters were removed as well (PR231).

Deprecations and removals#

  • Updated all tests to use eradiate.run() instead of the deprecated Experiment.run() method (PR227).

Improvements and fixes#

  • Added spectral response function data sets for POLDER instrument onboard PARASOL platform (PR232).

  • Added an extrapolated version of the thuillier_2003 solar irradiance spectrum to cover the full wavelength range of Eradiate (PR233).

  • Fixed a bug where converting an integer to a Spectrum would fail (PR236).

  • Fixed a bug where the two BSDFs in the CentralPatchSurface would be assigned in the wrong order (PR237).

  • Raise an exception when molecular concentrations are out of bounds (PR237).

  • Various fixes to the rpv plugin, among which a missing PDF term in the sample() method (PR240).

  • Fix incorrect spectral indexing of result datasets in CKD mode (PR241).

  • Improve the Solar irradiance spectrum initialisation sequence (PR242).

  • The thuillier_2003_extrapolated dataset is now the default Solar irradiance spectrum (PR242).

Internal changes#

  • Transitioned dependency management to pyproject.toml following PEP 621 (PR203).

  • Updated Mitsuba submodule (PR228).

  • Removed the angular regridding feature in TabulatedPhaseFunction and replaced with plugin selection (PR229).

v0.22.3 (22 May 2022)#

New features#

  • Added entry point eradiate.run(), which executes a full experiment pipeline and returns results as an xarray dataset (PR210).

Breaking changes#

  • Changed the ParticleLayer.dataset field’s default value to the more useful the continental aerosol dataset spectra/particles/govaerts_2021-continental.nc (PR212).

  • Changed the interface of the ParticleLayer: the tau_550 field is replaced by a more general tau_ref which sets the extinction optical thickness of the particle layer at a reference wavelength specified by the w_ref field. w_ref defaults to 550 nm, thus preserving prior behaviour (PR221).

Deprecations and removals#

  • Removed deprecated function ensure_array() (6228214).

  • Deprecated instance method Experiment.run() (PR210).

Improvements and fixes#

  • Added support for all missing AFGL 1986 reference atmospheres in CKD mode (PR185).

  • Fixed incorrect phase function blending in multi-component atmospheres (PR197, PR206).

  • Fixed incorrect volume data transform for spherical heterogeneous atmospheres (PR199).

  • Added default value for CKDSpectralContext.bin_set (PR205).

  • Added a -l option to the eradiate data info command-line utility. If this flag is set, the tool displays the list of files registered to each data store (PR208).

  • Added an optional DATA_STORES argument to the eradiate data info command-line utility which may be used to select the data stores for which information is requested (PR208).

  • Added a new load_dataset() converter. It allows to set fields expecting an x array dataset using a path to a file or a data store resource (PR212).

  • The ParticleLayer class no longer opens a dataset upon collision coefficient evaluation; instead, its dataset field now holds an xarray dataset (instead of a path), which does not change over the instance lifetime. This reduces the amount of time spent on I/O (PR212).

  • Added the possibility to optionally export extra fields useful for analysis and debugging upon calling AbstractHeterogeneousAtmosphere.eval_radprops() (PR206, PR212).

  • Re-formatted spectra/particles/govaerts_2021-*-extrapolated.nc data sets (PR213).

  • Replaced leftover calls to deprecated eradiate.data.open with eradiate.data.open_dataset (PR220).

  • Improved TabulatedPhaseFunction’s behaviour. If the phase function lookup table coordinate mu defines a regular grid, the phase function is no longer resampled on a regular grid, which results in improved performance. Otherwise, i.e. if mu defines an irregular grid, phase function data is resampled on a regular mu grid with a step equal to the smallest detected step in the mu coordinate array, which preserves accuracy (PR226).


  • Added tutorials on homogeneous and molecular atmospheres (PR194).

  • Added uninstallation instructions (PR217).

  • ParticleLayer: document format of dataset attribute (PR223).

Internal changes#

  • The progress configuration variable is now an IntEnum, allowing for string-based setting while retaining comparison capabilities (PR202).

  • Internal _util library is now util.misc (5a593d3).

  • Added a Numpydoc docstring parsing module (PR200).

  • Added a deprecated() decorator to mark a component for deprecation (PR200).

  • Updated regression testing interface for improved robustness and ease of use (PR207).

  • Rewrote eradiate data info CLI for improved maintainability (PR208).

  • Refactored ParticleLayer unit tests and added system tests (PR219, PR222, PR224).

v0.22.2 (23 March 2022)#

New features#

Improvements and fixes#

  • Account for spectral dependency of the King correction factor (PR187).

  • Fix wrong atmosphere shape size in plane parallel geometry with no scattering (PR195).


  • Major update of all documentation contents (PR192, PR193 and many commits).

  • Add Sphinx roles for GitHub links (2789499).

  • Add SVG to PNG export script (9e942a4).

  • Update logos with a more modern style (a3dfe36).

Internal changes#

  • Refactor regression testing framework to handle more use cases and make it more robust (PR188).

v0.22.1 (14 March 2022)#

This is the first official release of Eradiate.