# load LAS file
LASfile <- system.file("extdata", "las_chablais3.laz", package="lidaRtRee")
las_chablais3 <- lidR::readLAS(LASfile)
# set number of threads
lidR::set_lidr_threads(2)
# extract two point clouds from LAS object
llas <- lidR::clip_circle(las_chablais3,
c(974350, 974390),
c(6581680, 6581680), 10)
# normalize point clouds
llas <- lapply(llas, function(x) {
lidR::normalize_height(x, lidR::tin())
})
# compute metrics with user-defined function
# number of detected trees between 20 and 30 meters and their mean height
# restricted to disks of radius 8 m.
user_func <- function(x) {
dummy <- x$h[which(x$h > 20 & x$h < 30)]
data.frame(Tree.between.20.30 = length(dummy), Tree.meanH = mean(dummy))
}
XY <- data.frame(X = c(974350, 974390),
Y = c(6581680, 6581680))
clouds_tree_metrics(llas,
XY,
8,
res = 0.5,
func = user_func
)
#
# same result using a user-input circular roi
roi <- sf::st_as_sf(XY,
coords = c("X", "Y"),
crs = sf::st_crs(2154)
)
roi <- sf::st_buffer(roi, 8)
clouds_tree_metrics(llas,
XY,
8,
roi = roi,
res = 0.5,
func = user_func
)
Run the code above in your browser using DataLab