Confrontando due DEM (Digital Elevation Model) da file LAS?


12

Ho due file LiDAR (.las), uno è originale diciamo con X punti. E l'altro è la copia del primo file .las ma con punti Y, dove Y è inferiore a X.

Ora, voglio confrontare i modelli di elevazione digitale (DEM) di questi due file .las e visualizzare quanto sono diversi.

Voglio ottenere informazioni come RMSE, deviazione standard, tra gli altri tipi di confronto.

Gradirei se qualcuno potesse dirmi quali software e come ottenere le informazioni di confronto.


1
Forse potresti modificare la domanda per usare M e N (invece di X e Y). In prima lettura ho pensato che X e Y fossero i valori delle coordinate!
Segna l'Irlanda il

1
È davvero necessario fornire ulteriori informazioni per ricevere assistenza pertinente. La tua domanda attuale fa pochissima scena. Quale campo nel tuo file las contiene i valori. Le modalità di assegnazione del terreno classificate nel formato las sono un campo di classificazione e non valori z (elevazione) diversi. Un fornitore avrebbe dovuto utilizzare i campi non assegnati per mantenere una differenza nei valori z.
Jeffrey Evans,

Risposte:


8

Come confrontare due modelli digitali di elevazione (DEM) in 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()

inserisci qui la descrizione dell'immagine

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

inserisci qui la descrizione dell'immagine

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

Vedi la risposta di @ whuber sul confronto tra due TIN creati usando ArcGIS per desktop? per una visione teorica di questo problema.



2

Per quanto ne so, RMSE viene dichiarato solo durante la creazione del DEM, e non come attributo per ulteriore riferimento, quindi dovresti "catturarlo" manualmente durante la creazione del DEM (detto ciò, non ho mai realizzato un DEM da Lidar, solo da altri dati).

Se volete vedere le differenze tra i DATI all'interno dei due DEMS, userò cut / fill che si trova nell'estensione Analista spaziale di ArcGIS (sotto "Analisi di superficie"). Il taglio / riempimento mostra in una semplice mappa tematica le modifiche tra i DEM.


3
Taglia / riempi è troppo grezzo perché non quantifica le differenze. RMSE è un modo generale per confrontare due set di dati: non solo è utile confrontare un DEM con i dati di verità, ma è anche un modo per quantificare le differenze tra due DEM.
whuber

2

Vorrei fare un semplice DEM di differenza. DEM2-DEM1. Questo mostrerà tutte le aree che sono diverse e di quanto.

C'è un'immagine ad alta risoluzione di differenza sulla homepage del mio sito web. thadwester.com
Dai un'occhiata alla colorata immagine a sinistra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.