eradiate.experiments.AtmosphereExperiment#

class eradiate.experiments.AtmosphereExperiment(measures=_Nothing.NOTHING, illumination=_Nothing.NOTHING, geometry='plane_parallel', atmosphere=_Nothing.NOTHING, surface=_Nothing.NOTHING, dem=None, integrator=_Nothing.NOTHING)[source]#

Bases: eradiate.experiments._core.EarthObservationExperiment

Simulate radiation in a one-dimensional scene. This experiment approximates a one-dimensional setup using a 3D geometry set up to reproduce the effect of invariances typical of 1D geometries. It supports the so-called plane parallel and spherical shell geometries.

Parameters
Fields

Notes

  • A post-initialisation step will constrain the measure setup if a distant measure is used and no target is defined:

    • if an atmosphere is defined, the target will be set to [0, 0, TOA];

    • if no atmosphere is defined, the target will be set to [0, 0, 0].

  • This experiment supports arbitrary measure positioning, except for MultiRadiancemeterMeasure, for which subsensor origins are required to be either all inside or all outside of the atmosphere. If an unsuitable configuration is detected, a ValueError will be raised during initialisation.

classmethod from_dict(d)#

Instantiate from a dictionary. The default implementation raises an exception.

Parameters

d (dict) – Dictionary to be converted to an Experiment.

Returns

Experiment

kernel_dict(ctx)[source]#

Return a dictionary suitable for kernel scene configuration.

Parameters

ctx (KernelDictContext) – A context data structure containing parameters relevant for kernel dictionary generation.

Returns

KernelDict – Kernel dictionary which can be loaded as a Mitsuba object.

kernel_dicts(measure)#

A generator which returns kernel dictionaries (and the associated context) relevant to a given measure.

Parameters

measure (Measure or int) – Measure for which kernel dictionaries are to be generated. Alternatively, the index in the self.measure list can be passed.

Yields
pipeline(*measures)#

Request post-processing pipeline for a given measure.

Parameters

*measures (Measure or int) – One or several measures for which to get a post-processing pipeline. If integer values are passed, they are used to query the measure list.

Returns

pipelines (Pipeline or tuple of Pipeline) – If a single measure is passed, a single Pipeline instance is returned; if multiple measures are passed, a tuple of pipelines is returned.

postprocess(*measures, pipeline_kwargs=None)#

Post-process raw results stored in a measure’s results field. This requires a successful execution of process(). Post-processed results are stored in self.results.

Parameters
  • *measures (Measure or int) – One or several measures for which to perform post-processing. Alternatively, indexes in the measure array can be passed. If no value is passed, all measures are processed.

  • pipeline_kwargs (dict, optional) – A dictionary of pipeline keyword arguments forwarded to Pipeline.transform().

Raises

ValueError – If measure.results is None, i.e. if process() has not been successfully run.

See also

process()

process(*measures, seed_state=None)#

Run simulation on the configured scene. Raw results yielded by the runner function are stored in measure.results.

Parameters
  • *measures (Measure or int) – One or several measures for which to compute radiative transfer. Alternatively, indexes in the measure array can be passed. If no value is passed, all measures are processed.

  • seed_state (SeedState, optional) – A RNG seed state used to generate the seeds used by Mitsuba’s random number generator. By default, Eradiate’s root_seed_state is used.

See also

postprocess()

property integrator#

Integrator used to solve the radiative transfer equation.

Type

Integrator

property results#

Post-processed simulation results.

Returns

dict[str, Dataset] – Dictionary mapping measure IDs to xarray datasets.