knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval=FALSE )
prospect
in forward modeThe function PROSPECT
runs the model PROSPECT to simulate leaf directional-hemispherical reflectance and transmittance from a set of chemical constituents and a structure parameter. The leaf optical properties are simulated over a spectral domain defined between 400 nm and 2500 nm, with a maximum spectral sampling of 1 nm.
PROSPECT
uses the following input variables:
SpecPROSPECT
: a data frame including the refractive index and specific absorption coefficients (which are optical constants for a given version of PROSPECT).
SpecPROSPECT
alo defines the spectral domain used for simulation.
The default value of SpecPROSPECT
is defined by prospect::SpecPROSPECT_FullRange
, which includes optical constants over the spectral domain ranging from 400 nm to 2500 nm.
** Simulation and inversion on different spectral domains (reduced spectral range and/or adjusted spectral sampling) can be performed by adapting the information in SpecPROSPECT
.
The biochemical and biophysical input variables of PROSPECT are :
The PROSPECT
function returns a data frame containing leaf directional-hemispherical reflectance and transmittance (reflectance
and transmittance
) and the corresponding wavelengths (wvl
) as defined in SpecPROSPECT
.
When run without input parameters, PROSPECT
is run with default values:
SpecPROSPECT
is defined by prospect::SpecPROSPECT_FullRange
the default values of the structural and chemical parameters are set.
library(prospect) LRT_default <- PROSPECT() # the following command is equivalent when simulating over the full spectral domain LRT_default <- PROSPECT(SpecPROSPECT = prospect::SpecPROSPECT_FullRange)
Part or all of the input parameters can be provided as input parameters. Default values are set for undeclared parameters. This example simulates leaf optics over the full visible to shortwave infrared domain defined in PROSPECT.
LRT_VSWIR <- PROSPECT(N = 1.4, CHL = 30, CAR = 6, EWT = 0.02, LMA = 0.01)
The spectral range in SpecPROSPECT$lambda
defines the simulated spectral domain.
It can be adjusted with the function FitSpectralData
.
FitSpectralData
can also be used to match the spectral range and sampling of input data with those of the optical constants.
# define the spectral range for simulations in the VNIR from 400 to 1000 nm wvlRange <- seq(400,1000) # adjust spectral properties used in PROSPECT to VNIR domain Adjust_VNIR <- FitSpectralData(lambda = wvlRange) LRT_VNIR <- PROSPECT(SpecPROSPECT = Adjust_VNIR$SpecPROSPECT, N = 1.4, CHL = 30, CAR = 6, EWT = 0.02, LMA = 0.01)
PROSPECT-D is the most commonly used version of PROSPECT, combining all dry matter constituents in a unique chemical constituent.
The absorption of this chemical constituent is accounted for through the variable LMA
.
PROSPECT-PRO is the latest official version released.
The only difference between PROSPECT-PRO and PROSPECT-D is that LMA is divided into proteins and CBC. Therefore, the default values in prospect
correspond to calling PROSPECT-D, as PROT
and CBC
are set to 0.
When calling PROSPECT
, either LMA
or PROT
and CBC
should be set to 0, or undefined.
A message will be displayed if it is not the case:
LRT_confusion_version <- PROSPECT(CHL = 45, CAR = 10, ANT = 0.2, EWT = 0.012, LMA = 0.01, PROT = 0.001, N =1.3) 'PROT and/or CBC are not set to 0 LMA is not set to 0 neither, which is physically incorrect (LMA = PROT + CBC) We assume that PROSPECT-PRO was called and set LMA to 0 Please correct input parameters LMA, PROT and/or CBC if needed'
Here is an example to run PROSPECT-D:
LRT_D <- PROSPECT(CHL = 45, CAR = 10, ANT = 0.2, EWT = 0.012, LMA = 0.01, N =1.3)
and another one with PROSPECT-PRO, which should lead to very similar leaf optics:
LRT_PRO <- PROSPECT(CHL = 45, CAR = 10, ANT = 0.2, EWT = 0.012, PROT = 0.001, CBC = 0.009, N =1.3)
The resulting leaf optical properties are, indeed, very similar:
while using proteins only instead of proteins + CBC to simulate LMA leads to different results:
LRT_PRO2 <- PROSPECT(CHL = 45, CAR = 10, ANT = 0.2, EWT = 0.012, PROT = 0.010, CBC = 0.0, N = 1.3)
On the other hand, using CBC only instead of proteins + CBC to simulate LMA leads to very similar results compared to simulation with PROSPECT-D.
This is explained by the low proportion of proteins compared to CBC in the total contribution to LMA, and the very similar specific absorption coefficient between LMA and CBC. This also highlights the challenges for the proper estimation of proteins from LOP.
LRT_PRO3 <- PROSPECT(CHL = 45, CAR = 10, ANT = 0.2, EWT = 0.012, PROT = 0.000, CBC = 0.010, N = 1.3)
If you want to run previous versions of PROSPECT:
We do not recommend using PROSPECT-4 or PROSPECT-5, as the calibration of the refractive index along with specific absorption coefficients for chlorophylls and carotenoids resulted in artifacts in the VIS domain.
If you want to account for the absorption of chlorophylls and carotenoids, but do not want to include anthocyanins (as it is the case for PROSPECT-5): calling PROSPECT
with no input ANT
will set its default value to 0.
If you do not want to differentiate chlorophylls and carotenoids (as it is the case for PROSPECT-4 and earlier versions): we recommend that you use PROSPECT and set CAR
as a constant fraction of CHL
.
prospect
Look-Up-Tables (LUT) are widely used in order to infer leaf characteristics from PROSPECT, based on minimization techniques. The function PROSPECT_LUT
allows computation of a LUT directly based on a data frame of input parameters.
The following example produces LUTs in the VSWIR and VNIR domains with the function PROSPECT_LUT
of prospect
.
Undefined parameters will be automatically set to their default value.
Input_PROSPECT <- data.frame('CHL' = 100*runif(1000), 'CAR' = 25*runif(1000), 'ANT' = 2*runif(1000), 'EWT' = 0.04*runif(1000), 'LMA' = 0.02*runif(1000), 'N' = 1+2*runif(1000)) # produce a LUT defined over the VSWIR domain covered by PROSPECT LUT <- PROSPECT_LUT(Input_PROSPECT = Input_PROSPECT) # produce a LUT defined over the VNIR domain defined previously LUT_VNIR <- PROSPECT_LUT(SpecPROSPECT = Adjust_VNIR$SpecPROSPECT, Input_PROSPECT = Input_PROSPECT)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.