16.3. Lesson: Importare ed esportare
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"
Si tratta di un problema noto che riguarda la creazione in situ di un indice spaziale per i dati che si stanno importando. Per evitare l’errore, escludere il parametro ``-I””. In questo modo non verrà creato direttamente alcun indice spaziale e sarà necessario crearlo nel database dopo l’importazione dei dati. (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 della libreria GDAL e deve essere installato separatamente. Per esportare una tabella da PostGIS a GML, puoi usare 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.