knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval=FALSE )
The N
structure parameter is usually estimated from the inversion of PROSPECT using reflectance and transmittance for spectral bands corresponding to minimum absorption, maximum reflectance, and maximum transmittance.
Qiu et al. (2018) reported a strong correlation between the N parameter and the ratio between reflectance and transmittance measured in the NIR at 800 nm. Taking advantage of this correlation to estimate N requires measuring both leaf reflectance and transmittance, in line with the original method used to compute N from leaf optical properties. However, absorptance in the NIR domain is usually very low: Merzlyak et al. (2004) even suggest that absorptance in the domain ranging from 750 nm to 800 nm can be neglected. Thus assuming light in the NIR is primarily either reflected or transmitted as a function of leaf structure, information about reflectance only or transmittance only might be sufficient to accurately estimate the N parameter with moderate uncertainty, following the hypothesis that absorptance is negligible.
The estimation of N prior to PROSPECT inversion may therefore lead to improved estimation of leaf constituents when using optimal spectral subdomains with only reflectance or transmittance.
Here, we assume that absorptance is negligible in specific spectral domains of the NIR. Therefore, the R/T ratio is equivalent to R/(1-R) and to (1-T)/T. Then, we can adjust the N ~ R/(1-R) and N ~ (1-T)/T relationship based on simulations, and apply this linear relationship on experimental to get estimates of N based on R only or T only.
The function Get_Nprior
aims at adjusting this linear relationship, based on the work described in Spafford et al. (2021).
This estimated N value can then be used as prior information when inverting PROSPECT leaf chemical constituents.
# Libraries required library(prospect) # download ANGERS dataset LeafDB <- download_LeafDB(dbName = 'ANGERS') # Prior estimation of N using R only Nprior_R <- Get_Nprior(lambda = LeafDB$lambda, Refl = LeafDB$Refl) # Prior estimation of N using T only Nprior_T <- Get_Nprior(lambda = LeafDB$lambda, Tran = LeafDB$Tran)
N
based on R or T only vs. N
estimate from iterative optimization over the full spectral domainSee https://jbferet.gitlab.io/prospect/articles/prospect3.html to get estimation of N from inversion over the full spectral domain
The value of N estimated from from either R or T is compared to N
based on iterative optimization over the full spectral domain on figure 1.
N
estimated from PROSPECT inversion using R & T over the full spectral domain, and from PROSPECT inversion using either R or T and the method provided in the function Get_Nprior
, for ANGERS dataset.
The estimation of leaf constituents based on reflectance or transmittance only, when no prior estimation of N
is provided, is performed as follows:
# Estimate all parameters for PROSPECT-D Parms2Estimate <- 'ALL' InitValues <- data.frame(CHL = 40, CAR = 10, ANT = 0.1, BROWN = 0, EWT = 0.01, LMA = 0.01, N = 1.5) # Adjust spectral domain for SpecPROSPECT to fit leaf optical properties SubData <- FitSpectralData(lambda = LeafDB$lambda, Refl = LeafDB$Refl, Tran = LeafDB$Tran) print('PROSPECT inversion using full spectral range') res_Ronly <- Invert_PROSPECT(SpecPROSPECT = SubData$SpecPROSPECT, Refl = SubData$Refl, Tran = NULL, PROSPECT_version = 'D', Parms2Estimate = Parms2Estimate, InitValues = InitValues) res_Tonly <- Invert_PROSPECT(SpecPROSPECT = SubData$SpecPROSPECT, Refl = NULL, Tran = SubData$Refl, PROSPECT_version = 'D', Parms2Estimate = Parms2Estimate, InitValues = InitValues)
The performance of PROSPECT inversion when no prior estimation of N
is provided and only R and T measured can be compared with the performances obtained when prior estimate of N
is provided
# Estimate all parameters for PROSPECT-D Parms2Estimate <- c("CHL", "CAR", "ANT", "EWT", "LMA") print('PROSPECT inversion using full spectral range') res_R_Nprior <- res_T_Nprior <- list() for (i in 1:LeafDB$nbSamples){ print(i) InitValues <- data.frame(CHL = 40, CAR = 10, ANT = 0.1, BROWN = 0, EWT = 0.01, LMA = 0.01, N = Nprior_R$N[i]) res_R_Nprior[[i]] <- Invert_PROSPECT(SpecPROSPECT = SubData$SpecPROSPECT, Refl = SubData$Refl[[i]], Tran = NULL, PROSPECT_version = 'D', Parms2Estimate = Parms2Estimate, InitValues = InitValues) InitValues <- data.frame(CHL = 40, CAR = 10, ANT = 0.1, BROWN = 0, EWT = 0.01, LMA = 0.01, N = Nprior_T$N[i]) res_T_Nprior[[i]] <- Invert_PROSPECT(SpecPROSPECT = SubData$SpecPROSPECT, Refl = NULL, Tran = SubData$Tran[[i]], PROSPECT_version = 'D', Parms2Estimate = Parms2Estimate, InitValues = InitValues) }
Finally, the combination of prior estimation of N
and optimal spectral domain for each constituent is also tested:
# Estimate all parameters for PROSPECT-D using R only Parms2Estimate <- c('CHL','CAR','ANT','EWT','LMA') InitValues <- data.frame(CHL = 40, CAR = 8, ANT = 0.1, BROWN = 0, EWT = 0.01, LMA = 0.01, N = 1.5) print('PROSPECT inversion using optimal spectral setting and prior N') ParmEst_R_OPT <- Invert_PROSPECT_OPT(SpecPROSPECT = SubData$SpecPROSPECT, lambda = SubData$lambda, Refl = SubData$Refl, Tran = NULL, PROSPECT_version = 'D', Parms2Estimate = Parms2Estimate, InitValues = InitValues) ParmEst_T_OPT <- Invert_PROSPECT_OPT(SpecPROSPECT = SubData$SpecPROSPECT, lambda = SubData$lambda, Refl = NULL, Tran = SubData$Tran, PROSPECT_version = 'D', Parms2Estimate = Parms2Estimate, InitValues = InitValues)
The comparison between PROSPECT inversion without prior N
, with prior N
, and with prior N
and optimal spectral domain selection, when only R or T are used, is showed below:
CHL
from PROSPECT inversion, without prior N
(left), with prior N
(middle), and with prior N
and optimal spectral domain selection (right), when using only R (top) or only T (bottom). Grey dots correspond to the estimation when inverting PROSPECT using R & T over the full VSWIR spectral domain.
CAR
from PROSPECT inversion, without prior N
(left), with prior N
(middle), and with prior N
and optimal spectral domain selection (right), when using only R (top) or only T (bottom). Grey dots correspond to the estimation when inverting PROSPECT using R & T over the full VSWIR spectral domain.
EWT
from PROSPECT inversion, without prior N
(left), with prior N
(middle), and with prior N
and optimal spectral domain selection (right), when using only R (top) or only T (bottom). Grey dots correspond to the estimation when inverting PROSPECT using R & T over the full VSWIR spectral domain.
LMA
from PROSPECT inversion, without prior N
(left), with prior N
(middle), and with prior N
and optimal spectral domain selection (right), when using only R (top) or only T (bottom). Grey dots correspond to the estimation when inverting PROSPECT using R & T over the full VSWIR spectral domain.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.