Recent Releases of Eradiate
Eradiate - v0.30.0
In this major release, we add several features related with polarization and aquatic surface modelling. We also further improve the expert interface with additional syntactic sugar and debugging tools.
[!important]
The
mycena
CKD dataset (10 nm resolution) has been updated and fixed. Themycena
keyword now routes to this updated version (mycena_v2
), both for data download and consumption. The previous version of the dataset is still available asmycena_v1
.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn about 1 month ago
Eradiate - v0.29.1
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.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn 6 months ago
Eradiate - v0.29.0
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.
[!important]
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.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn 7 months ago
Eradiate - v0.28.0
In this major release, we added a new variant of the volumetric path tracing algorithm that performs much better when working with a plane-parallel atmosphere. We also added an option to report an estimate of the variance on the main radiometric variable computed by each sensor. Finally, we improved the documentation of our spectral response function library, and performed some cleanup on the data we provide.
[!Important]
When upgrading, pay attention to the following:
- We removed the PRISMA band SRFs, which were effectively computed from Gaussian parameters. Instead, users should use the
srf_tools.make_gaussian()
function.- We capped our Numpy version requirement to prevent unintentional upgrade to v2.0.0+. While this is a questionable choice, we had to make this decision because we cannot currently guarantee that our code will be compatible with all supported Numpy version. We will relax this constraint as soon as possible.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn 9 months ago
Eradiate - v0.27.0
This major release brings a new molecular absorption database infrastructure that drastically improves performance, in particular for hyperspectral runs. The molecular absorption database configuration interface is modified, but compatibility with prior syntax will be maintained for a few versions to let users migrate to the new (simpler) interface without trouble.
We also introduce a new library to handle the configuration of Eradiate. This notably adds the possibility to configure Eradiate using a configuration file written in the TOML language.
[!Important]
When upgrading, please check the following:
- Settings are now accessed through the
eradiate.config.settings
mapping. Check the configuration guide to learn more about the new options available to configure Eradiate.- The new molecular absorption handling infrastructure now requires ancillary files that will be shipped in the future, but still have to be generated at the moment. Be sure to check the updated installation and data download instructions.
- The new molecular absorption data configuration now uses a single keyword and no longer requires specifying the covered spectral range. For more details, check the
MolecularAtmosphere
reference, theAbsorptionDatabase
reference (in particular theAbsorptionDatabase.from_name()
andAbsorptionDatabase.from_directory()
constructors), as well as the molecular atmosphere tutorial.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn 11 months ago
Eradiate - v0.26.1
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.x. 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, and 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.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn about 1 year ago
Eradiate - v0.25.0
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 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 of the detailed change log below for more details.If you experience issues upgrading your code to this new interface, please get in touch through our Discussions forum.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn over 1 year ago
Eradiate - v0.24.0
Release highlights
- This is mainly a fix release. Thanks to our users for raising issues!
- An experimental interface to mesh-based preset canopies is added. The currently distributed data is limited to the Wellington Citrus Orchard scene; it will be expanded in the coming releases.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn over 1 year ago
Eradiate - v0.23.2
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 and we still recommend using theDirectionalIllumination
for your computations. - The
DEMExperiment
now supports the spherical-shell geometry. - The command-line interface now uses the Typer framework for improved user experience.
Atmosphere - Radiative Transfer
- Python
Published by leroyvn almost 2 years ago
Eradiate - v0.23.1
What's Changed
- Load SRF from custom path by @nollety in https://github.com/eradiate/eradiate/pull/270
- Add grid support to
MultipleDistantMeasure
by @leroyvn in https://github.com/eradiate/eradiate/pull/274 - Update Mitsuba submodule by @leroyvn in https://github.com/eradiate/eradiate/pull/277
- Data: Look for prepared then raw SRF by @nollety in https://github.com/eradiate/eradiate/pull/278
- MeshTreeElement: Fix behaviour when passing no units by @leroyvn in https://github.com/eradiate/eradiate/pull/279
- Distant measures: Allow manual ray offset control by @leroyvn in https://github.com/eradiate/eradiate/pull/275
- Measure: Allow sampler selection by @leroyvn in https://github.com/eradiate/eradiate/pull/280
MultiDistantMeasure
: Support dict-based unit specification for direction layout by @leroyvn in https://github.com/eradiate/eradiate/pull/281- Fix excessive memory usage by @leroyvn in https://github.com/eradiate/eradiate/pull/282
- Add utility functions to
srf_tools
module by @nollety in https://github.com/eradiate/eradiate/pull/283 - Harmonise dataset converters by @nollety in https://github.com/eradiate/eradiate/pull/284
- Add
MQDiffuseBSDF
interface by @leroyvn in https://github.com/eradiate/eradiate/pull/286 - Remove EradiateConfig.data_path by @nollety in https://github.com/eradiate/eradiate/pull/292
- GitHub actions update and tests by @schunkes in https://github.com/eradiate/eradiate/pull/204
- Fix bilambertian BSDF with LLVM variants by @leroyvn in https://github.com/eradiate/eradiate/pull/297
- Refactor the
Mode
type by @leroyvn in https://github.com/eradiate/eradiate/pull/298 - Add Ruff linter by @leroyvn in https://github.com/eradiate/eradiate/pull/299
- Add TSIS-1 HSRS solar irradiance spectra by @nollety in https://github.com/eradiate/eradiate/pull/300
- Extract DEM feature to
DEMExperiment
class by @schunkes in https://github.com/eradiate/eradiate/pull/289 - Scene update engine by @leroyvn in https://github.com/eradiate/eradiate/pull/296
- Reqs: Update nbsphinx to v0.9.0+, remove sphinx-gallery by @leroyvn in https://github.com/eradiate/eradiate/pull/308
- Spot illumination by @schunkes in https://github.com/eradiate/eradiate/pull/302
- Pull
***Experiment.contexts
one level up by @nollety in https://github.com/eradiate/eradiate/pull/310 - Add constants module by @leroyvn in https://github.com/eradiate/eradiate/pull/312
- Pull
***Experiment.contexts
one level up (follow-up) by @nollety in https://github.com/eradiate/eradiate/pull/313 - util.misc: Add cache_by_id() by @leroyvn in https://github.com/eradiate/eradiate/pull/315
- ParticleLayer: Add absorption and scattering bypass switches by @leroyvn in https://github.com/eradiate/eradiate/pull/316
- Summarize xarray data repr in scene elements by @leroyvn in https://github.com/eradiate/eradiate/pull/317
- Redirect Mitsuba logs to the
mitsuba
logger by @leroyvn in https://github.com/eradiate/eradiate/pull/318 - Fix atmospheric property setup and update by @leroyvn in https://github.com/eradiate/eradiate/pull/319
- Clearer aerosol optical thickness algorithm by @leroyvn in https://github.com/eradiate/eradiate/pull/321
Full Changelog: https://github.com/eradiate/eradiate/compare/v0.22.5...v0.23.1
Atmosphere - Radiative Transfer
- Python
Published by leroyvn about 2 years ago
Eradiate - v0.22.5
What's Changed
- Define atmo-centimeter unit by @nollety in https://github.com/eradiate/eradiate/pull/245
- Fix paths to CKD data sets in
downloads.yml
by @nollety in https://github.com/eradiate/eradiate/pull/248 - Support various azimuth definition conventions by @leroyvn in https://github.com/eradiate/eradiate/pull/247
- Offline mode by @leroyvn in https://github.com/eradiate/eradiate/pull/249
- Update Mitsuba by @leroyvn in https://github.com/eradiate/eradiate/pull/250
- Remove path resolver by @leroyvn in https://github.com/eradiate/eradiate/pull/251
- Add spectral response functions from JPSS1 and NPP platforms by @nollety in https://github.com/eradiate/eradiate/pull/253
- Lazy imports by @leroyvn in https://github.com/eradiate/eradiate/pull/254
- Rename experiment classes by @leroyvn in https://github.com/eradiate/eradiate/pull/252
- Update Mitsuba to v3.0.1 by @leroyvn in https://github.com/eradiate/eradiate/pull/255
- Substiantial speedup for large biosphere scenes by @schunkes in https://github.com/eradiate/eradiate/pull/256
- Fix incorrect Earth-Sun distance-based scaling by @leroyvn in https://github.com/eradiate/eradiate/pull/258
- Add sys_info module, upgrade eradiate show with system information by @leroyvn in https://github.com/eradiate/eradiate/pull/264
- Plugins: Add mqdiffuse by @leroyvn in https://github.com/eradiate/eradiate/pull/265
- Digital elevation model by @schunkes in https://github.com/eradiate/eradiate/pull/246
- Update mitsuba by @leroyvn in https://github.com/eradiate/eradiate/pull/267
- Update dependency list by @leroyvn in https://github.com/eradiate/eradiate/pull/266
- Transition to attrs next-generation APIs by @leroyvn in https://github.com/eradiate/eradiate/pull/268
- Added new sahara and continental particle radiative properties by @nollety in https://github.com/eradiate/eradiate/pull/259
- Stop raising exception when purely absorbing
MolecularAtmosphere
is mixed withParticleLayer
by @nollety in https://github.com/eradiate/eradiate/pull/239 - ExponentialParticleDistribution: Use rate-based formula by @leroyvn in https://github.com/eradiate/eradiate/pull/271
- LeafCloud.sphere(): Add missing radius params by @leroyvn in https://github.com/eradiate/eradiate/pull/272
- Update to new hierarchical tutorial structure by @leroyvn in https://github.com/eradiate/eradiate/pull/209
- Render tutorials by @leroyvn in https://github.com/eradiate/eradiate/pull/273
- util: Update lazy loader to v0.1rc3, add stub files for lazy imports by @leroyvn in https://github.com/eradiate/eradiate/pull/261
Full Changelog: https://github.com/eradiate/eradiate/compare/v0.22.4...v0.22.5
Atmosphere - Radiative Transfer
- Python
Published by leroyvn over 2 years ago
Eradiate - v0.22.4
What's Changed
- Transition project metadata to pyproject.toml by @leroyvn in https://github.com/eradiate/eradiate/pull/203
- Tests: Use eradiate.run() by @leroyvn in https://github.com/eradiate/eradiate/pull/227
- Update mitsuba submodule by @leroyvn in https://github.com/eradiate/eradiate/pull/228
- Add irregularly gridded tabulated phase function support by @leroyvn in https://github.com/eradiate/eradiate/pull/229
- Get rid of temporary volume files by @leroyvn in https://github.com/eradiate/eradiate/pull/231
- Add spectral response functions for POLDER instrument onboard PARASOL platform by @nollety in https://github.com/eradiate/eradiate/pull/232
- Add
thuillier_2003_extrapolated
by @nollety in https://github.com/eradiate/eradiate/pull/233 - Data guide: clarify total solar irradiance by @nollety in https://github.com/eradiate/eradiate/pull/234
- Spectrum: Allow conversion of int to UniformSpectrum by @leroyvn in https://github.com/eradiate/eradiate/pull/236
- BSDF plugins in CentralPatchSurface were in the wrong order by @schunkes in https://github.com/eradiate/eradiate/pull/237
- Raise
ValueError
when concentration values are out of bounds by @nollety in https://github.com/eradiate/eradiate/pull/238 - rpv: Fixes and improvements by @leroyvn in https://github.com/eradiate/eradiate/pull/240
- AggregateCKDQuad: Fix result dataset index by @leroyvn in https://github.com/eradiate/eradiate/pull/241
- Improve Solar irradiance spectrum initialisation sequence by @leroyvn in https://github.com/eradiate/eradiate/pull/242
InterpolatedSpectrum
: Load fromxarray.DataArray
by @leroyvn in https://github.com/eradiate/eradiate/pull/243
Full Changelog: https://github.com/eradiate/eradiate/compare/v0.22.3...v0.22.4
Atmosphere - Radiative Transfer
- Python
Published by leroyvn over 2 years ago
Eradiate - v0.22.3
What's Changed
- Typo in pytest command by @nollety in https://github.com/eradiate/eradiate/pull/198
- Fix incorrect phase function blending in multi-component atmospheres by @nollety in https://github.com/eradiate/eradiate/pull/197
AbstractHeterogeneousAtmosphere
: Fix incorrect volume data transform by @leroyvn in https://github.com/eradiate/eradiate/pull/199- Update issue templates by @leroyvn in https://github.com/eradiate/eradiate/pull/196
- Make
config.progress
anIntEnum
by @leroyvn in https://github.com/eradiate/eradiate/pull/202 - Using abspath to fix the issue of os.makedirs being passed an empty s… by @schunkes in https://github.com/eradiate/eradiate/pull/201
- Add automated deprecation management by @leroyvn in https://github.com/eradiate/eradiate/pull/200
- CKD dataset update by @nollety in https://github.com/eradiate/eradiate/pull/185
CKDSpectralContext
: Add default bin set, remove direct constructor calls by @leroyvn in https://github.com/eradiate/eradiate/pull/205- Tests: Improve regression testing framework by @leroyvn in https://github.com/eradiate/eradiate/pull/207
- Fix atmosphere mixing by @leroyvn in https://github.com/eradiate/eradiate/pull/206
- CLI: Add registry content display feature to eradiate data info by @leroyvn in https://github.com/eradiate/eradiate/pull/208
- Atmosphere guide update by @nollety in https://github.com/eradiate/eradiate/pull/194
- Performance: reduce time spent on I/O and interpolation for scenes with particle layers by @leroyvn in https://github.com/eradiate/eradiate/pull/212
- Re-formatted particle radiative properties data sets by @nollety in https://github.com/eradiate/eradiate/pull/213
- MeasureSpectralConfig: use Sentinel-2A/B2 SRF by default in CKD mode by @leroyvn in https://github.com/eradiate/eradiate/pull/214
- experiments: Add run() function by @leroyvn in https://github.com/eradiate/eradiate/pull/210
- Added uninstall instructions by @nollety in https://github.com/eradiate/eradiate/pull/217
- ParticleLayer system test: parameterised with albedo by @nollety in https://github.com/eradiate/eradiate/pull/218
- Updated eradiate.data.open calls with new eradiate.data.open_dataset by @nollety in https://github.com/eradiate/eradiate/pull/220
- ParticleLayer: tests update and refactoring by @nollety in https://github.com/eradiate/eradiate/pull/219
ParticleLayer
: more flexible optical thickness parameterisation by @nollety in https://github.com/eradiate/eradiate/pull/221- Particle layer: tests update and refactoring (follow-up) by @nollety in https://github.com/eradiate/eradiate/pull/222
- Various fixes by @leroyvn in https://github.com/eradiate/eradiate/pull/224
- Atmosphere: Scaling factor computation dispatch was ambiguous by @schunkes in https://github.com/eradiate/eradiate/pull/225
ParticleLayer
: adddataset
format requirements by @nollety in https://github.com/eradiate/eradiate/pull/223TabulatedPhase
: better eval method by @nollety in https://github.com/eradiate/eradiate/pull/226
Full Changelog: https://github.com/eradiate/eradiate/compare/v0.22.2...v0.22.3
Atmosphere - Radiative Transfer
- Python
Published by leroyvn over 2 years ago
Eradiate - v0.22.2
What's Changed
- User guide proof reading by @nollety in https://github.com/eradiate/eradiate/pull/189
- Compute King correction factor from Bates (1984) data by @nollety in https://github.com/eradiate/eradiate/pull/187
- Data guide update by @nollety in https://github.com/eradiate/eradiate/pull/190
- Updated "User Guide - Conventions in Eradiate" by @nollety in https://github.com/eradiate/eradiate/pull/192
- Refactor regression testing framework by @schunkes in https://github.com/eradiate/eradiate/pull/188
- User guide tweaks by @leroyvn in https://github.com/eradiate/eradiate/pull/193
- Bug fix by @nollety in https://github.com/eradiate/eradiate/pull/195
Full Changelog: https://github.com/eradiate/eradiate/compare/v0.22.1...v0.22.2
Atmosphere - Radiative Transfer
- Python
Published by leroyvn over 2 years ago