16.3. Lesson: Importa ed esporta

Certamente, un database senza un modo semplice per trasferirere i dati da e per esso non sarebbe di grande utilità. Fortunatamente, ci sono numerosi strumenti che ti permetteranno di spostare facilmente i dati da e verso PostGIS.

16.3.1. shp2pgsql

shp2pgsql è uno strumento da riga di comando per importare Shapefile ESRI nel database. Sotto Unix, puoi usare il seguente comando per importare un nuovo tabella PostGIS:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> | \
  psql -d <databasename> -h <hostname> -U <username>

Sotto Windows, devi eseguire l’importazione in due passaggi:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> > import.sql
psql psql -d <databasename> -h <hostname> -U <username> -f import.sql

Puoi incontrare questo errore:

ERROR:  operator class "gist_geometry_ops" does not exist for access method
"gist"

Questo è un problema noto riguardante la creazione «in situ» di un indice spaziale per i dati che stai importando. Per evitare l’errore, escludi il parametro -I. Ciò significa che nessun indice spaziale viene creato direttamente e sarà necessario crearlo nel database dopo che i dati sono stati importati. (La creazione di un indice spaziale sarà trattata nella prossima lezione).

16.3.2. pgsql2shp

pgsql2shp è uno strumento a riga di comando per esportare le tabelle, le viste o le interrogazioni SQL di PostGIS. Per fare ciò con Unix:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> <databasename> <table | view>

Per esportare i dati utilizzando un’interrogazione:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> "<query>"

16.3.3. ogr2ogr

ogr2ogr è uno strumento molto potente per convertire i dati in e da Postgis in molti formati di dati. ogr2ogr fa parte del software GDAL/OGR e deve essere installato separatamente. Per esportare una tabella da PostGIS a GML, puoi utilizzare questo comando:

ogr2ogr -f GML export.gml PG:'dbname=<databasename> user=<username>
        host=<hostname>' <Name of PostGIS-Table>

16.3.4. DB Manager

Potresti aver notato un’altra opzione nel menu Database menu etichettato DB Manager. Questo è uno strumento che fornisce un’interfaccia unica per interagire con database spaziali tra cui PostGIS. Ti permette anche di importare ed esportare da database ad altri formati. Dato che il prossimo modulo è largamente dedicato all’utilizzo di questo strumento, lo faremo solo brevemente qui.

16.3.5. In Conclusion

L’importazione e l’esportazione di dati da e verso il database può essere eseguita in molti modi diversi. Soprattutto se usi fonti di dati diverse, farai uso di queste funzioni (o altre come loro) su base regolare.

16.3.6. What’s Next?

Ora vedrai come interrogare i dati che hai creato in precedenza.