PROSPECT2R: Simulate plant spectrum

PROSPECTR Documentation

Simulate plant spectrum

Description

Simulate plant spectrum using PROSPECT 5b or PROSPECT D. The inversion uses the concept after Feret et al. (2008) based on PROSPECT 5B.

Usage

PROSPECT(N = 1.5, Cab = 40, Car = 8, Anth = 1.0, Cbrown = 0.0, 
         Cw = 0.01, Cm = 0.009, transmittance = FALSE,
         parameterList = NULL, version = "D")
## Inversion
PROSPECTinvert(x, P0 = NULL, lower = NULL, upper = NULL,
               transmittance_spectra = NULL, sam = FALSE, 
               verbose = FALSE, ...)

Arguments

N

Structure parameter

Cab

Chlorophyll content

Car

Carotenoid content

Anth

Anthocyanin content

Cbrown

Brown pigment content

Cw

Equivalent water thickness

Cm

Dry matter content

transmittance

Logical flag, if transmittance instead of reflectance values are returned.

parameterList

An optional object of class 'data.frame'. Function will iterate over rows of parameterList setting missing entries to default values. See examples section.

version

Sets the version of PROSPECT to be used (either "5B" or "D").

x, transmittance_spectra

Speclib(s) containing the reflectance/transmittance values to be simulated during inversion of PROSPECT.

P0

Initial set of parameters (N, Cab etc.) as numeric vector.

lower, upper

Lower and upper boundaries of parameters as numeric vectors.

sam

Logical if spectral angle mapper is used as distance measurement. If FALSE, the root mean square error is used. Note that this flag has only an effect if no transmittance spectra are passed.

verbose

If TRUE, the set of parameters during inversion is printed at each iteration.

...

Parameters passed to optim

Details

This function uses the FORTRAN code of PROSPECT model (Version 5B an D). For a general introduction see following web page and the links to articles provided there:

http://teledetection.ipgp.jussieu.fr/prosail/

The following table summarises the abbreviations of parameters and gives their units as used in PROSPECT. Please note that default values of all parameters were included with the intention to provide an easy access to the model and should be used with care in any scientific approach!

Parameter Description of parameter Units
N Leaf structure parameter NA
Cab Chlorophyll a+b concentration ug/cm2
Car Carotenoid concentration ug/cm2
Anth Anthocyanin content ug/cm2
Cw Equivalent water thickness cm
Cbrown Brown pigment NA
Cm Dry matter content g/cm2

The inversion uses the function optim and implements the Matlab-Code developed by Feret et al. (2008). Please note that the inversion currently only uses version 5B.

Value

An object of class Speclib.

Note

The function is based on the FORTRAN version of the PROSPECT-code initially developed by Jean-Baptiste FERET, Stephane JACQUEMOUD and Christophe FRANCOIS.

Author(s)

Lukas Lehnert

References

Feret J.B., Francois C., Asner G.P., Gitelson A.A., Martin R.E., Bidel L.P.R., Ustin S.L., le Maire G., & Jacquemoud S. (2008), PROSPECT-4 and 5: advances in the leaf optical properties model separating photosynthetic pigments. Remote Sensing of Environment, 112, 3030-3043.

Feret J.B., Gitelson A.A., Noble S.D., & Jacquemoud S. (2017), PROSPECT-D: towards modeling leaf optical properties through a complete lifecycle, Remote Sensing of Environment, 193, 204-215.

Jacquemoud, S. and Baret, F. (1990). PROSPECT: A model of leaf optical properties spectra, Remote Sensing of Environment 34: 75 - 91.

See Also

PROSAIL, optim, Speclib

Examples

## Single spectrum
spectrum <- PROSPECT(N = 1.3, Cab = 30, Car = 10, Cbrown = 0, 
                     Cw = 0.01, Cm = 0.01)
plot(spectrum)

## Example using parameterList
## Test effect of leaf structure and chlorophyll content on 
## spectra
parameter <- data.frame(N = c(rep.int(seq(0.5, 1.5, 0.5), 2)),
                        Cab = c(rep.int(40, 3), rep.int(20, 3)))
spectra <- PROSPECT(parameterList = parameter)

## Print SI table
SI(spectra)

## Plot spectra for range from 400 to 800 nm
spectra <- spectra[,wavelength(spectra) >= 400 & 
                    wavelength(spectra) <= 800]

plot(subset(spectra, Cab == 20), col = "red", ylim = c(0, 0.5))
plot(subset(spectra, Cab == 40), col = "green", new = FALSE)

## Example for inversion
## Create spectrum using PROSAIL
spectrum <- PROSAIL(LAI = 4)

## Invert PROSPECT using Euclidean and SAM distances
param_rmse <- PROSPECTinvert(spectrum, transmittance_spectra = NULL)
param_sam <- PROSPECTinvert(spectrum, transmittance_spectra = NULL, sam = TRUE)

## Model spectrum based on parameters from inversion
pro_rmse <- PROSPECT(N = param_rmse$par[1], Cab = param_rmse$par[2], 
                     Car = param_rmse$par[3], Cbrown = param_rmse$par[4], 
                     Cw = param_rmse$par[5], Cm = param_rmse$par[6], 
                     version = "5B")

pro_sam <- PROSPECT(N = param_sam$par[1], Cab = param_sam$par[2], 
                    Car = param_sam$par[3], Cbrown = param_sam$par[4], 
                    Cw = param_sam$par[5], Cm = param_sam$par[6],  
                    version = "5B")

## Plot result
plot(spectrum, ylim = c(0,0.55))
plot(pro_rmse, new = FALSE, col = "red")
plot(pro_sam, new = FALSE, col = "blue")
legend("topright", legend = c("original spectrum", "inverted with RMSE", 
                              "inverted with SAM"), lty = "solid", 
       col = c("black", "red", "blue"))

hsdar documentation built on March 18, 2022, 6:35 p.m.