16.3. Lesson: Importer et Exporter

Bien évidemment, une base de données sans un moyen facile de migrer des données dans et hors d’elle serait sans grand intérêt. Heureusement, il existe de nombreux outils permettant de facilement déplacer les données vers et hors de PostGIS.

16.3.1. shp2pgsql

shp2pgsl est un outil en ligne de commande pour importer les shapefiles ESRI vers la base de données; Sous Unix, vous pouvez utiliser la commande suivante pour importer une nouvelle table dans PostGIS:

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

Sous Windows, vous devez réaliser le processus d’importation en deux étapes:

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

Vous pouvez rencontrer cette erreur:

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

C’est un problème connu lié à la création in situ d’un index spatial sur la couche en cours d’importation. Pour éviter l’erreur, excluez le paramètre -I. Cela signifie qu’aucun index spatial ne sera directement créé sur la table, et que vous aurez besoin de le créer une fois la donnée importée dans la base de données. (La création d’un index spatial sera abordée dans la prochaine leçon.)

16.3.2. pgsql2shp

pgsql2shp est un outil en ligne de commande pour exporter des tables, vues et requêtes de sélection SQL. Pour l’utiliser sous Unix:

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

Pour exporter des données à l’aide d’une requête:

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

16.3.3. ogr2ogr

ogr2ogr est un très puissant outil pour convertir les données entre PostGIS et beaucoup de formats de données. ogr2ogr fait partie du logiciel GDAL/OGR et doit être installé séparément. Pour exporter une table PostGIS en GML, vous pouvez utiliser cette commande:

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

16.3.4. SPIT

SPIT est une extension fournie avec QGIS. Vous pouvez l’utiliser pour charger des couches ESRI shapefile vers PostGIS.

Une fois que vous avez ajouté l’extension SPIT via le Gestionnaire d’extensions, recherchez ce bouton:

../../../_images/008.png

Cliquer dessus ou sélectionner dans le menu Base de données –> Spit –> Importer des shapes dans PostgreSQL vous ouvrira la fenêtre SPIT:

../../../_images/spit_dialog.png

Vous pouvez ajouter des shapefiles à la base de données en cliquant sur le bouton Ajouter, qui ouvrira une fenêtre de navigation.

16.3.5. DB Manager

Vous avez dû remarquer une autre option dans le menu Base de données intitulée DB Manager. Il s’agit d’un nouvel outil de QGIS 2.0 qui offre une interface unifiée pour interagir avec les bases de données spatiales, y compris PostGIS. Il vous permet également d’importer et exporter depuis les bases de données vers d’autres formats. Étant donné que le prochain module est largement dévolu à l’utilisation de cet outil, nous ne ferons que le mentionner ici.

16.3.6. In Conclusion

Importer et exporter vers et depuis une base de données peut être fait de diverses manières. Vous utiliserez probablement ces fonctions (ou des similaires) si vous utilisez des données de sources disparates.

16.3.7. What’s Next?

Prochainement, nous verrons comment interroger les données que nous avons créées auparavant.