scopeinpython.rtmz
SCOPE canopy zeaxanthin RTM: the small modification of TOC outgoing
radiance due to violaxanthin-to-zeaxanthin conversion in leaves
(photoprotection, 500-600nm). Direct port of SCOPEinR/R/RTMz.R
(get.RTMz). Structurally close to scopeinpython.rtmf.rtmf()
(same geometric-factor setup, same layer-recursion pattern) but works
directly in the wavelength domain (no excitation-emission matrix) and
returns corrections to be added onto an existing
RTMoResult, rather than a self-contained
new spectrum.
RTMz: SCOPE canopy zeaxanthin (“Z”) radiative transfer model.
Direct port of SCOPEinR::get.RTMz (SCOPEinR/R/RTMz.R), computing
the small modification of TOC outgoing radiance due to the
violaxanthin-to-zeaxanthin conversion in leaves (a photoprotection
signal, 500-600 nm). Structurally very similar to
scopeinpython.rtmf.rtmf() (same geometric-factor setup, same
layer-recursion pattern) but simpler: RTMz works directly in the 500-600
nm wavelength domain (no excitation-emission matrix like Mb/Mf –
the zeaxanthin signal is a per-wavelength reflectance/transmittance
difference, reflZ - refl / tranZ - tran, not a fluorescence
redistribution), and produces a correction to be added onto an existing
RTMoResult’s Lo_/rso/rdo/rfl/
Eout_ at the 500-600 nm band, rather than a self-contained new
spectrum on its own display grid (RTMf’s LoF_ etc).
Verified against SCOPEinR::get.RTMz – see
python/docs/verification.rst for the numerical comparison.
- class scopeinpython.rtmz.RTMzResult(Lo_delta, rso_delta, rdo_delta, Eout_delta, LoF_)[source]
Bases:
objectCorrections to be ADDED to the corresponding 500-600nm slice of an existing
RTMoResult(indices_IWLFI=wlZ_native - 400into anywlS-grid array, or equivalentlyspectral.wlS[_IWLFI] == _WLZ_NATIVE).- Parameters:
- scopeinpython.rtmz.rtmz(spectral, rtmo, canopy, tts, tto, psi, rsoil, refl, tran, reflZ, tranZ, Knu, Knh)[source]
Direct port of
SCOPEinR::get.RTMz(see module docstring).- Parameters:
rtmo (RTMoResult) – From
scopeinpython.rtmo.run_rtmo(), called with the samecanopy/tts/tto/psi/rsoilas here.rsoil (array_like, shape (2001,)) – Same 400-2400nm soil reflectance array passed to
run_rtmo.refl (array_like, shape (nl, 2001)) – Baseline (
Cx=0) leaf reflectance/transmittance, fromscopeinpython.fluspect_mscope.fluspect_mscope().tran (array_like, shape (nl, 2001)) – Baseline (
Cx=0) leaf reflectance/transmittance, fromscopeinpython.fluspect_mscope.fluspect_mscope().reflZ (array_like, shape (nl, 2001)) – Full-zeaxanthin (
Cx=1) leaf reflectance/transmittance, from a secondfluspect_mscope()call with the samemly/nl/stepbutCx=1.tranZ (array_like, shape (nl, 2001)) – Full-zeaxanthin (
Cx=1) leaf reflectance/transmittance, from a secondfluspect_mscope()call with the samemly/nl/stepbutCx=1.Knu (array_like, shape (nl, 13, 36)) – Sunlit-leaf NPQ (
Kn, fromscopeinpython.biochemical.get_biochemical()) per canopy layer x leaf-inclination class x leaf-azimuth class.Knh (array_like, shape (nl,)) – Shaded-leaf NPQ per canopy layer.
spectral (SpectralConfig)
canopy (CanopyStructure)
tts (float)
tto (float)
psi (float)
- Return type: