Da 2D a 3D con la riga di comando (shapefile)

Il miglior modo per spiegare un concetto o una procedura è fare un esempio, in questo caso prendo spunto da un quesito posto su un gruppo molto frequentato GIS Italia:

Buongiorno, un aiuto se è possibile, ho uno shp con punti piani (solo X e Y) dove in un campo sono presenti i valori della Z, è possibile in qualche modo trasferire l’informazione della Z all’interno della geometria così da far diventare i punti in spaziali? ( Per intenderci quando interrogo lo shp avere Z<>0 in derivato) Grazie

Per risolvere il quesito è possibile percorrere varie strade ma in questo articolo voglio seguire la strada maestra: la riga di comando e utilizzare le librerie GDAL/OGR in particolare lo strepitoso ogr2ogr.

Con una semplice riga di comando è possibile rispondere al quesito, inoltre è valido per qualsiasi tipo di geometria (punto, linea e poligono):


ogr2ogr -f "ESRI Shapefile" outfile.shp infile.shp -zfield Z_field

view raw

shp_2D_3D.sh

hosted with ❤ by GitHub

basti avviare, per esempio, la shell di OSGeo4W e scrivere lo script di sopra, dove outfile.shp è il percorso del file .shp e outfile.shp è il percorso del file di uscita, cioè lo shapefile 3D. Z_field è il campo che contiene i valori della terza dimensione.

N4
shell OSGeo4W

Note finali: La riga di comando, anche se è nata prima delle windows e del mouse, è una delle ultime mie esperienze positive e per questo devo ringraziare WikiAndy conosciuto anche come Andrea Borruso.

Vi invito a provare lo script e di ripetere lo stesso processo con altri metodi come per esempio quelli descritti qui; quest’ultimi necessitano di QGIS e di GRASS GIS.


Pubblicità

2 pensieri su “Da 2D a 3D con la riga di comando (shapefile)

  1. Forse (ma non ne sono sicuro) devi correggere qualche veniale errore di “dislessia” da tastiera (mi hanno spiegato che succede perchè le dita della mano destra battono sulla tastiera più veloci delle dita della mano sinistra).
    Invece di outfiele.shp dovrebbe essere outfile.shp
    Invece di outfile.shp dovrebbe essere infile.shp
    Invece di Z_filed dovrebbe essere Z_file.

    "Mi piace"

Rispondi a Marco Spaziani Cancella risposta

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

Logo di WordPress.com

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

Foto di Facebook

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

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.