QGIS: Python ed ERONE

QGIS sta facendo passi da gigante nello sviluppo del codice e sta sempre più avvicinandosi al mondo 3D con nuove funzionalità come per esempio la definizione di shapefile 3D, info 3D ecc… ma ancora molte funzioni (come calcolo area $area, $perimetro, $lunghezza ecc…) sono sempre in 2D anche se lo shapefile è 3D.

In questo articolo utilizzerò Python per calcolare superfici e lunghezze di shapefile 3D partendo dai vertici (punti x,y,z) delle features (per esempio un file CSV di punti (x,y,z)).

Immagine 10
punti 3D (x,y,z) – da file CSV

unisco questi punti per formare tanti triangoli utilizzando lo SNAP di QGIS che si aggancia anche alla Z, cosi da realizzare triangoli nello spazio 3D:

Immagine 1
triangoli 3D

esporto lo shapefile ‘tring_3D’  utilizzando il plugin ‘wkt export‘ ottenendo un file cosi strutturato:

questo formato va modificato per utilizzarlo in seguito: elimino il testo (PoligonZ), le parentesi e aggiungo una virgola per separare le coordinate, ottenendo un file CSV:

noterete che ogni riga ha quattro triplette di coordinate (x,y,z), questo perchè ogni poligono chiuso (i triangoli) il primo e l’ultimo vertice coincidono.

Questo file (tring_3D.csv) sarà utilizzato nello script Python per calcolare l’area dei triangoli (in 3D) con la formula di Erone:


Note finali: con questo articolo voglio dimostrare che con poche conoscenze di Python e con nozioni di matematica è possibile creare script  per superare alcuni limiti di QGIS. Lo script di python è certamente migliorabile soprattutto nell’importazione del file csv.

Per chi volesse provare questo programma in python, mi raccomando, create il file csv per come spiegato sopra.


file

video.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...