Ferramentas do usuário

Ferramentas do site


lidar:projetos:rcode_serradomar

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 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:

lidar/projetos/rcode_serradomar.txt · Última modificação: 2024/03/23 20:17 por 127.0.0.1