plantAreaDensity.Rd
Computes Plant Area Density either from transmittance or attenuation coefficient estimates. Details of calculation and underlying assumptions can be found online at doi: 10.23708/1AJNMP . PAD is defind as the plant area per unit volume ( PAD plant area / voxel volume = m^2 / m^3).
plantAreaDensity(
vxsp,
vx,
lad = "spherical",
angle.name = "angleMean",
variable.name = c("transmittance", "attenuation_FPL_unbiasedMLE",
"attenuation_PPL_MLE"),
pad.max = 5,
pulse.min = 5,
...
)
a VoxelSpace
object.
a subset of voxel index. A data.table with i, j, k
columns.
Missing parameter means whole voxel space.
the name of the probability density function of the leaf angle
distribution. One of AMAPVox:::leafAngleDistribution
.
the name of the mean angle variable in the VoxelSpace object.
the name of the transmittance/attenuation variables in the VoxelSpace object. Transmittance variables are expected to start with "tra" and attenuation variables with "att".
a float, the maximal PAD value
an integer, the minimal number of pulses in a voxel for computing the PAD. PAD set to NA otherwise.
additional parameters which will be passed to the leaf angle
distribution functions. Details in computeG()
.
A voxel space object with the requested PAD variables.
VINCENT, Gregoire; PIMONT, François; VERLEY, Philippe, 2021, "A note on PAD/LAD estimators implemented in AMAPVox 1.7", doi: 10.23708/1AJNMP , DataSuds, V1
# load a voxel file
vxsp <- readVoxelSpace(system.file("extdata", "tls_sample.vox", package = "AMAPVox"))
# compute PAD
pad <- plantAreaDensity(vxsp, variable.name = "attenuation_PPL_MLE")
# merge pad variables into voxel space
vxsp@data <- merge(vxsp@data, pad, by = c("i", "j", "k"))
grep("^pad", names(vxsp), value = TRUE) # print PAD variables in vxsp
#> [1] "pad_attenuation_PPL_MLE"
# PAD on a subset
pad.i2j3 <- plantAreaDensity(vxsp, vxsp@data[i ==2 & j==3, .(i, j, k)])
pad.i2j3[["ground_distance"]] <- vxsp@data[i ==2 & j==3]$ground_distance
if (FALSE) {
# plot vertical profile
library(ggplot2)
# meld data.table (wide-to-long reshaping)
pad <- data.table::melt(pad.i2j3,
id.vars = "ground_distance",
measure.vars = c("pad_transmittance", "pad_attenuation_FPL_unbiasedMLE",
"pad_attenuation_PPL_MLE"))
ggplot(data = pad, aes(x=value, y=ground_distance, color=variable)) +
geom_path() + geom_point()
}