Utilizzando SRTM Global DEM per il calcolo della pendenza?


17

Ho scaricato SRTM GDEM (~ 90 km di risoluzione).

Sto usando ArcGIS 10.

Ho provato ad usare l'analista spaziale per calcolare la pendenza.

Tuttavia, non posso calcolare la pendenza.

I valori di uscita hanno solo due intervalli 0 e 0,1-90.

Non sono davvero sicuro di quale sia il problema?


Questo dipende da dove stai analizzando nel mondo. Esistono diverse proiezioni per ogni posizione. Dove stai esaminando?
djq,

5
La risoluzione è in realtà ~ 90m, non ~ 90km.
Akheloes,

Solo un commento, se sei in manutenzione per Desktop, puoi accedere ad ArcGIS Online e utilizzare i loro servizi di elevazione (senza necessità di estensione NA). Lo strato di pendenza può essere utilizzato gratuitamente come livello di riferimento. In Australia, abbiamo i dati SRTM 1 secondo (~ 30m res) blogs.esri.com/esri/arcgis/2014/07/11/…
Simon

Risposte:


29

Questo sembra un buon posto per descrivere un modo semplice, veloce e più che ragionevolmente accurato per calcolare le pendenze per un DEM esteso a livello globale .

I principi

Ricordiamo che la pendenza di una superficie in un punto è essenzialmente il rapporto più grande tra "salita" e "corsa" incontrato in tutti i possibili cuscinetti da quel punto. Il problema è che quando una proiezione ha una distorsione di scala, i valori di "run" verranno calcolati in modo errato. Ancora peggio, quando la distorsione della scala varia con il cuscinetto - come nel caso di tutte le sporgenze non conformi - il modo in cui la pendenza varia con il cuscinetto verrà stimato in modo errato, impedendo un'identificazione accurata del rapporto massimo di salita: corsa (e inclinazione del calcolo dell'aspetto).

Possiamo risolvere questo problema utilizzando una proiezione conforme per garantire che la distorsione della scala non vari con il rilevamento e quindi correggendo le stime della pendenza per tenere conto della distorsione della scala (che varia da un punto all'altro della mappa). Il trucco è utilizzare una proiezione conforme globale che consenta un'espressione semplice per la sua distorsione di scala.

La proiezione di Mercatore si adatta al conto: supponendo che la scala sia corretta all'Equatore, la sua distorsione è uguale alla secante della latitudine. Cioè, le distanze sulla mappa sembrano essere moltiplicate per la secante. Questo fa sì che qualsiasi calcolo della pendenza calcoli l'aumento: (sec (f) * corsa) (che è un rapporto), dove f è la latitudine. Per correggere ciò, dobbiamo moltiplicare le pendenze calcolate per sec (f); o, equivalentemente, dividerli per cos (f). Questo ci dà la semplice ricetta:

Calcola la pendenza (come aumento: corsa o percentuale) usando una proiezione di Mercatore, quindi dividi il risultato per il coseno della latitudine.

Flusso di lavoro

Per fare ciò con una griglia indicata in gradi decimali (come un DEM SRTM), procedere come segue:

  1. Crea una griglia di latitudine. (Questa è solo la griglia delle coordinate y.)

  2. Calcola il suo coseno.

  3. Proiettate sia il DEM che il coseno della latitudine usando una proiezione di Mercatore in cui la scala è vera all'equatore.

  4. Se necessario, convertire le unità di elevazione per concordare con le unità delle coordinate proiettate (in genere metri).

  5. Calcola la pendenza del DEM proiettato o come pendenza pura o percentuale ( non come angolo).

  6. Dividi questa pendenza per la griglia del coseno (latitudine) proiettata.

  7. Se lo si desidera, riproiettare la griglia di pendenza su qualsiasi altro sistema di coordinate per ulteriori analisi o mappature.

Gli errori nei calcoli della pendenza saranno fino allo 0,3% (poiché questa procedura utilizza un modello di terra sferica anziché uno ellissoidale, che viene appiattito dello 0,3%). Tale errore è sostanzialmente più piccolo rispetto ad altri errori che rientrano nei calcoli della pendenza e quindi può essere trascurato.


Calcoli completamente globali

La proiezione Mercator non può gestire nessuno dei due poli. Per il lavoro nelle regioni polari, considerare l'utilizzo di una proiezione stereografica polare con scala reale sul polo. La distorsione della scala è uguale a 2 / (1 + sin (f)). Utilizzare questa espressione al posto di sec (f) nel flusso di lavoro. Nello specifico, invece di calcolare una griglia del coseno (latitudine), calcola una griglia i cui valori sono (1 + sin (latitudine)) / 2 ( modifica : usa -latitudine per il Polo Sud, come discusso nei commenti). Quindi procedere esattamente come prima.

Per una soluzione globale completa, prendere in considerazione la suddivisione della griglia terrestre in tre parti - una attorno a ciascun polo e una intorno all'equatore -, eseguendo un calcolo della pendenza separatamente in ciascuna parte utilizzando una proiezione adeguata e mosaicando i risultati. Un posto ragionevole per dividere il globo è lungo i cerchi di latitudine a latitudini di 2 * ArcTan (1/3), che è di circa 37 gradi, perché a queste latitudini i fattori di correzione Mercatore e Stereografica sono uguali tra loro (avendo un valore comune del 5/4) e sarebbe utile ridurre al minimo le dimensioni delle correzioni apportate. Come controllo dei calcoli, le griglie dovrebbero trovarsi in un accordo molto stretto in cui si sovrappongono (piccole quantità di imprecisione in virgola mobile e differenze dovute al ricampionamento delle griglie proiettate dovrebbero essere le uniche fonti di discrepanze).

Riferimenti

John P. Snyder, Proiezioni di mappe - Un manuale di lavoro . USGS Professional Paper 1395, 1987.


7
Mi trovo nella posizione, come faccio spesso, di ringraziare ancora una volta whuber per aver descritto una soluzione e per aver avanzato il ragionamento che la costruisce. Il mio cappello è andato a voi signore.
Matt Wilkie,

Grazie @matt. Non intendevo suggerire in precedenza che la tua risposta (ora eliminata) dovesse essere annullata: in effetti, l'avevo votata perché hai condiviso un link a un riferimento USGS interessante che potrebbe essere utile a molti lettori. (Il mio commento era critico solo su un passaggio secondario in quel documento, non sul documento stesso.)
whuber

ahh. grazie per il chiarimento. Ho ripristinato la risposta, confidando che le persone abbiano abbastanza informazioni di fronte a loro ora per fare una scelta informata :)
matt wilkie

2
Proveniente da un background francese, mi ci è voluto un po 'di tempo per tradurre la terminologia necessaria per comprendere meglio questa grande risposta, quindi ho pensato di abbandonare questo link è un buon aiuto per i neofiti come me: webhelp.esri.com/arcgisdesktop/9.2/…
Akheloes,

È un ottimo approccio e ho già usato la tua soluzione per generare un raster di pendenza globale. Un suggerimento per esperienza pratica: poiché i valori di latitudine a sud dell'equatore sono negativi, è necessario utilizzare il valore di latitudine assoluta nella seguente equazione: (1 + sin (latitudine)) / 2
Saleika

18

Risposta originale

Immagino che le unità orizzontali per il tuo raster siano in gradi o secondi d'arco. Devi riproiettare questo raster su una proiezione spaziale in cui le tue unità orizzontali e verticali sono uguali (ad esempio, se le unità verticali sono in metri, allora suggerisco di usare UTM, che ha unità orizzontali di metri).

Per riproiettare un raster con ArcCatalog / ArcGIS, consultare:

ArcToolbox> Strumenti di gestione dati> Proiezioni e trasformazioni> Raster> Project Raster

Scegli un riferimento spaziale proiettato che copra la tua regione di interesse, ad esempio, prova una zona UTM. Ci sono molte altre opzioni che sono meglio documentate nel manuale . Nota, non puoi creare un set di dati di pendenza per l'intera Terra (se è quello che stai cercando di fare).

Migliore risposta, utilizzando GDAL con una scala

Ora che i dati SRTM sono disponibili a livello globale, posso effettivamente vedere e lavorare con i file. L' gdaldemutilità di GDAL può calcolare la pendenza e la pendenza usando un'opzione di scala per un rapporto tra unità verticali e orizzontali. Il manuale raccomanda 111120 m / ° per qualcosa come piastrelle SRTM. Ad esempio, da una shell OSGeo4W:

$ gdaldem slope -s 111120 -compute_edges N44E007.hgt N44E007_slope.tif

L' -compute_edgesopzione rende i bordi più fluidi, se vuoi unire alcune tessere insieme. Oppure calcola le tessere per una grande regione. Lo svantaggio della tecnica della "scala" è che le distanze nelle direzioni EW e NS non sono uguali, eccetto all'equatore, quindi per le piastrelle più vicine ai poli, potrebbero esserci delle strane travisazioni della pendenza.


Vale la pena sottolineare il tuo commento finale: questa è una soluzione scadente per punti non vicini all'equatore. Questa non è una piccola questione di "strane dichiarazioni false": i risultati saranno gravemente sbagliati, specialmente in luoghi più vicini ai poli rispetto all'equatore. La documentazione per gli gdaldemstati "Per posizioni non vicine all'equatore, sarebbe meglio riproiettare la griglia usando gdalwarp prima di usare gdaldem." Sfortunatamente ciò non funzionerà per i set di dati che coprono il globo, a meno che non li rompa in piccoli pezzi (74 zone UTM, forse?), Li proietti, calcoli le pendenze e riordini i risultati.
whuber

7

In poche parole, non ce n'è uno. Per definizione, un sistema di coordinate basato sui gradi non è proiettato. Nel linguaggio comune diciamo che WGS84 è una proiezione "geografica", ma non è vero, solo per comodità.

Penso di ricordare di aver letto di un software o di un processo per lavorare in modo accurato con i modelli di elevazione nello spazio geografico non proiettato, ma non riesco a individuarlo in questo momento. In ogni caso sarebbe stato un esperimento o lo avresti costruito tu stesso dal codice di un processo.


Ahhh, lo ha trovato: Sviluppo di un set di dati globale di pendenza per la stima dell'evento di frana derivante da terremoti (USGS). Pagina 4 descrive bene il problema

... la lunghezza di un grado varia a seconda della sua posizione latitudinale. All'equatore, un blocco di un grado per un grado è ragionevolmente quadrato quando convertito in unità di metri (111.321 metri nella direzione x di 110.567 metri nella direzione y ... ma più vicino ai poli le distanze nella la direzione x diventa più piccola in funzione del coseno della latitudine, a causa della convergenza dei meridiani. La maggior parte dei pacchetti GIS, incluso ArcGIS, funzionano solo su pixel quadrati e quindi utilizzano un fattore per regolare le dimensioni x, y o z su un'unità comune non è possibile.

Il documento continua descrivendo i calcoli specifici e gli strumenti software ( , , ) che hanno usato per risolvere questo problema fondamentale. Il documento non include il codice, ma se richiesto correttamente potrebbero condividere. In ogni caso, però, probabilmente mi limiterei a chiedere dove siano i risultati, essendo l'USGS probabilmente è già online da qualche parte. :)


1
Il suggerimento di quel documento secondo cui una proiezione equidistante azimutale potrebbe essere usata per calcolare le pendenze è errato e sbagliato. Fornirà effettivamente pendenze corrette vicino all'origine della proiezione, ma anche queste diventeranno progressivamente meno accurate all'aumentare della distanza dall'origine.
whuber

grazie per averlo indicato. Lettori, assicuratevi di leggere anche gis.stackexchange.com/a/40464/108 , per bilancia
matt wilkie

2

I parametri DEM globali (in cui la maggior parte delle formule si basano sul presupposto dello spazio euclideo) possono essere derivati ​​in modo efficiente utilizzando il sistema EQUI7 GRID (Bauer-Marschallinger et al. 2014). EQUI7 GRID divide il mondo in 7 aree terrestri, tutte proiettate in un sistema di proiezione equidistante con una minima perdita di precisione. Vedi un esempio di DEM globale con una risoluzione di 250 m nella GRIGLIA EQUI7. Qui puoi trovare alcuni codici di esempio che mostrano come derivare i parametri DEM globali usando SAGA GIS. Una volta completata la derivazione dei parametri DEM nel sistema EQUI7 GRID, è possibile trasformare indietro tutte le mappe in longlatcoordinate WGS84 e quindi creare un mosaico globale usando GDAL.


Potresti spiegare come questo risponde alla domanda? Se stai proponendo di utilizzare proiezioni equidistanti per i calcoli della pendenza, tieni presente che è una soluzione scadente a causa delle grandi distorsioni metriche relative che si verificano quando si esce dal centro della proiezione. Sebbene concentrare sette di tali proiezioni sulle masse terrestri aiuti ad alleviare quel problema, non è ancora la scelta migliore.
whuber

L'articolo di Bauer-Marschallinger et al. (2014) spiega perché queste proiezioni sono state scelte per rappresentare le masse terrestri globali (si presume che abbiano una perdita minima di precisione). Sono d'accordo che qualsiasi proiezione 2D alla fine porterà a deformazioni, ma per quanto ne so, EQUI7 è un buon compromesso tra perdita di precisione e comodità (algebra 2D). Detto questo, gli esagoni vengono nuovamente utilizzati per rappresentare le superfici terrestri globali (sebbene l'analisi DEM con esagoni 3D sia ancora complessa).
Tom Hengl,

Grazie per il riferimento. Il suo abstract suggerisce che risolve un problema alquanto diverso, quello di "ridurre al minimo il sovracampionamento dei dati locali che appare durante la proiezione di immagini satellitari generiche su una griglia raster regolare". Ciò non implica che funzionerà bene per altri scopi, come la stima delle pendenze.
whuber

Naturalmente EQUI7 non risolve assolutamente il problema della stima accurata delle pendenze locali, ma è probabilmente una soluzione più elegante rispetto all'utilizzo della proiezione Mercator suggerita sopra. In definitiva, se si desidera stimare le pendenze con una precisione perfetta, le uniche opzioni sono probabilmente (1) l'uso di proiezioni locali (equidistanti) per piastrelle di dimensioni minori (ad es. 100 per 100 km) con sovrapposizione del 10-20%, come menzionato anche in Verdin et al. (2007) o (2) per utilizzare la griglia esagonale ( pacchetto dggridR ).
Tom Hengl,

Il problema non è la precisione: sta nel produrre pendenze e aspetti sistematicamente distorti. Poiché le proiezioni equidistanti distorcono in modo differenziato le direzioni ortogonali alla geodetica originaria dei loro centri, gli aspetti saranno sempre sbagliati (sebbene ragionevolmente accurati vicino ai centri in cui tutta la distorsione è bassa) e gli errori nelle pendenze cresceranno rapidamente con la distanza. L'uso di molte proiezioni locali ovviamente funzionerà, ma è esattamente l'opposto dell'eleganza che apprezzi.
whuber

-2

La pendenza è salita / discesa. Calcola l'aumento e la corsa del calcolo e hai la tua risposta. È semplice calcolare la distanza tra le coordinate geografiche. Ciò introdurrà meno errori di ricampionamento rispetto alla conversione in UTM, ecc.

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.