¿Comparando dos modelos de elevación digital (DEM) de archivos LAS?

12

Tengo dos archivos LiDAR (.las), uno es original, digamos con X puntos. Y el otro es una copia del primer archivo .las pero con puntos Y, donde Y es menor que X.

Ahora, quiero comparar los Modelos Digitales de Elevación (DEM) de estos dos archivos .las y visualizar cuán diferentes son.

Quiero obtener información como RMSE, desviación estándar, entre otros tipos de comparación.

Agradecería, si alguien pudiera decirme qué softwares, y formas de obtener la información de comparación.

Andre Silva
fuente
1
Quizás podría editar la pregunta para usar M y N (en lugar de X e Y). ¡En la primera lectura pensé que X e Y eran los valores de coordenadas!
Mark Ireland
1
Realmente necesita proporcionar más información para recibir ayuda relevante. Su pregunta actual hace muy poca escena. Qué campo en su archivo las contiene los valores. La forma en que se clasifican los suelos clasificados en el formato las es un campo de clasificación y no valores z (elevación) diferentes. Un proveedor habría tenido que utilizar uno de los campos no asignados para mantener una diferencia en los valores z.
Jeffrey Evans

Respuestas:

8

Cómo comparar dos modelos de elevación digital (DEM) en 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()

ingrese la descripción de la imagen aquí

#-------------------------------------------------------------------------
#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()

ingrese la descripción de la imagen aquí

#-------------------------------------------------------------------------
#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.

¿Ver la respuesta de @ whuber sobre la comparación de dos TIN creados con ArcGIS for Desktop? para una visión teórica sobre este tema.

Andre Silva
fuente
2

Por lo que sé, RMSE solo se establece durante la realización del DEM, y no como un atributo para una mayor referencia, por lo que tendrá que "atraparlo" manualmente durante la realización del DEM (dicho esto, nunca hice un DEM de Lidar, solo de otros datos).

Si desea ver las diferencias entre los DATOS dentro de los dos DEMS, usaría cortar / llenar, que se encuentra en la extensión de Spatial Analyst de ArcGIS (en "Análisis de superficie"). El corte / relleno le muestra en un mapa temático simple los cambios entre los DEM.

jonatr
fuente
3
Cortar / llenar es demasiado crudo porque no cuantifica las diferencias. RMSE es una forma general de comparar dos conjuntos de datos: no solo es útil comparar un DEM con datos de verdad básica, es una forma de cuantificar las diferencias entre dos DEM.
whuber
2

Haría una simple DEM de diferencia. DEM2-DEM1. Esto mostrará todas las áreas que son diferentes y por cuánto.

Hay una imagen de alta resolución en la página principal de mi sitio web. thadwester.com
Echa un vistazo a la colorida imagen de la izquierda.

Thad
fuente