| canopy | R Documentation |
Extract canopy from VoxelSpace object.
The canopy layer is the set of highest voxels with number of hits greater
than a user-defined threshold.
Minimum number of hits is set by default to one, meaning that a single echo
in a voxel is enough to consider that there is some vegetation. Increasing
this threshold will tend to lower the canopy level or introduce some gaps (
i-j-cells with no vegetation). This hit.min filter is stronger than
butterfly() since is does not discriminate isolated voxels.
A reasonable value for hit.min cannot be suggested ad-hoc since it
strongly depends on sampling intensity. Removing butterflies prior to
extracting canopy is advisable.
For a VoxelSpace with fully defined ground level (see ground()),
missing canopy cells can be interpreted as gaps. Conversely if both ground
and canopy are missing for a i-j-cell, then it is inconclusive.
Function aboveCanopy returns voxel index above canopy level (excluded).
Function belowCanopy returns voxel index below canopy level (included).
Function canopyHeight returns ground distance at canopy level, including
gaps.
canopy(vxsp, hit.min = 1)
belowCanopy(vxsp, ...)
aboveCanopy(vxsp, ...)
canopyHeight(vxsp, ...)
vxsp |
a |
hit.min |
a positive integer, minimum number of hit/echo in a voxel to consider it contains vegetation. |
... |
additional parameters which will be passed to |
data.table::data.table object with voxel index either
below canopy, canopy level or above canopy
butterfly(), ground()
vxsp <- readVoxelSpace(system.file("extdata", "tls_sample.vox", package = "AMAPVox"))
cnp <- canopy(vxsp)
acnp <- aboveCanopy(vxsp)
bcnp <- belowCanopy(vxsp)
# canopy layer included in below canopy subset
all(bcnp[cnp, on=list(i, j, k)] == cnp) # TRUE expected
vxsp@data[cnp, list(i, j, ground_distance), on=list(i, j, k)]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.