Comparando dois modelos digitais de elevação (DEMs) a partir de arquivos LAS?


12

Eu tenho dois arquivos LiDAR (.las), um é original, digamos, com pontos X. E a outra é a cópia do primeiro arquivo .las, mas com pontos Y, onde Y é menor que X.

Agora, quero comparar os DEMs (Digital Elevation Models) desses dois arquivos .las e visualizar como eles são diferentes.

Quero obter informações como RMSE, desvio padrão, entre outros tipos de comparação.

Eu apreciaria, se alguém pudesse me dizer quais softwares e maneiras de obter as informações de comparação.


1
Talvez você possa editar a pergunta para usar M e N (em vez de X e Y). Na primeira leitura, pensei que X e Y eram os valores das coordenadas!
Mark Ireland

1
Você realmente precisa fornecer mais informações para receber ajuda relevante. Sua pergunta atual faz muito pouca cena. Qual campo no seu arquivo las está mantendo os valores. A maneira como o solo classificado é atribuído no formato las é um campo de classificação e não diferentes valores de z (elevação). Um fornecedor teria que usar um dos campos não atribuídos para manter uma diferença nos valores z.
Jeffrey Evans

Respostas:


8

Como comparar dois modelos digitais de elevação (DEMs) em R.

#-------------------------------------------------------------------------
#Creating a reproducible example

library(raster)

  #simulating raster_1

  f = system.file("external/test.grd", package="raster")
  DEM_1 = raster(f)

  #simulating raster_2

  DEM_2 = DEM_1
  # replacing values from raster_1 to create a new raster sample (raster_2)
    DEM_2[(DEM_2>500 & DEM_2<900)] = 550
    DEM_2[(DEM_2>200 & DEM_2<300)] = 500

#-------------------------------------------------------------------------
# Comparison 1 (DEM_3 resulted from subtracting DEM_2 from DEM_1)

  DEM_3 = DEM_1 - DEM_2

    par(mfrow=c(1,3))

    plot(DEM_1, main = "DEM_1")
    plot(DEM_2, main = "DEM_2")
    plot(DEM_3, main = "DEM_3 = DEM_1 - DEM_2")

      dev.off()

insira a descrição da imagem aqui

#-------------------------------------------------------------------------
#Comparison 2 (histogram)

  hist(DEM_1, prob=T, main="DEM_1", xlab="")
  hist(DEM_2, prob=T, main="DEM_2", xlab="")
  hist(DEM_3, prob=T, main="DEM_3 = DEM_1 - DEM_2", xlab="")

    par(mfrow=c(1,1))

  standard_deviation = sd(c(as.matrix(DEM_3)),na.rm=T)

    dev.off()

insira a descrição da imagem aqui

#-------------------------------------------------------------------------
#comparison 3 (RMSE)

  library(hydroGOF)

  DEM_1_matrix = c(as.matrix(DEM_1))
  DEM_2_matrix = c(as.matrix(DEM_2))

  rmse = rmse(DEM_1_matrix,DEM_2_matrix)
  rmse
  [1] 135.3675 # this is the root mean squared error (RMSE) result.

Veja a resposta da @ whuber em Comparando dois TINs criados usando o ArcGIS for Desktop? para uma visão teórica sobre esse problema.



2

Até onde eu sei, o RMSE é declarado apenas durante a criação do DEM, e não como um atributo para mais referências, portanto você precisa "capturá-lo" manualmente durante a criação do DEM (dito isso, nunca fiz um DEM de Lidar, apenas de outros dados).

Se você quiser ver as diferenças entre os DADOS dentro dos dois DEMS, eu usaria cut / fill que está na extensão do Spatial Analyst do ArcGIS (em "Surface Analysis"). O recorte / preenchimento mostra em um mapa temático simples as alterações entre os DEMs.


3
O corte / preenchimento é muito bruto porque não quantifica as diferenças. O RMSE é uma maneira geral de comparar dois conjuntos de dados: além de ser útil comparar um DEM com dados de base, é uma maneira de quantificar as diferenças entre dois DEMs.
whuber

2

Eu faria um simples DEM de diferença. DEM2-DEM1. Isso mostrará todas as áreas que são diferentes e por quanto.

Há uma imagem com uma alta resolução de diferença na página inicial do meu site. thadwester.com
Veja a imagem colorida à esquerda.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.