¿Me puede decir cómo puedo cargar datos de geodatabase en PostGIS sin tener que instalar aplicaciones de 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.
¿Me puede decir cómo puedo cargar datos de geodatabase en PostGIS sin tener que instalar aplicaciones de 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.
Respuestas:
Lo hago todo el tiempo por mis clientes.
Volcar sus datos a FileGDB o Shapefiles y luego ejecutar 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 --formatos
que debería mostrar FileGDB en algún lugar para decirle que está instalado.
ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" SanDiegoData.gdb -sql "GetLayerDefinition Parcels"
volcaría los metadatos XML de ESRI a un campo en esa base de datos
No lo he intentado, así que no puedo verificar que funcione, pero la 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
La API de geodatabase de archivos de 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 la API de geodatabase de archivos abiertos . 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 construir 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 esri (no disponible para mi cajero automático): no puedo superar el ...
HRESULT = -2147220965, errorText = "Esta versión de GeoDatabase no es válida o está desactualizada".
... al intentar abrir 9.x "gdb" con la API abierta que solo admite 10.x "gdb".
Aunque todavía no lo he probado, acabo de encontrar este tutorial (que es shapefile -> PostGIS) que utiliza el software de código abierto geoETL llamado " Integrador de datos espaciales ". No estoy seguro de si es compatible con Esri GDB o no, pero podría valer la pena investigar más para ver si puede usar este producto para hacer una conversión similar de GDB a PostGIS sin usar productos ESRI.
Otros paquetes ETL de los que he oído hablar son FME de Safe Sofware ($, muy popular) y GeoKettle (código abierto), así como muchas más referencias en la página de Wikipedia espacial de ETL .
EDITAR : Al profundizar un poco más, parece que SDI no admite directamente la lectura de EsriGDB , pero puede leer los formatos de archivo OGR disponibles .
Se está trabajando en FWIW para crear un GDB para el cargador postgis. Esto depende de la última troncal GDAL que tiene enlaces GDB. No he tenido la oportunidad de compilar e intentarlo, pero espero que antes de que PostGIS 2.0 salga.
echa un vistazo - http://trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb
Probablemente puedas darle a Paul un zumbido en el grupo de noticias PostGIS para averiguar dónde está con esto. http://www.postgis.org/mailman/listinfo/postgis-users
Para el formato de GeoDatabase personal, GDAL puede leer eso bien y eso es lo que generalmente uso para exportar datos de geodb personal.
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 ( https://github.com/kstrauser/pgdbf ) que descarga el script SQL que luego puede usar para ingerir postgres manualmente.