Estoy estudiando la densidad de follaje de parcelas forestales por debajo de 2 metros de altura utilizando escaneo láser terrestre móvil. Quiero filtrar los troncos de los árboles de las nubes de puntos para que las estimaciones de densidad de puntos no los incluyan. He estado utilizando los paquetes lidR y TreeLS para procesar mis nubes de puntos. Hasta ahora he normalizado las nubes y clasificado los troncos de árboles utilizando el código de ejemplo proporcionado en la documentación del paquete TreeLS:
tls1 = readTLS("tls1.las") %>%
tlsNormalize %>%
tlsSample
map = treeMap(tls1, map.hough())
tls2 = treePoints(tls1, map, trp.crop(circle=FALSE))
tls3 = stemPoints(tls2, stm.hough(pixel_size = 0.03))
Esto identifica exitosamente los troncos de árboles.
Para filtrar los troncos, he intentado usar la función filter_poi():
tls4 <- filter_poi(tls3, Stem = "FALSE")
Hay una columna en el conjunto de datos de la nube de puntos titulada "Stem" con valores TRUE/FALSE, así que pensé que esto funcionaría, pero obtengo este error:
Error in lasfilter_(las, lazyeval::dots_capture(...)) :
`conditions` must be logical.