canopy {AMAPVox} | R Documentation |
Extract canopy from voxel space.
Description
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/echos
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.
Gaps
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.
Above/below canopy
Function aboveCanopy
returns voxel index above canopy level (excluded).
Function belowCanopy
returns voxel index below canopy level (included).
Canopy Height Model
Function canopyHeight
returns ground distance at canopy level, including
gaps.
Usage
canopy(vxsp, hit.min = 1)
belowCanopy(vxsp, ...)
aboveCanopy(vxsp, ...)
canopyHeight(vxsp, ...)
Arguments
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 |
Value
data.table::data.table
object with voxel index either
below canopy, canopy level or above canopy
See Also
Examples
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)]