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
AstroObjectIllumination
model 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
DEMExperiment
now 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.
Measure
no longer takes aspectral_cfg
parameter but instead asrf
parameter (PR311).In CKD modes with absorbing molecular atmospheres, the way to control the bin set is to set the atmosphere’s
absorption_dataset
with an absorption dataset that has the corresponding desired bin set (PR311).UniformSpectrum
is 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 otherMultiDistantMeasure
constructors instead.The
ertdata
andertshow
command-line entry points are removed (PR324). Instead, useeradiate data
anderadiate show
.The
KernelDictContext
class is renamedKernelContext
(PR324).The
absorption_dataset
parameter ofAFGL1986RadProfile
andUS76ApproxRadProfile
is now required (PR334).
Deprecations and removals#
Improvements and fixes#
Added
MultiDeltaSpectrum
spectrum type (PR311).Exposed several API members in the top-level namespace (PR324).
Exposed the
eradiate.spectral.*
subpackage members in theeradiate.spectral
namespace (PR324).Fixed incorrect Mitsuba scene parameter drop and lookup (PR329).
Added spherical-shell geometry support to DEM components PR320.
Fixed broken symmetry between
Spectrum
dictionary and object conversion protocols (PR336).Provided an Eradiate PyPI package (PR328).
Added
AstroObjectIllumination
illumination type (PR331, PR346).Fixed a bug where
Layout
constructors would not raise if passed invalid azimuth values (i.e. outside the [0, 180]° range) (PR345).Added
wavelength_range
optional 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_nm
dataset 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
DEMExperiment
now holds the support for digital elevation models. Accordingly, theAtmosphereExperiment
does 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
AggregateSampleCount
pipeline step (PR296).RadProfile
: TheArrayRadProfile
class is retired (PR296).
Improvements and fixes#
Added support for loading spectral response function data sets from custom paths (PR270).
⚠️ Complete rewrite of the
MultiDistantMeasure
construction 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
MultiDistantMeasure
with 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 wheresrf
is specified by a keyword (PR278).Fixed the behaviour of the
MeshTreeElement
constructor 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_tools
module (PR283).Added
MQDiffuseBSDF
reflection model (PR286).Fixed a bug where the
bilambertian
BSDF 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_nm
dataset is now the default solar irradiance spectrum (PR300).Introduced the
DEMExperiment
to 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).
⚠️
Atmosphere
type hierarchy updates: altitude grid control, common spectral evaluation interface (PR296).BlendPhaseFunction
code was transitioned from a recursive to an iterative loop-based implementation (PR296).RadProfile
evaluation 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.constants
to store physical constants used in Eradiate (PR312).Added absorption and scattering bypass switches to the
ParticleLayer
class (PR316).⚠️ Moved Mitsuba logs to the
mitsuba
logger (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
blendphase
plugin 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 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 aParticleLayer
(PR239).Change the
ExponentialParticleDistribution
formulation 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
tabphase
plugin and a Dr.Jit warning on some Linux machines.Aligned the
tabphase_irregular
plugin with the fixtabphase
code (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
AbstractHeterogeneousAtmosphere
line and theBlendPhaseFunction
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 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_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 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_extrapolated
dataset 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.dataset
field’s default value to the more useful the continental aerosol datasetspectra/particles/govaerts_2021-continental.nc
(PR212).Changed the interface of the
ParticleLayer
: thetau_550
field is replaced by a more generaltau_ref
which sets the extinction optical thickness of the particle layer at a reference wavelength specified by thew_ref
field.w_ref
defaults 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
-l
option to theeradiate 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 theeradiate 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
witheradiate.data.open_dataset
(PR220).Improved
TabulatedPhaseFunction
’s behaviour. If the phase function lookup table coordinatemu
defines a regular grid, the phase function is no longer resampled on a regular grid, which results in improved performance. Otherwise, i.e. ifmu
defines an irregular grid, phase function data is resampled on a regularmu
grid with a step equal to the smallest detected step in themu
coordinate array, which preserves accuracy (PR226).
Documentation#
Internal changes#
The
progress
configuration variable is now anIntEnum
, allowing for string-based setting while retaining comparison capabilities (PR202).Internal
_util
library 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 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#
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.