FLUSPECT-B extends PROSPECT-D to compute solar-induced
chlorophyll fluorescence (SIF). It uses the same leaf
biochemistry parameters as PROSPECT-D plus one additional scalar
fqe (fluorescence quantum efficiency). The
model applies the Kubelka-Munk doubling method (15 iterations)
to propagate fluorescence from individual mesophyll layers
through the full leaf stack.
| Parameter | Symbol | Unit | Description |
|---|---|---|---|
| Structure | N | – | Same as PROSPECT-D (1.0–3.6) |
| Chlorophyll a+b | Cab | µg cm⁻² | Same as PROSPECT-D |
| Carotenoids | Car | µg cm⁻² | Same as PROSPECT-D |
| Anthocyanins | Anth | µg cm⁻² | Same as PROSPECT-D |
| Brown pigments | Cbrown | a.u. | Same as PROSPECT-D |
| Water | Cw | cm | Same as PROSPECT-D |
| Dry matter | Cm | g cm⁻² | Same as PROSPECT-D |
| Fluorescence quantum efficiency | fqe | – | Fraction of absorbed PAR re-emitted as SIF (0.005–0.015) |
Output:
FluspectResult containing: -
lrt[2101][3] — reflectance and transmittance
(same format as PROSPECT-D) - Mb[nWlF][nWlE]
— backward (upward) SIF
matrix — proportional to remotely sensed SIF -
Mf[nWlF][nWlE] — forward (downward) SIF
matrix - wlF[53] — emission wavelengths: 640,
644, …, 848 nm (4 nm step) - wlE[71] —
excitation wavelengths: 400, 405, …, 750 nm (5 nm step)
Note on Fresnel angle:
FLUSPECT uses a 59° interface half-angle (vs 40° in PROSPECT-D),
so reflectance/transmittance values will differ slightly from
ProspectD.compute() for the same biochemical
parameters.
import de.grogra.rtmodelslibrary.*;
// Preset
FluspectResult fr = Fluspect.compute(FluspectPreset.DEFAULT_HEALTHY);
// Custom values
FluspectResult fr = Fluspect.compute(
1.5, // N
40.0, // Cab (µg/cm²)
10.0, // Car
0.0, // Anth
0.0, // Cbrown
0.012, // Cw (cm)
0.010, // Cm (g/cm²)
0.01 // fqe
);
// Reflectance and transmittance (same format as ProspectD)
double refl550 = fr.lrt[150][1];
double tran800 = fr.lrt[400][2];
// Backward SIF at 685 nm emission from 550 nm excitation:
// emission index f = (685-640)/4 = 11, excitation index e = (550-400)/5 = 30
double sif685 = fr.Mb[11][30];
// Total backward SIF spectrum (sum over all PAR excitation bands):
double[] sif = new double[fr.wlF.length];
for (int e = 0; e < fr.wlE.length; e++)
for (int f = 0; f < fr.wlF.length; f++)
sif[f] += fr.Mb[f][e];
// Build IrregularSpectralCurve from SIF result
IrregularSpectralCurve sifCurve = new IrregularSpectralCurve(fr.wlF, sif);
FluspectPreset supports the same
interpolation API as ProspectDPreset,
including fqe:
// Two-point: healthy leaf aging to senescence, with fluorescence declining
FluspectResult fr = Fluspect.compute(
FluspectPreset.interpolate(
FluspectPreset.DEFAULT_HEALTHY, FluspectPreset.SENESCENT,
0.6, InterpolationMode.SMOOTHSTEP));
// User-defined preset
FluspectPreset myLeaf = new FluspectPreset(
"My Leaf", 1.5, 42.0, 10.0, 0.0, 0.0, 0.014, 0.009, 0.01);
FluspectResult fr2 = Fluspect.compute(myLeaf);
| Preset | N | Cab | Car | fqe | Description |
|---|---|---|---|---|---|
| Default (Healthy) |
DEFAULT_HEALTHY
| 1.5 | 40 | 10 | 0.010 |
| Shade Adapted |
SHADE_ADAPTED
| 1.2 | 55 | 12 | 0.012 |
| Water Stressed |
WATER_STRESSED
| 1.6 | 25 | 8 | 0.005 |
| Senescent |
SENESCENT
| 2.0 | 10 | 4 | 0.002 |
| High SIF |
HIGH_SIF
| 1.3 | 50 | 14 | 0.015 |
van der Tol, C., Berry, J.A., Campbell, P.K.E., Rascher, U. (2014). Models of fluorescence and photosynthesis for interpreting measurements of solar-induced chlorophyll fluorescence. Journal of Geophysical Research: Biogeosciences, 119:2312–2327.
Vilfan, N., van der Tol, C., Muller, O., Rascher, U., Verhoef, W. (2016). Fluspect-B: A model for leaf fluorescence, reflectance and transmittance spectra. Remote Sensing of Environment, 186:596–615.