[[ lidar:projetos |{{ :lidar:projetos:retornar.png?nolink&25x25 }}]] # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Processamento de dados LiDAR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # Autor: Luiz Carlos Estraviz Rodriguez # Departamento de Ciências Florestais # ESALQ/USP - 05/Jun/2022 # # Linguagem de programação: R # pacote lidR (c) Jean Romain Roussel # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ---- # Define diretório e nome da nuvem de pontos LiDAR ~~~~~~~~~~~~~~~~~~~~ lidarDir <- "C:/LiDAR/" lidarNuv <- "serrapaisus.laz" # Define nome completo do aquivo com a nuvem de pontos LiDAR ~~~~~~~~~~ nuvemArq <- paste0(lidarDir, lidarNuv) # Instala (se ainda não estiver instalado) e carrega o pacote lidR ~~~~ if(!require(lidR)){ install.packages('lidR') } library(lidR) # Leitura parcial dos dados LiDAR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ las <- readLAS(nuvemArq, # lê apenas XYZ, intensidade e classificação select = "xyzic") # Confere a 'sanidade" da nuvem original de dados LiDAR ~~~~~~~~~~~~~~~ las_check(las) # Características originais da nuvem de dados LiDAR ~~~~~~~~~~~~~~~~~~~ summary(las) # Colunas de dados extraídas da nuvem original ~~~~~~~~~~~~~~~~~~~~~~~~ print(las@data) # head(las@data) # Estatísticas básicas dos dados extraídos da nuvem original ~~~~~~~~~~ summary(las@data) # Extrai do centro da nuvem uma parcela circular com raio de 25m ~~~~~~ xcentral <- round(mean(las@data$X), digits =0) ycentral <- round(mean(las@data$Y), digits =0) raio <- 25 parcela <- clip_circle(las, xcentral, ycentral, raio) rm(las) # Plot da parcela colorida por altura ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ plot(parcela, color = "Z", bg = "black") # Plot da parcela colorida por intensidade ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ plot(parcela, size = 3, color = "Intensity", bg = "white") # Plot da parcela colorida por classificação ~~~~~~~~~~~~~~~~~~~~~~~~~~ # os pontos azuis representam pontos de solo ~~~~~~~~~~~~~~~~~~~~~~~~~~ plot(parcela, size = 3, color = "Classification", bg = "gray", axis = TRUE) # Já que a nuvem está classificada com pontos de solo ~~~~~~~~~~~~~~~~~ # é possível criar uma nova nuvem "normalizada" ~~~~~~~~~~~~~~~~~ parcnormal <- normalize_height(parcela, knnidw()) # Vamos conferir ... plotanto a nuvem normalizad ~~~~~~~~~~~~~~~~~~~~~~ plot(parcnormal, size = 3, color = "Classification", bg = "gray", axis = TRUE) ---- Para mais detalhes sobre o uso do pacote //lidR// no processamento de dados LiDAR, consulte as seguintes referências: * [[https://r-lidar.github.io/lidRbook/ | The lidR package (eBook)]] * [[https://hal.inrae.fr/hal-02972284/file/roussel_2020.pdf | Roussel et al.(2020) lidR: An R package for analysis of ALS data]] * [[https://www.rdocumentation.org/packages/lidR/versions/4.0.1 | RDocumentation (lidR)]] * [[https://cran.rstudio.com/web/packages/lidR/vignettes/ | Vignettes]]