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.
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.
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.
9 comments:
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
Hi Pedro, thanks!
You are right, I hope it is fixed in the new minor version 0.1.1.
ciao
mauro
It is fixed now!
Thank you very much Mauro!
Best regards,
Pedro
ok, good...
ciao
Hi Mauro,
I've just found this plugin and I think is very useful, so thanks very much.
I'm trying to use "Profile statistics" option but I get an error message:
Traceback (most recent call last):
File "C:/Users/Sebastian/.qgis2/python/plugins\qProf\qProf_QWidget.py", line 1688, in calculate_statistics
statistics = map(lambda p: self.get_statistics(p), self.profiles.topo_profiles)
File "C:/Users/Sebastian/.qgis2/python/plugins\qProf\qProf_QWidget.py", line 1688, in
statistics = map(lambda p: self.get_statistics(p), self.profiles.topo_profiles)
File "C:/Users/Sebastian/.qgis2/python/plugins\qProf\qProf_QWidget.py", line 1657, in get_statistics
z_mean = profile_line3d.z_mean()
File "C:/Users/Sebastian/.qgis2/python/plugins\qProf\geosurf\spatial.py", line 901, in z_mean
return np.nanmean(self.zs())
AttributeError: 'module' object has no attribute 'nanmean'
I can create a profile but no the statistics. What am I doing wrong?
Thank you very much in advance!
Hi there! I have a little problem and I hope you can help me! I don't understand how I can create more than one profile at the same time. I have three lines in one area plus the DEM file and I want to compare the profiles of these three lines with each other (three hiking tracks). Is this possible with qProf and if yes, how? Looking forward to hearing from you soon!! Janine
Ciao Janine,
sorry for the late replay.. no, in the current version it's not possible. I plan to implement the possibility to create multiple profile at once in the next release. Possibly released in September...
mauro
ciao Mauro,
ti scrivo perchè sto facendo la tesi e purtroppo mi sono reso conto che da qualche giorno il plugin non funziona più... dice che è corrotto non so cosa voglia dire.... ho provato a disinstallarlo e rinstallarlo mille volte e anche con diverse versioni di qgis ma non funziona più. se puoi aiutarmi mi faresti un favore enorme, sono rovinato!
Ciao Thomas,
ho visto solo oggi il tuo commento, spero che magari nel frattempo abbia risolto. Dovrebbe essere un problema lato moduli di Python. Innanzitutto il plugin per ora non supporta QGIS 3.0, quindi devi andare su QGIS 2.18 o 2.16. Peronalmente proverei con la Long Term Support, forse è fornita con tutti i moduli Python richiesti. Poi bisognerebbe sapere quale modulo Python manca al tuo QGIS, che immagino sia su Windows. Cosa dice il messaggio di errore?
Nel caso, scrivimi su alberti.m65@gmail.com
mauro
Post a Comment