v0.23.x and older¶
v0.23.2 (8th July 2023)¶
Release highlights:
Eradiate is now published on PyPI and can be installed using Pip. See the new installation instructions This is still experimental and feedback is welcome.
The spectral configuration of measures has changed. The new behaviour is documented in the Spectral discretization guide.
A new
AstroObjectIlluminationmodel has been added. It models the illumination by a distant celestial body with a finite apparent size in the sky. Support for this illumination model is currently experimental.The
DEMExperimentnow supports the spherical-shell geometry.The command-line interface now uses the Typer framework for improved user experience.
Breaking changes¶
Removed the Docker images implementation, deployment and documentation from the Eradiate repository (PR322). Docker builds are no longer supported for now.
Measureno longer takes aspectral_cfgparameter but instead asrfparameter (PR311).In CKD modes with absorbing molecular atmospheres, the way to control the bin set is to set the atmosphere’s
absorption_datasetwith an absorption dataset that has the corresponding desired bin set (PR311).UniformSpectrumis no longer a valid spectrum type to use for spectral response functions (PR311).The
MultiDistantMeasure.from_viewing_angles()constructor is removed (PR315). Use one of the otherMultiDistantMeasureconstructors instead.The
ertdataandertshowcommand-line entry points are removed (PR324). Instead, useeradiate dataanderadiate show.The
KernelDictContextclass is renamedKernelContext(PR324).The
absorption_datasetparameter ofAFGL1986RadProfileandUS76ApproxRadProfileis now required (PR334).
Deprecations and removals¶
Improvements and fixes¶
Added
MultiDeltaSpectrumspectrum type (PR311).Exposed several API members in the top-level namespace (PR324).
Exposed the
eradiate.spectral.*subpackage members in theeradiate.spectralnamespace (PR324).Fixed incorrect Mitsuba scene parameter drop and lookup (PR329).
Added spherical-shell geometry support to DEM components PR320.
Fixed broken symmetry between
Spectrumdictionary and object conversion protocols (PR336).Provided an Eradiate PyPI package (PR328).
Added
AstroObjectIlluminationillumination type (PR331, PR346).Fixed a bug where
Layoutconstructors would not raise if passed invalid azimuth values (i.e. outside the [0, 180]° range) (PR345).Added
wavelength_rangeoptional parameter toMolecularAtmosphere.ussa_1976()constructor to automatically open absorption datasets and restore working default constructor (PR334).
Documentation¶
Added a user guide page on spectral discretization.
Internal changes¶
v0.23.1 (21 April 2023)¶
Breaking changes¶
The
coddington_2021-1_nmdataset is now the default solar irradiance spectrum (PR300). If you used to work with the default value when defining the illumination in your experiments, this change might affect the measured radiance values.The newly introduced
DEMExperimentnow holds the support for digital elevation models. Accordingly, theAtmosphereExperimentdoes no longer support digital elevation models.
Deprecations and removals¶
The
MultiDistantMeasure.from_viewing_angles()constructor is deprecated and will be removed in v0.23.2.Removed
EradiateConfig.data_path(PR292).Removed the
AggregateSampleCountpipeline step (PR296).RadProfile: TheArrayRadProfileclass is retired (PR296).
Improvements and fixes¶
Added support for loading spectral response function data sets from custom paths (PR270).
⚠️ Complete rewrite of the
MultiDistantMeasureconstruction code (PR274, PR281). Previous functionality is preserved in the form of more specialized and simpler interfaces, and we now support a gridded coverage of the hemisphere specified as the Cartesian product of zenith and azimuth lists of values.Added a helper to grid against VZA and VAA the results obtained with a
MultiDistantMeasurewith a grid layout (PR274). Seeunstack_mdistant_grid().MeasureSpectralConfig.srf’s converter loads the prepared SRF version first, by default, and falls back to the raw version if the former does not exist, in the case wheresrfis specified by a keyword (PR278).Fixed the behaviour of the
MeshTreeElementconstructor when no units are specified (PR279).Extended the distant measure line with the possibility to control the distance between ray origins and the target (PR275). The default behaviour is unchanged, effectively positioning ray origins at an infinite distance from the target.
All measures can now be attached a non-default sampler (PR280).
Fixed unnecessary memory allocations (PR282).
Added utility functions to
srf_toolsmodule (PR283).Added
MQDiffuseBSDFreflection model (PR286).Fixed a bug where the
bilambertianBSDF plugin would produce incorrect results when used with LLVM Mitsuba variants (PR297).Added versions 1 and 2 and the full spectrum extension of the TSIS-1 HSRS solar irradiance spectra (PR300).
The
coddington_2021-1_nmdataset is now the default solar irradiance spectrum (PR300).Introduced the
DEMExperimentto handle scenes with digital elevation models. At this point it only supports plane-parallel atmospheric geometries (PR289).⚠️ Rewrite of the kernel interface (PR296).
⚠️ Updates to the scene type hierarchy (PR296).
⚠️ All measures are now batch-computed at each iteration of the spectral loop (PR296).
⚠️
Atmospheretype hierarchy updates: altitude grid control, common spectral evaluation interface (PR296).BlendPhaseFunctioncode was transitioned from a recursive to an iterative loop-based implementation (PR296).RadProfileevaluation on arbitrary altitude grids is now permitted (PR296).Introduced the
SpotIllumination, which points a beam of light of fixed angular width at a target location (PR302).Added a new module
eradiate.constantsto store physical constants used in Eradiate (PR312).Added absorption and scattering bypass switches to the
ParticleLayerclass (PR316).⚠️ Moved Mitsuba logs to the
mitsubalogger (PR318).⚠️ Centralized geometric information to
SceneGeometry(PR319).⚠️ Made
Atmosphere’s_params_*properties abstract for improved safety (PR319).Fixed a major issue in volume definitions and parameter updates of
BlendPhaseFunction(PR319).
Documentation¶
Upgraded Sphinx Book theme to v1.0.0 (PR306).
Internal changes¶
Updated Mitsuba submodule to v3.2.1 (PR277, PR296). This notably fixes a k-d tree creation issue, missing initialization code in the
blendphaseplugin and an incorrect setter for volume data containers.Harmonize dataset converters for solar irradiance spectra, spectral response function and particle radiative property datasets (PR284).
Changed data types of data variables in spectral response function datasets from double to single floating point numbers (PR300).
Added TOML formatting pre-commit hook (PR305).
Updated dependency management system to latest tooling changes (PR306).
Add
cache_by_id()to replace@functools.lru_cache(maxsize=1)when appropriate (PR315).Clarify particle layer optical thickness computation (PR321).
v0.22.5 (17 October 2022)¶
New features¶
Breaking changes¶
Dropped the xarray metadata validation system (PR266).
Deprecations and removals¶
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.
Optimized calls to
Quantity.m_as()inInstancedCanopyElement.kernel_instances()(PR256).Fixed incorrect scaling formula for datetime-based scaling of Solar irradiance spectra (PR258).
Added system information report to the
eradiate showcommand-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
MolecularAtmospherewith aParticleLayer(PR239).Change the
ExponentialParticleDistributionformulation to rate-based; allow scale-based parametrization for initialization (PR271).Fixed missing parameters in the
LeafCloud.sphere()constructor (PR272).Add spectral response function filtering utility (PR269).
Documentation¶
Internal changes¶
Updated Mitsuba submodule to v3.0.2 (PR250, PR255, PR267). This notably fixes the sampling method of the
tabphaseplugin and a Dr.Jit warning on some Linux machines.Aligned the
tabphase_irregularplugin with the fixtabphasecode (PR255).Updated codebase to use
attrs’ next-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
AbstractHeterogeneousAtmosphereline and theBlendPhaseFunctionclass (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 deprecatedExperiment.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_2003solar irradiance spectrum to cover the full wavelength range of Eradiate (PR233).Fixed a bug where converting an integer to a
Spectrumwould fail (PR236).Fixed a bug where the two BSDFs in the
CentralPatchSurfacewould be assigned in the wrong order (PR237).Raise an exception when molecular concentrations are out of bounds (PR237).
Various fixes to the
rpvplugin, among which a missing PDF term in thesample()method (PR240).Fix incorrect spectral indexing of result datasets in CKD mode (PR241).
Improve the Solar irradiance spectrum initialization sequence (PR242).
The
thuillier_2003_extrapolateddataset is now the default Solar irradiance spectrum (PR242).
Internal changes¶
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.datasetfield’s default value to the more useful the continental aerosol datasetspectra/particles/govaerts_2021-continental.nc(PR212).Changed the interface of the
ParticleLayer: thetau_550field is replaced by a more generaltau_refwhich sets the extinction optical thickness of the particle layer at a reference wavelength specified by thew_reffield.w_refdefaults to 550 nm, thus preserving prior behaviour (PR221).
Deprecations and removals¶
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
-loption to theeradiate data infocommand-line utility. If this flag is set, the tool displays the list of files registered to each data store (PR208).Added an optional
DATA_STORESargument to theeradiate data infocommand-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
ParticleLayerclass 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.ncdata sets (PR213).Replaced leftover calls to deprecated
eradiate.data.openwitheradiate.data.open_dataset(PR220).Improved
TabulatedPhaseFunction’s behaviour. If the phase function lookup table coordinatemudefines a regular grid, the phase function is no longer resampled on a regular grid, which results in improved performance. Otherwise, i.e. ifmudefines an irregular grid, phase function data is resampled on a regularmugrid with a step equal to the smallest detected step in themucoordinate array, which preserves accuracy (PR226).
Documentation¶
Internal changes¶
The
progressconfiguration variable is now anIntEnum, allowing for string-based setting while retaining comparison capabilities (PR202).Internal
_utillibrary is nowutil.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 infoCLI for improved maintainability (PR208).Refactored
ParticleLayerunit tests and added system tests (PR219, PR222, PR224).
v0.22.2 (23 March 2022)¶
New features¶
Improvements and fixes¶
Documentation¶
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.