v0.29.x series (current stable)#
v0.29.0 (7th October 2024)#
In this major release, we add official support for polarized radiative
transfer simulation. Polarization is currently supported for the atmosphere
(molecular and aerosol components), stay tuned for updates on polarized surface
models. This feature is controlled by the mode switcher: just call
eradiate.set_mode("mono_polarizated")
or
eradiate.set_mode("ckd_polarizated")
when you start setting up your
simulation. After post-processing, the four Stokes vector components are added
to the output product.
We also heavily refactored the components that handle the spectral dimension. We clarified the spectral discretization model and modified some interface points to make things more explicit. We significantly improved spectral component inspection (typically, the spectral grid and spectral response functions). Have a look at our revamped spectral discretization guide.
Finally, we updated our surface mesh generation component to also add texture coordinates to the produced mesh. This allows to define surface textures, a key feature when it comes to assembling 3D scenes.
Warning
When upgrading, pay attention to the following:
When setting up an experiment, the parameter controlling the spectral quadrature point count configuration is changed from
quad_spec
tockd_quad_config
. This parameter now accepts aCKDQuadConfig
instance or a dictionary. You will have to update this if you were using this feature.Instrument spectral response functions are now specified using the
SpectralResponseFunction
type. The dictionary syntax remains unchanged. SRF objects can now be visualized in Jupyter notebooks.
Removed#
⚠️ The
SpectralSet
class and children are removed (PR439). Spectral discretization is now handled by theSpectralGrid
class and its children.⚠️ The
Atmosphere.spectral_set()
method is removed (PR439). The responsibility of deriving a spectral grid from a molecular absorption database is transferred to theSpectralGrid.from_absorption_database()
constructor.⚠️ The
MultiDeltaSpectrum
class is removed (PR439). Spectral response functions are now modelled using dedicated types (SpectralResponseFunction
and children).⚠️ Several SRF-related methods of the
Spectrum
family are removed (PR439). The corresponding functionality is transferred to theSpectralResponseFunction
family.⚠️ The
QuadSpec
class is removed (PR439). Its functionality is transferred to theCKDQuadConfig
type.⚠️ The
AbstractHeterogeneousAtmosphere.eval_transmittance_accross_spectral_set()
is removed and its functionality transferred to theeval_transmittance_mono()
andeval_transmittance_ckd()
helpers (PR439).
Added#
The
mesh_from_dem()
function optionally adds texture coordinates to the generated mesh (PR435).The
BufferMeshShape
class can now initialize texture coordinates as well (PR435).Added polarized mode, Rayleigh and tabulated phase functions (PR438, PR445).
A new
SpectralGrid
type hierarchy is added (PR439). It handles the spectral discretization.A new
SpectralResponseFunction
type hierarchy is added (PR439). It models the spectral response function of instruments.🖥️ A new
SubtypeDispatcher
type is added (PR439). This class is a very simple factory intended to dispatch subtypes of a parent type depending on the current active mode.🖥️ A new
is_sorted()
validator is added (PR439).
Changed#
The CLI now displays standard stack traces instead of prettifying them with Rich (PR434). The previous behaviour is still available with the
--debug
CLI option.Improved error reporting when loading absorption databases with corrupt index files (PR434).
🖥️ Updated Mitsuba submodule to v0.3.0 (PR444).
⚠️ The
quad_spec
parameter of theExperiment
constructors is replaced by theckd_quad_config
parameter (PR439).⚠️ The
Measure.srf
field is now aSpectralResponseFunction
instance (PR439). The dictionary interface used inMeasure
constructors remains unchanged.⚠️ The
eradiate.spectral
subpackage is reorganized (PR439). The main components are still exposed ineradiate.spectral
directly.⚠️ The background spectral grid, formerly exposed as
Experiment.default_spectral_set
, is now private and renamed_background_spectral_grid
(PR439). It can still be configured by thebackground_spectral_grid
parameter.📖 Overhauled the Spectral discretization guide (PR439).
📖 Improved factory documentation (PR441).
Internal changes#
🖥️ Added an explicit CKD spectral quadrature calculation step to the initialization sequence of
Experiment
instances (PR439).🖥️ Removed unused
rad_profile_factory
(PR441).⚠️ 🖥️ Refactored attrs-based features (PR437).
⚠️ 🖥️ The
Mode.check()
method’s signature is changed (PR439). It accepts now a combination ofModeFlag
values.⚠️ 🖥️ The
MultiGenerator
is moved toeradiate.util.misc
(PR439).⚠️ 🖥️ Refactored DEM handling infrastructure (PR428).
v0.29.1 (25th October 2024)#
This is a minor feature release. It updates the radiometric kernel to v0.3.1,
which adds the selectbsdf
plugin, and introduces the transitional expert
interface, which allows to inject Mitsuba scene dictionary fragments manually
in an experiment.
This interface is called ‘transitional’ because, although its syntax and idioms can be considered stable, it has not been fully propagated through the Eradiate codebase yet. This upgrade is planned for the next major release.
Added#
Introducing the transitional expert interface (PR452).
Changed#
Fixed#
Fixed incorrect CKD absorption database index generation method (PR454).
v0.29.2 (9th November 2024)#
Deprecated#
The
eradiate.srf_tools.make_gaussian()
function is deprecated. It will be removed in v0.31.0. Useeradiate.spectral.response.make_gaussian()
as an alternative.
Added#
Automatically flatten nested dictionaries used for initialization or assignments to
KernelDictTemplate
(PR459).Added
spectral_data
parameter to theload_rami_scenario()
function (PR462).
Changed#
Transferred the Gaussian SRF dataset creation function
make_gaussian()
to theeradiate.spectral.response
subpackage (PR458).