Monday, 14 June 2010

La pendenza topografica lungo direzioni variabili



Nota: a Novembre 2011 ho pubblicato un post su un plugin Quantum GIS per il calcolo della pendenza, direzionale e massima: http://gisoftw.blogspot.com/2011/11/un-plugin-quantum-gis-per-il-calcolo.html


La pendenza topografica che viene calcolata classicamente nei GIS è la stima della inclinazione della superficie topografica locale, approssimata da un piano. Rappresenta cioè la massima inclinazione di questo piano, corrispondente al gradiente massimo di una superficie. Questo calcolo è permesso dai vari GIS che trattano dati DEM, come Saga, Grass, QuantumGis, ArcView 3 o ArcGis con le rispettive estensioni Spatial Analyst, etc.

Per applicazioni specifiche, possiamo avere bisogno di calcolare la pendenza direzionale, cioè il gradiente della superficie topografica lungo una particolare direzione, compresa tra 0° e 360° rispetto al top della mappa. A mia conoscenza, l'unico software GIS che consente questa operazione è Mirone. Grass consente di calcolare le derivate direzionali lungo le sole direzioni x e y, cioè a 90° e a 0° rispetto al top.

In rari casi, ci può essere necessario calcolare le pendenze di una superficie, topografica o meno, lungo delle direzioni che variano nello spazio. Per questi casi, non sono a conoscenza di alcun software GIS che implementi questa funzionalità. Nel caso specifico, questo tipo di calcolo è necessario per una tesi di dottorato condotta sulle relazioni delle megadune antartiche con i fattori ambientali che le regolano. Interessa calcolare la pendenza delle superficie topografica lungo le direzioni dei venti che variano nello spazio su distanze anche relativamente brevi (ovviamente). Risultati preliminari di questa ricerca sono stati presentati recentemente al congresso IPY di Oslo [1].


Un campo di megadune antartiche, visibile dal mosaico Ramp Radarsat.

Per implementare questa funzionalità, assieme a Maja Radivojevic, la dottoranda chiamata in causa, abbiamo scelto di usare Python. Non nell'ambiente ArcGis o QuantumGis, ma svincolati da ogni particolare software, commerciale o open source che sia.

Il primo quesito per creare questo tipo di algoritmo è: quale metodo di calcolo utilizzare? Ne esistono vari, di complessità variabile. Essendo una prima versione del programma, e essendo le superfici glaciali antartiche in generale piatte, abbiamo scelto una metodologia semplice, che è usata per esempio anche in Surfer e che trovate dettagliata in http://www.malg.eu/pendenzadirezionale.php

Un secondo quesito, quando si analizzano superfici raster, come i DEM, è: quale risoluzione utilizzare? Lo slope, come l'aspect e altri parametri topografici, dipendono dalla risoluzione spaziale usata nei calcoli. Cambiando risoluzione, varia anche il risultato perché questo è relativo alla scala di analisi. La pendenza di una catena montuosa calcolata con una risoluzione di 100 m sarà molto più variabile che se calcolata con una risoluzione di 10 km. Per evitare di dovere ricampionare il DEM di base prima di ogni analisi a differente scala spaziale, è stato considerato un fattore di “smoothing”, che esprime il numero di celle a sinistra e a destra, sopra e sotto, la cella per la quale si calcola lo slope direzionale. Un alto fattore di smoothing considera celle più distanti da quella centrale per i calcoli e quindi il risultato esprime una scala spaziale più ampia rispetto a quella espressa da bassi valori di smoothing.



Esempio di calcolo della pendenza usando uno smoothing factor di 2: vengono utilizzati i valori delle celle a due pixel di distanza in orizzontale e in verticlae dalla cella per la quale si effettua il calcolo.


Chiariti questi due aspetti, la creazione dello script è abbastanza semplice, grazie all'elevato livello di astrazione del linguaggio Python.
Lo script python può essere scaricato e utilizzato in locale da Python.

I dati di partenza richiesti sono:
a) grid delle elevazioni (DEM) in formato ESRI ascii
b) grid delle orientazioni in formato ESRI ascii
c) valore dello smoothing factor

 Il risultato consiste in un grid delle pendenze direzionali espressi in gradi (da 90° a -90°, positivo verso l'alto).


Quanto segue è un esempio di analisi e confronto con i risultati “classici”, su una porzione della superficie glaciale dell'Antartide orientale. Si può notare che la pendenza direzionale secondo direzioni parallele alle orientazioni locali dei venti produce dei risultati alle medie ed alte risoluzioni che differiscono da quelle del metodo classico della massima pendenza.


DEM della zona antartica analizzata.




Orientazioni dei venti utilizzata per il calcolo delle pendenze direzionali mobili.





Mappa delle pendenze direzionali calcolate secondo le orientazioni espresse nella mappa dei venti. Valori positivi indicano pendenze in salita. I valori sono simboleggiati per classi di deviazioni standard dal valore medio.




Risultato del calcolo della pendenza direzionale variabile (valori assoluti) comparato con quello classico ottenuto dai software GIS (massima pendenza). Si nota che mentre le strutture principali non vengono modificate , le strutture di media risoluzione e di dettaglio differiscono. 





Riferimenti bibliografici

[1] Maja Radivojevic, Massimo Frezzotti, Mauro Alberti, 2010. Morphology and Constraining Factors of Antarctic Megadunes. IPY Oslo Conference.





No comments: