¿Está migrando datos de geodatabase a PostGIS sin aplicaciones Esri?

39

¿Puede decirme cómo puedo cargar datos de geodatabase en PostGIS sin tener que instalar las aplicaciones Esri?

La solución que encontré en línea habló sobre el uso de ArcGIS para convertir GDB a SHP y luego importar SHP a PostGIS.

    
pregunta Gerson Galang 08.09.2011 - 07:19

6 respuestas

37

Lo hago todo el tiempo para mis clientes.

Descargue sus datos en FileGDB o Shapefiles y luego ejecute el siguiente comando:

Para archivos de forma ESRI:

  

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

Para FileGDB:

  

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

Para FileGDB, debe asegurarse de que el controlador FileGDB esté instalado. Lo haces con:

  

ogrinfo --formats

que debería mostrar FileGDB en algún lugar para indicarle que está instalado.

    
respondido por el Ragi Yaser Burhum 19.06.2012 - 18:30
7

No he intentado esto, así que no puedo verificar que funcione, pero API de geodatabase de archivos puede permitirle exportar los datos desde la geodatabase de archivos a SHP (y desde allí PostGIS). La documentación dice:

With the API you can... Read and write data
    
respondido por el Stephen Lead 08.09.2011 - 07:49
5

La API de geodatabase de archivos Esri solo funciona con geodatabases de archivos creadas con 10.x, las versiones anteriores no funcionarán con GDAL, QGIS o cualquier otra cosa que dependa de abrir la API de geodatabase de archivos . Las antiguas geodatabases personales dependen de MS Access y hay lectores y códigos disponibles.

Si tiene una geodatabase de archivos 10.x, puede leer la capa de FileGDB y cargarla en PostGIS con un solo comando ogr2ogr ( consulte la documentación ):

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

Para hacer esto, también tuve que descargar la edición Express VS2010 y crear mi propio GDAL, ogr plugin y 1.3 de la API de geodatabase de archivos abiertos.

Lo que no he podido hacer es migrar una geodatabase de archivos 9.x anterior sin usar el software de Esri (no disponible para mí en el cajero automático). No puedo pasar el ...

  

HRESULT = -2147220965, errorText="Esta versión de GeoDatabase es   no es válido o está desactualizado ".

... al intentar abrir 9.x "gdb" con la API abierta que solo admite 10.x "gdb".

    
respondido por el Alexis Brooker 27.12.2012 - 00:24
2

Aunque todavía no lo he probado, acabo de encontrar este tutorial (que es shapefile - > PostGIS) que usa el software de código abierto geoETL llamado " Spatial Data Integrator ". No estoy seguro de si es compatible con Esri GDB o no, pero vale la pena investigar más a fondo para ver si puede usar este producto para realizar la conversión similar de GDB a PostGIS sin usar productos ESRI.

Otros paquetes ETL que he escuchado son FME de Safe Sofware ($, muy popular) y GeoKettle (código abierto), así como muchas más referencias sobre el página de wikipedia de ETL espacial .

EDIT : al excavar un poco más, parece que SDI no admite directamente la lectura de EsriGDB , pero puede leer formatos de archivo OGR disponibles .

    
respondido por el RyanDalton 08.09.2011 - 17:38
2

FWIW está trabajando para crear un GDB para el cargador de Postgis. Esto depende de la última troncal GDAL que tiene enlaces GDB. No he tenido la oportunidad de compilar y probar por mí mismo, pero espero hacerlo antes de que se publique PostGIS 2.0.

revisa - enlace

Probablemente pueda darle a Paul un zumbido en el grupo de noticias de PostGIS para saber dónde está con esto. enlace

Para el formato de GeoDatabase personal, GDAL puede leer esa multa y eso es lo que normalmente uso para exportar datos de geodb personal.

    
respondido por el LR1234567 08.09.2011 - 19:10
0

Respondiendo a mi propia pregunta aquí que publiqué aquí hace un tiempo ...

Otra opción que encontré en línea (además de las sugerencias anteriores) es usar pgdbf ( enlace ) que descarga el SQL Script que luego puede utilizar para ingerir en postgres manualmente.

    
respondido por el Gerson Galang 08.07.2016 - 03:43

Lea otras preguntas en las etiquetas