v0.26.x series (current stable)#

v0.26.0 (8th March 2024)#

Yanked release.

v0.26.1 (8th March 2024)#

This is a major release. This is a summary of the most important changes:

  • We dropped support for Python 3.8, following the Numpy deprecation policy. If you are using our PyPI package, you will need to create a new environment based on Python 3.9 or more recent to upgrade to v0.26.0. If you are running a development setup, you will need to recreate your dev environment accordingly with the development environment setup instructions.

  • We provide now experimental support for Windows. Please reach out through our issue board or discussions forum if you need help.

  • We added the Hapke surface reflection model (see the HapkeBSDF API documentation). This model primarily aims at representing bare soil (without) vegetation).

  • A new post-processing pipeline architecture, based on the Hamilton library, streamlines our post-processing, improves its flexibility and maintainability. While this should not have a noticeable impact from a user’s perspective, it will allow the implementation of several features prevented by the old pipeline system. A tutorial showcases a few features of this new system.

  • We introduced a new scene loader based on JSON files designed to facilitate the loading of mesh-based canopy scenes. The scene loader is described in a user guide page, and a simplified interface automating the loading of the RAMI-V scenarios is provided.


  • ⚠️ Drop support of Python 3.8 (PR382): Eradiate now requires Python 3.9+.


  • Split bitmap-to-xarray converter between data array and dataset steps (PR383).

  • Add an Ubuntu-Based Dev Container for the Eradiate development environment (PR384).

  • Add support for the Hapke BSDF model (PR386).

  • Add experimental support for the Windows platform (PR390).

  • DistantFluxMeasure can now be instantiated with the factory alias distantflux (PR387).

  • Add a new scene loader functionality (PR392).

  • Add support for preconfigured RAMI-V scenarios (PR392).



  • Fix unit definition bug (PR393).

  • Fix non-portable path handling (PR390).

  • Fix number representation bug on Windows (PR390).

  • Fix a bug in MultiDeltaSpectrum that would prevent using a number of wavelengths larger than the size of the default spectral discretization (PR387).

  • Fix a bug in mi_render() where array-to-int casting was not done correctly (PR387).

Internal changes#

  • 🖥️ Allow different package specifications for Pip and Conda (PR385).

  • 🖥️ Registered modes are now stored as Mode instances (PR387).

  • 🖥️ BinSet and WavelengthSet now inherit from a common SpectralSet interface (PR387).

  • 🖥️ The BinSet class’s interface is extended with properties returning bin bounds and centres (PR387).

  • 🖥️ The BinSet.from_absorption_data() method was refactored for improved maintainability (PR387).

  • 🖥️ Bin selection routine test code was rewritten and relocated to the test file related to the parent class (PR387).

  • 🖥️ The MultiDeltaSpectrum code was refactored for improved maintainability (PR387).

v0.26.2 (15th March 2024)#

This is a fix release.


  • The repr of some fields of the AtmosphereRadProfile and MultiDeltaSpectrum classes was modified for improved readability (PR395).

  • The extra_objects field of the EarthObservationExperiment subclasses can now be initialized with None (PR395).


  • When opening a molecular absorption coefficient database, bins are sorted by ascending lower bound values (PR395).

  • Fix a bug in post-processing pipelines where radiosity node would not appear for in situ sensors (PR395).

v0.26.3 (15th April 2024)#

This is a fix release.


  • Required custom Mitsuba build bumped to v0.2.1 (based on Mitsuba v3.4.1). This update contains fixes for the Hapke BSDF plugin.


  • Fix incorrect path to the komodo dataset (PR398).

  • Online data stores now make additional attempts if a download fails (PR398).