v0.25.x series#
v0.25.0 (20th December 2023)#
In this major release, we change the atmospheric profile interface for improved flexibility.
Eradiate’s atmospheric thermophysical profiles are no longer restricted to the built-in profiles. You can now use any profile, including data curated by yourself. Of course, the built-in profiles are still available. Thermophysical property handling is now externalized to a new library Joseki. Joseki’s output format is documented here.
We added an interface to customize atmospheric absorption data. If you need to fit the data for a specific use case (e.g. to work with an atmosphere from another planet than Earth), it is now possible. The data format is described in our data guide.
The quadrature rule used for spectral discretization in CKD mode can now be specified in a flexible way. The number of quadrature points is no longer set to a built-in value, and the atmospheric absorption datasets ship metadata that can be leveraged to dynamically select a quadrature that minimizes the error on atmospheric transmittance.
Important
This update changes the MolecularAtmosphere
constructor. While we
believe the new defaults improve consistency and convenience, existing codebases
will require adaptation. In particular, the spectral range specified for data
loading must be consistent with the spectral range covered by the sensor’s
spectral response function. We strongly recommend going through the
Molecular atmosphere basics tutorial. See also the
Changed section below for more detail.
Added#
The quadrature rule used for spectral discretization in CKD mode can now be specified in a flexible way using the
QuadSpec
class and subclasses (PR344, PR375). This is configured at theExperiment
through thequad_spec
attribute.Added the Ross Thick-Li Sparse (RTLS) surface reflection model (PR355).
Added the
HeterogeneousAtmosphere.eval_transmittance()
method (PR375).
Changed#
⚠️ The
MolecularAtmosphere.afgl_1986()
andMolecularAtmosphere.ussa_1976()
constructors are removed (PR344). Radiative property profile setup is now entirely controlled by theMolecularAtmosphere.thermoprops
parameter. To construct these profiles, setMolecularAtmosphere.thermoprops
to{"identifier": "afgl_1986-us_standard"}
or{"identifier": "ussa_1976"}
. See the API reference for details.⚠️ Standard profile-specific radiative profile classes
AFGL1986RadProfile
andUS76ApproxRadProfile
are replaced by the genericAtmosphereRadProfile
(PR344).⚠️ Thermophysical profile components have been offloaded to Joseki (PR344), a new independent library that extends what was in our
thermoprops
subpackage.Eradiate now uses Pint’s application registry (PR366). This improves compatibility with other software using Pint. The duplicate unit definition handling policy silently ignores repeated definitions of identical units.
Updated default data file lists available for usage with the
eradiate data fetch
tool (see Command-line interface reference for details) (PR375).📖 Many documentation updates and cleanup.
Fixed#
Fixed atmosphere state update during experiment setup (ensures that experiment scene geometry propagates down to each component of a
HeterogeneousAtmosphere
) (PR344).Fixed the default path to the download directory when not using a development setup (PR375).
Internal changes#
🖥️ Dependencies: added
joseki
(required; PR344, PR375); removediapws
(PR344); upgraded Mitsuba kernel from0.1.0
to0.1.1
(PR375).🖥️ Added a
cfconventions.py
module to store variable attributes (PR375).🖥️ Added wavenumber to the physical quantity definitions (PR344).
🖥️ Add unit test for experiment with CAMS atmosphere (PR375).
🖥️ Added converters
convert_thermoprops()
andconvert_absorption_data()
to convert atmospheric thermophysical profiles and absorption data specifications (PR344).🖥️ Added function
locate_absorption_data()
to locate the absorption data on the Eradiate online stable data store corresponding to a given codename and wavelength range (PR344).🖥️ Added interpolated-related exception types (PR344).
🖥️ Modified the
.AggregateCKDQuad
pipeline step to work with ag
coordinate instead of the previously usedindex
coordinate (PR344).🖥️ Updated the reference dataset for regression test
test_rami4atm_hom00_bla_sd2s_m03_z30a000_brfpp.py
(PR344).🖥️ Renamed module
_molecular_atmosphere.py
to_molecular.py
(PR344).🖥️ Modified
BinSet
class methods to take into account quadrature specifications (PR344).🖥️ Defined two convenient pytest fixtures for molecular atmospheres:
us_standard_mono
andus_standard_ckd_550nm
(PR344).🖥️ Our codebase is now linted using Ruff.