Skip to content

Coupled Chain Radiative Transfer Models

Notifications You must be signed in to change notification settings

michaely6006/ccrtm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ccrtm: Coupled Chain Radiative Transfer Models (0.2.0)

cran version rstudio mirror downloads rstudio mirror downloads R-CMD-check

A set of radiative transfer models to quantitatively describe the absorption, reflectance and transmission of solar energy in vegatation, and model remotely sensed spectral signatures of vegetation at distinct spatial scales. The main principle behind ccrtm is that many radiative transfer models can form a coupled chain, basically models that feed into each other in a linked chain (from leaf, to canopy, to stand, to atmosphere). Included models are prospect family, and 2 stream and 4 stream models for canopies, with planned inclusion atmospheric models.

The package will slowly be extended as more models are added, and tested, and optimized. Please send requests and bug reports.

Currently the following models are implemented:

  • PROSPECT5
  • PROSPECT5B
  • PROSPECTD
  • 4SAIL
  • 4SAIL2 (leaf angles fixed for each layer; sensu Verhoef and Bach 2007)
  • 4SAIL2B (leaf angles differ for each layer; sensu Zhang et al 2005)
  • FLIM
  • PROSAIL (5/5B/D)
  • PROSAIL2(b) (5/5B/D)
  • INFORM (5/5B/D) - only lower level implementation as of yet

Implementation planned in the near future:

  • SMAC
  • PROCOSINE
  • LIBERTY
  • SOILSPECT

Quicklinks

Quick start and tutorials

A "10 minute" quickstart guide is will be implemented in due time.

Installation

The pacakge is on CRAN. Newer developmental versions will first be available from github and can be downloaded as zip or tar ball. To install decompress these and run R CMD INSTALL on the contents of the archives, or use the devtools package to install the current development version from R.

## devtools is required
require(devtools)
install_github("MarcoDVisser/ccrtm")

Dependencies

ccrtm depends on the pracma and expint packages (for now).

Examples

The basic functionality of ccrtm, and the coupled chain nature of the forward modelling components is shown below. Backward modelling will be included in later stages.

require(ccrtm)

## setup graphics for plots 
par(mfrow=c(3,2))

## get reflectance for a leaf 
ref <- fRTM(rho~prospect5)
plot(ref,main="Prospect 5")
     
## get reflectance and transmission for a leaf 
reftrans <- fRTM(rho+tau~prospect5)
plot(reftrans,main="Prospect 5")
     
## get reflectance for a single layered canopy 
ref <- fRTM(rho~prospect5+foursail)
plot(ref,main="Prospect 5 + 4SAIL")

## get reflectance for a 2 layered canopy with two leaf types 
ref <- fRTM(rho~prospectd+prospect5+foursail2)
plot(ref,main="Prospect D + Prospect 5  + 4SAIL2")

## edit the parameters: sparse vegatation LAI 
parlist<- list(prospect5=NULL,prospectd=NULL,foursail2=c(LAI=0.05))

## update reflectance
ref <- fRTM(rho~prospect5+prospectd+foursail2,parlist)
plot(ref,main="LAI=0.05")

## change leaf area index to dense vegetation
parlist$foursail2["LAI"]<-8.5

## update reflectance
ref <- fRTM(rho~prospect5+prospectd+foursail2,parlist)
plot(ref,main="LAI=8.5")

Examples of output

The package provdes some standard plots, the output from the above example code for instance is:

Printing any ccrtm object will return basic information:

ref <- fRTM(rho~prospect5+prospectd+foursail2)
ref
RTM predicted spectra:  reflectance 
Generating model(s):  prospect5, prospectd, foursail2 
Wavelength range  400-2500 (nm) 

to do list

  • Add liberty, and procosine
  • Add 2 stream model
  • Add inform model to fRTM
  • Add GEOSAIL model

Thanks

Special thanks to Matteo Detto for all the suggestions while I was developing this package. Special thanks to (in no particular order) Zavud Baghirov and Martina Schmirl. Their comments helped improve documentation and remove bugs.

Version history

0.01 Initial package with everything in R 0.1 Basic tests complete, basic optimization, and refactoring in c++. 0.1.1 Documentation update, more code refactored in c++ 0.1.1 Documentation update, more code refactored in c++ 0.1.4 refactored code now running via Rcpp, tested against fortran 0.1.5 Documentation updated, code reviewed and CRAN tests passed. 0.1.6 CRAN new package review issues fixed. 0.1.7 fixed bugs identified by Zavud, and improved documentation for leaf angle model 0.2.0 Start of major overhual of fRTM using model aliases, and inclusion of lower-level implementation of INFORM

About

Coupled Chain Radiative Transfer Models

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • R 85.1%
  • C++ 14.9%