Você pode me dizer como posso carregar dados de geodatabase no PostGIS sem precisar instalar aplicativos Esri?
A solução que encontrei on-line falou sobre o uso do ArcGIS para converter GDB em SHP e, em seguida, a importação de SHP para PostGIS.
Você pode me dizer como posso carregar dados de geodatabase no PostGIS sem precisar instalar aplicativos Esri?
A solução que encontrei on-line falou sobre o uso do ArcGIS para converter GDB em SHP e, em seguida, a importação de SHP para PostGIS.
Respostas:
Faço isso o tempo todo para meus clientes.
Despeje seus dados no FileGDB ou Shapefiles e execute o seguinte comando:
Para arquivos de forma ESRI:
ogr2ogr -f "PostgreSQL" PG: "dbname = nome do meu usuário = postgres" myshapefile.shp
Para FileGDB:
ogr2ogr -f "PostgreSQL" PG: "dbname = nome do meu usuário = postgres" myFileGDB.gdb
Para o FileGDB, você precisa garantir que o driver do FileGDB esteja instalado. Você faz isso com:
ogrinfo --formats
que deve mostrar o FileGDB em algum lugar para informar que ele está instalado.
ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" SanDiegoData.gdb -sql "GetLayerDefinition Parcels"
iria despejar os metadados XML ESRI a um campo em que db
Eu não tentei isso, então não posso verificar se funciona, mas a API do File Geodatabase pode permitir que você exporte os dados do arquivo Geodatabase para o SHP (e, portanto, o PostGIS). A documentação diz:
With the API you can... Read and write data
A API de geodatabase do arquivo Esri funciona apenas com bancos de dados de arquivos criados usando 10.x - as versões mais antigas não funcionarão com GDAL, QGIS ou qualquer outra coisa que dependa da API de geodatabase de arquivo aberto . Os antigos Geodatabases pessoais dependem do MS Access e existem leitores e códigos disponíveis.
Se você possui um geodatabase de arquivo 10.x, pode ler a camada do FileGDB e carregar no PostGIS com um único comando ogr2ogr ( consulte a documentação ):
ogr2ogr -overwrite -skipfailures -f "PostgreSQL" PG:"host=myhost user=myuser dbname=mydb password=mypass" "C:\somefolder\BigFileGDB.gdb" "MyFeatureClass"
Para fazer isso, eu também tive que baixar o VS2010 express edition e criar meu próprio GDAL, ogr plugin e 1.3 da API de geodatabase de arquivo aberto.
O que não consegui fazer é migrar um geodatabase de arquivo 9.x mais antigo sem usar o software esri (não disponível para mim no atm) - não consigo passar ...
HRESULT = -2147220965, errorText = "Esta versão do GeoDatabase é inválida ou está desatualizada."
... ao tentar abrir o 9.x "gdb" com a API aberta que suporta apenas 10.x "gdb".
Embora eu ainda não tenha experimentado, acabei de me deparar com este tutorial (que é shapefile -> PostGIS) que usa o software geoETL de código aberto chamado " Spatial Data Integrator ". Não tenho certeza se ele suporta Esri GDB ou não, mas talvez valha a pena investigar mais para ver se você pode usar este produto para fazer a conversão semelhante de GDB para PostGIS sem usar produtos ESRI.
Outros pacotes ETL de que ouvi falar são o FME do Safe Sofware ($, muito popular) e o GeoKettle (código-fonte aberto), além de muitas outras referências na página da wikipedia Spatial ETL .
EDIT : Ao avançar um pouco mais, parece que o SDI não suporta diretamente a leitura do EsriGDB , mas pode ler os formatos de arquivo OGR disponíveis .
O trabalho do FWIW está em andamento para criar um GDB para o postgis loader. Isso depende do último tronco GDAL que possui ligações GDB. Ainda não tive a chance de compilar e experimentar, mas espero que o PostGIS 2.0 seja lançado.
confira - http://trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb
Provavelmente, você pode dar uma espiada em Paul no grupo de notícias do PostGIS para descobrir onde ele está com isso. http://www.postgis.org/mailman/listinfo/postgis-users
Para o formato Personal GeoDatabase, o GDAL pode ler isso muito bem e é isso que eu costumo usar para exportar dados do geodb pessoal.
Respondendo minha própria pergunta aqui que eu postei aqui há um tempo ...
Outra opção que encontrei on-line (além das sugestões acima) é usar o pgdbf ( https://github.com/kstrauser/pgdbf ), que despeja o script SQL que você pode usar para inserir manualmente no postgres.