Suite

Migration des données de géodatabase vers PostGIS sans les applications Esri ?

Migration des données de géodatabase vers PostGIS sans les applications Esri ?


Pouvez-vous me dire comment charger des données de géodatabase dans PostGIS sans avoir à installer des applications Esri ?

La solution que j'ai trouvée en ligne parlait d'utiliser ArcGIS pour convertir GDB en SHP, puis d'importer SHP dans PostGIS.


Je le fais tout le temps pour mes clients.

Transférez vos données dans FileGDB ou Shapefiles, puis exécutez la commande suivante :

Pour les fichiers de formes ESRI :

ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" myshapefile.shp

Pour FileGDB :

ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" myFileGDB.gdb

Pour FileGDB, vous devez vous assurer que le pilote FileGDB est installé. Tu le fais avec :

ogrinfo --formats

qui devrait montrer FileGDB quelque part pour vous dire qu'il est installé.


Je n'ai pas essayé cela, donc je ne peux pas vérifier que cela fonctionne, mais l'API File Geodatabase peut vous permettre d'exporter les données du fichier Geodatabase vers SHP (et de là PostGIS). La documentation dit :

Avec l'API, vous pouvez… Lire et écrire des données

L'API de géodatabase fichier Esri ne fonctionne qu'avec les géodatabases fichier créées à l'aide de 10.x - les anciennes versions ne fonctionneront pas avec GDAL, QGIS ou tout autre élément dépendant de l'API de géodatabase fichier ouverte. Les anciennes bases de données personnelles dépendent de MS Access et des lecteurs et du code sont disponibles.

Si vous disposez d'une géodatabase fichier 10.x, vous pouvez lire la couche à partir de FileGDB et la charger dans PostGIS avec une seule commande ogr2ogr (voir la documentation) :

ogr2ogr -overwrite -skipfailures -f "PostgreSQL" PG:"host=myhost user=myuser dbname=mydb password=mypass" "C:somefolderBigFileGDB.gdb" "MyFeatureClass"

Pour ce faire, j'ai également dû télécharger l'édition express VS2010 et créer mon propre plugin GDAL, ogr et 1.3 de l'API de géodatabase à fichier ouvert.

Ce que je n'ai pas pu faire, c'est migrer une ancienne géodatabase de fichier 9.x sans utiliser le logiciel esri (non disponible pour moi atm) - je ne peux pas dépasser le…

HRESULT=-2147220965, errorText="Cette version de la GeoDatabase est invalide ou obsolète."

… lorsque vous essayez d'ouvrir le "gdb" 9.x avec l'API ouverte qui ne prend en charge que le "gdb" 10.x.


Bien que je ne l'aie pas encore essayé moi-même, je viens de tomber sur ce didacticiel (qui est shapefile -> PostGIS) qui utilise le logiciel open source geoETL appelé "Spatial Data Integrator". Je ne sais pas s'il prend en charge Esri GDB ou non, mais cela pourrait valoir la peine d'enquêter plus avant pour voir si vous pouvez utiliser ce produit pour effectuer la conversion similaire de GDB à PostGIS sans utiliser les produits ESRI.

D'autres packages ETL dont j'ai entendu parler sont FME de Safe Sofware ($, très populaire) et GeoKettle (open-source), ainsi que de nombreuses autres références sur la page wikipedia Spatial ETL.

ÉDITER: En creusant un peu plus loin, il semble que SDI ne prend pas directement en charge la lecture d'EsriGDB, mais peut lire les formats de fichiers OGR disponibles.


Le travail FWIW est en cours pour créer un chargeur GDB vers postgis. Cela dépend du dernier tronc GDAL qui a des liaisons GDB. Je n'ai pas eu l'occasion de compiler et d'essayer moi-même, mais j'espère le faire avant la sortie de PostGIS 2.0.

vérifier - http://trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb

Vous pouvez probablement donner à Paul un buzz sur le groupe de discussion PostGIS pour savoir où il en est. http://www.postgis.org/mailman/listinfo/postgis-users

Pour le format Personal GeoDatabase, GDAL peut lire cela très bien et c'est ce que j'utilise habituellement pour exporter des données hors de la géodb personnelle.


Répondre à ma propre question ici que j'ai posté ici il y a quelque temps…

Une autre option que j'ai trouvée en ligne (en plus des suggestions ci-dessus) consiste à utiliser pgdbf (https://github.com/kstrauser/pgdbf) qui vide le script SQL que vous pouvez ensuite utiliser pour ingérer manuellement dans postgres.


Voir la vidéo: Connect to #PostgreSQL from #ArcGIS. Spatial query on #PostGIS for Real-time Analysis. Part 25