- class eradiate.experiments.CanopyExperiment(measures=NOTHING, illumination=NOTHING, canopy=None, padding=0, surface=NOTHING, integrator=NOTHING)#
Simulate radiation in a scene with an explicit canopy and no atmosphere. This experiment assumes that the surface is plane and accounts for ground unit cell padding.
MultiDistantMeasure()) – List of measure specifications. The passed list may contain dictionaries, which will be interpreted by
measure_factory. Optionally, a single
Measureor dictionary specification may be passed and will automatically be wrapped into a list.
DirectionalIllumination()) – Illumination specification. This parameter can be specified as a dictionary which will be interpreted by
0) – Padding level. The scene will be padded with copies to account for adjacency effects. This, in practice, has effects similar to making the scene periodic.A value of 0 will yield only the defined scene. A value of 1 will add one copy in every direction, yielding a 3×3 patch. A value of 2 will yield a 5×5 patch, etc. The optimal padding level depends on the scene.
dict, optional, default:
BasicSurface(bsdf=LambertianBSDF())) – Surface specification. If set to
None, no surface will be added. This parameter can be specified as a dictionary which will be interpreted by
bsdf_factory. If relevant, the surface size will be adjusted automatically upon kernel. dictionary generation.
PathIntegrator()) – Monte Carlo integration algorithm specification. This parameter can be specified as a dictionary which will be interpreted by
A post-initialisation step will constrain the measure setup if a distant measure is used and no target is defined:
if a canopy is defined, the target will be set to the top of the canopy unit cell (i.e. without its padding);
if no canopy is defined, the target will be set to [0, 0, 0].
- classmethod from_dict(d)#
Instantiate from a dictionary. The default implementation raises an exception.
Return a dictionary suitable for kernel scene configuration.
A generator which returns kernel dictionaries (and the associated context) relevant to a given measure.
Request post-processing pipeline for a given measure.
- postprocess(*measures, pipeline_kwargs=None)#
Post-process raw results stored in a measure’s
resultsfield. This requires a successful execution of
process(). Post-processed results are stored in
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.
- process(*measures, seed_state=None)#
Run simulation on the configured scene. Raw results yielded by the runner function are stored in
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.
- property results#
Post-processed simulation results.
Dataset]– Dictionary mapping measure IDs to xarray datasets.