toolsrtm.inform
INFORM forest-stand reflectance (Atzberger 2000; Schlerf & Atzberger 2006):
FLIM ground-coverage geometry + fourSAIL understorey/infinite-crown +
crown transmittance. Direct port of ToolsRTM/R/inform.R and its
internal helpers (foursail.inform.R, foursail.inf.R,
foursail_t_s.R, foursail_t_o.R, Compute_BRF.R).
INFORM: the INvertible FOrest Reflectance Model (Atzberger 2000; Schlerf & Atzberger 2006), a FLIM (Rosema et al. 1992) + fourSAIL + PROSPECT combination for forest-stand bidirectional reflectance, 400-2500 nm.
Direct port of ToolsRTM/R/inform.R and its internal helpers
(foursail.inform.R, foursail.inf.R, foursail_t_s.R,
foursail_t_o.R, Compute_BRF.R), restricted to what inform()
itself actually exercises. All 5 leaf models ToolsRTM itself supports
(PROSPECT-D/-PRO, Liberty, Fluspect-B/-B-Cx) are wired in via
toolsrtm.canopy._leaf_optics(), the same dispatcher toolsrtm.canopy.foursail()
uses.
Reproduces the R source’s own behavior exactly, so results match R
bit-for-bit – see inline comments at _INFORM_QUIRKY_LIDF and
compute_brf.
- toolsrtm.inform.compute_brf(rdot, rsot, tts, es=None, ed=None, short_waves=False)[source]
Bidirectional reflectance factor from direct/diffuse light mixing.
Direct port of
ToolsRTM::Compute_BRF. That R function has two Es/Ed sourcing paths gated onis.null(data.light): a positionaldataSpec_PDB[,11]/[,12]path (columns actually nameddry_soil/wet_soil– unused dead code, since no call site in the package ever omitsdata.light) and a nameddata.light$ direct_light/data.light$diffuse_lightpath, which is the one every real call site (foursail.inform,foursail.inf) hits by always passingdata.light=ToolsRTM::dataSpec_PDBexplicitly.es/edhere default to thosedirect_light/diffuse_lightcolumns to match.es/edare truncated tolen(rdot)directly rather than being gated onshort_waves–rdot/rsotare 2101 long for PROSPECT-D/-PRO/Liberty but only 2001 long for Fluspect-B/-B-Cx (its native 400-2400nm domain); a caller who passes mismatched-lengthrdot/short_wavescombinations (e.g. calling this directly on a Fluspect-basedfoursail()result without also settingshort_waves=True) would otherwise hit a hard NumPy broadcasting error.ToolsRTM::Compute_BRFmatches Es/Ed tordot’s length the same way this port does;short_wavesis kept only for backward API compatibility and no longer has any effect.- Parameters:
tts (float)
short_waves (bool)
- toolsrtm.inform.foursail_inform(inputLUT, rsoil)[source]
Understorey reflectance (dicotyledoneae defaults), BRF-blended.
Direct port of
ToolsRTM::foursail.informwithtypeLAI='understorey'– the onlytypeLAIvalueinform()itself ever calls it with (the'Inf-crownTree'/default branches are dead code from the caller’s perspective and are not ported).
- toolsrtm.inform.foursail_inf(inputLUT, rsoil, rleaf, tleaf, short_waves=False)[source]
Infinite (very dense, LAI=15) crown reflectance, BRF-blended.
Direct port of
ToolsRTM::foursail.infas called byinform().short_wavesdefaults toFalse(the non-Fluspect leaf models’ call site omits the argument, so R’smissing()guard resolves it toFALSE– seecompute_brf());inform()passesshort_waves=Trueexplicitly for the Fluspect-B/-B-Cx leaf models (matching R’s ownfoursail.inf(..., short.waves=T)call there). Unlikefoursail_inform(), TypeLidf==1 here uses a realdladgencall in the R source (not the hardcoded quirky table), so this reusestoolsrtm.canopy.foursail_core()directly.
- toolsrtm.inform.foursail_t_s(inputLUT, rsoil, rleaf, tleaf)[source]
Crown transmittance in the sun direction. Port of
foursail_t_s.R.
- toolsrtm.inform.foursail_t_o(inputLUT, rsoil, rleaf, tleaf)[source]
Crown transmittance in the observation direction. Port of
foursail_t_o.R– note the R source passes the viewing zenith angle (tto) in asttstoo, so illumination and viewing geometry coincide; reproduced as-is.
- toolsrtm.inform.inform(inputLUT, rsoil, leaf_model='PROSPECT-PRO')[source]
INFORM forest-stand reflectance. Direct port of
ToolsRTM::inform, dispatching to any of the 5 leaf models ToolsRTM itself supports (seetoolsrtm.canopy._leaf_optics()) – same astoolsrtm.canopy.foursail().- Parameters:
inputLUT (dict) – Must contain the fourSAIL keys (
LIDFa,LIDFb,TypeLidf,LAI,hspot,tts,tto,psi) plus the leaf-model parameters (seetoolsrtm.canopy.foursail()for the full list per leaf model), plus the INFORM-specific canopy keysLAIu(understorey LAI),sd(stem density, ha-1),cd(crown diameter, m),h(tree height, m), andskyl(diffuse-light fraction).rsoil (array_like) – Soil reflectance spectrum, 400-2500 nm (2101 values).
leaf_model ({'PROSPECT-D', 'PROSPECT-PRO', 'Liberty', 'Fluspect-B', 'Fluspect-B-Cx'})
- Returns:
Forest reflectance spectrum – 2101 values (400-2500 nm) for PROSPECT-D/-PRO/Liberty, 2001 values (400-2400 nm) for the two Fluspect leaf models (matching R’s
r_understorey[1:2001]truncation there andfoursail.inf(..., short.waves=T)).- Return type: