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.