qProf: un nuovo plugin QuantumGIS per la creazione di profili topografici


Questo è il primo rilascio di QProf, un plugin per la creazione di  profili di elevazione e di pendenza 2D e 3D, a partire da uno o più DEM. E' possibile visualizzare più profili contemporaneamente. I risultati possono essere salvati come dati (shapefiles puntuali e lineari, csv) o immagini. L'idea iniziale nasce da Marco Zanieri e l'implementazione è di Mauro Alberti. Il plugin è installabile direttamente come nuovo plugin in Quantum GIS.

Esempio di profili prodotti da qProf da DEM SRTM2 ed Aster di una zona della Valnerina (Umbria): in alto i profili topografici,  in basso il corrispondente profilo delle pendenze lungo la traccia: valori positivi indicano salite, negativi discese.

Tool analoghi in Quantum GIS

In Quantum GIS sono disponibili almeno altri due moduli che consentono l'elaborazione di profili topografici: Profile Tool di Boris Jurgiel, Etienne Tourigny e Patrice Verchere, e Profile from Line di Ricardo Garcia Silva. Il primo utilizza come traccia di input un percorso "dinamico", definito dall'utente al momento dell'analisi, su uno o più DEM. L'output grafico e tabellare riguarda le elevazioni ma non le pendenze lungo il profilo. Il secondo determina le elevazioni, a spaziatura costante, a partire da un livello lineare e produce come output un livello puntuale con le elevazioni determinate a partire dallo specifico DEM scelto dall'utente. Non viene creato un output grafico. Entrambi i plugin estraggono le elevazioni dai DEM per nearest neighbor.


Descrizione del plugin

Schermata del plugin.


1 - Path shapefile
La traccia del profilo è costituita da una linea singola e continua  (anche se con andamento variabile), contenuta in uno shapefile.

2 -Use DEMs
Come fonte delle elevazioni possono essere scelti i raster DEM che sono già caricati nel progetto QGIS corrente. Ovviamente in ogni raster ci deve essere una sola banda di dati; in caso contrario il modulo fornirà un messaggio di errore. Raster di notevoli dimensioni possono generare errori di memoria del modulo (MemoryError).

3 - Max sampling distance
L'utente definisce la distanza massima di campionamento lungo la traccia del profilo. Questo plugin mantiene tutti i punti di campionamento definiti nel profilo, sia l'inizio, sia quelli interni, sia quello terminale. La spaziatura risultante può essere quindi più fitta, oltre che irregolare,  della max sampling distance.
Il passo di campionamento determinerà la risoluzione spaziale del profilo, incidendo anche, ovviamente sulla distanza cumulativa 3D. Quest'ultima sarà tanto maggiore quanto minore la distanza (fino al limite di risoluzione del DEM), dato che la topografia ha carattere frattale (e.g. Turcotte, 1997).
Si suggerisce di impostare un valore circa analogo a quello della risoluzione dei DEM utilizzati: per esempio per un DEM ASTER si può inserire un valore di 30 m, per un DEM SRTM2 a 90 m un valore di 90 o superiore.

4 - Calculate profile
I dati DEM vengono letti da Python tramite il binding a GDAL. I valori di elevazione per i punti di campionamento sono interpolati per bilinear interpolation a partire dai centri delle quattro celle che racchiudono il punto da interpolare.
Quando viene modificato un parametro di analisi, come p.e. i DEM usati per il profilo, occorre ricalcolare il profilo, altrimenti verrà visualizzato il profilo coi parametri precedentemente calcolati.

5 - Plot
La visualizzazione dei profili si basa sul modulo Matplotlib, che fornisce gli usuali strumenti di zoom, pan, e salvataggio in formato grafico della visualizzazione (SVG, PDF, jpg, etc.).
Lo zoom non funziona in maniera sincronizzata fra i due grafici che rappresentano le elevazioni e le pendenze. Questo aspetto potrebbe essere risolto nelle prossime versioni.

6 - Save full results as
Tutti i dati vengono salvati come informazioni puntuali in formato csv oppure come uno shapefile 2D. Il valore di inclinazione attributo ad ogni punto di campionamento si riferisce al segmento che lo precede immediatamente. Da notare che se il profilo scelta ha il vertice iniziale al di fuori di un DEM utilizzato, la distanza cumulativa 3D non sarà calcolata per nessun punto.

7 - Export 3D line from DEM
E' possibile salvare le informazioni come dati lineari 3D per uno specifico raster. Il formato di output è sempre shapefile.


Possibili modifiche future
Alcuni spunti per possibili futuri miglioramenti del plugin come tipologie di analisi sono elencati nei link sottostanti.
Esempi di integrazione di Grass con R, per il calcolo della dimensione frattale lungo profili topografici, sono riportati in Raster profile along arbitrary line segments del California Soil Resource Lab. Esempi molto interessanti (ed avanzati) di integrazione tra profili topografici ed informazioni geologiche sono presentati in Grass Gis et R: superposition des couleurs d'un raster quelconque sur un profil topographique élaboré à partir d'un MNT di di Martin Laloux, come pure Python: utilisation des couches vectorielles et matricielles dans une perspective géologique, sans logiciel SIG, sempre di Martin Laloux.
E' prevista anche la possibilità di personalizzare la vestizione del profilo, con scelta del rapporto di scala e delle caratteristiche grafiche.


Bibliografia

Turcotte, D. L., 1997. Fractals and Chaos in Geology and Geophysics. Cambridge University Press, 398 pagine.




Comments

Pedro said…
Hi Mauro!

Another excellent plugin! Thank you very much!

There is a small problem in the version definition. Although the installed version is 0.1, in the "QGIS Python Plugin Installer" dialog box, the plugin always appears as "upgradeable" from 0.01 -> 0.1.

If I remember correctly, the Directional Slope plugin was also like this for some time, and is now corrected!

Thank you once again!

Best regards,
Pedro Venâncio
Mauro Alberti said…
Hi Pedro, thanks!
You are right, I hope it is fixed in the new minor version 0.1.1.
ciao
mauro
Pedro said…
It is fixed now!

Thank you very much Mauro!

Best regards,
Pedro