Bisakah Anda memberi tahu saya bagaimana saya bisa memuat data geodatabase ke PostGIS tanpa harus menginstal aplikasi Esri?
Solusi yang saya temukan online berbicara tentang menggunakan ArcGIS untuk mengkonversi GDB ke SHP dan kemudian mengimpor SHP ke PostGIS.
postgis
esri-geodatabase
spatial-etl
Gerson Galang
sumber
sumber
Jawaban:
Saya melakukannya sepanjang waktu untuk klien saya.
Buang data Anda ke FileGDB atau Shapefile lalu jalankan perintah berikut:
Untuk Shapefile ESRI:
Untuk FileGDB:
Untuk FileGDB, Anda perlu memastikan bahwa driver FileGDB diinstal. Anda melakukannya dengan:
yang seharusnya menunjukkan FileGDB di suatu tempat untuk memberi tahu Anda itu diinstal.
sumber
ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" SanDiegoData.gdb -sql "GetLayerDefinition Parcels"
akan membuang metadata XML ESRI ke bidang dalam db ituSaya belum mencoba ini jadi tidak bisa memverifikasi itu berhasil, tetapi File Geodatabase API memungkinkan Anda untuk mengekspor data dari file Geodatabase ke SHP (dan kemudian PostGIS). Dokumentasi mengatakan:
sumber
API file geodatabase Esri hanya berfungsi dengan file geodatabases yang dibuat menggunakan 10.x - versi yang lebih lama tidak akan berfungsi dengan GDAL, QGIS atau apa pun yang bergantung pada file open API geodatabase . Personal Geodatabases lama bergantung pada MS Access dan ada pembaca dan kode yang tersedia.
Jika Anda memiliki geodatabase file 10.x Anda dapat membaca layer dari FileGDB dan memuat ke PostGIS dengan perintah ogr2ogr tunggal ( lihat dokumentasi ):
Untuk melakukan ini, saya juga harus mengunduh VS2010 express edition dan membangun GDAL saya sendiri, ogr plugin dan 1.3 file API geodatabase yang terbuka.
Apa yang saya tidak dapat lakukan adalah melakukan migrasi geodatabase file 9.x yang lebih lama tanpa menggunakan perangkat lunak esri (tidak tersedia bagi saya atm) - Saya tidak dapat melewati ...
... ketika mencoba untuk membuka 9.x "gdb" dengan API terbuka yang hanya mendukung 10.x "gdb".
sumber
Meskipun saya belum mencobanya sendiri, saya baru saja menemukan tutorial ini (yang merupakan shapefile -> PostGIS) yang menggunakan perangkat lunak geoETL open-source yang disebut " Spatial Data Integrator ". Saya tidak yakin apakah ini mendukung Esri GDB atau tidak, tetapi mungkin perlu diselidiki lebih lanjut untuk melihat apakah Anda dapat menggunakan produk ini untuk melakukan konversi yang serupa dari GDB ke PostGIS tanpa menggunakan produk ESRI.
Paket ETL lain yang saya dengar adalah FME dari Safe Sofware ($, sangat populer) dan GeoKettle (open-source), serta banyak lagi referensi tentang halaman wikipedia Spatial ETL .
EDIT : Setelah menggali sedikit lebih jauh, sepertinya SDI tidak secara langsung mendukung pembacaan EsriGDB , tetapi dapat membaca format file OGR yang tersedia .
sumber
Pekerjaan FWIW sedang berlangsung untuk membuat GDB ke postgis loader. Ini tergantung pada trunk GDAL terbaru yang memiliki binding GDB. Belum punya kesempatan untuk mengkompilasi dan mencoba sendiri tetapi berharap sebelum PostGIS 2.0 keluar.
lihat - http://trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb
Anda mungkin dapat memberi Paul buzz di newsgroup PostGIS untuk mencari tahu di mana dia dengan ini. http://www.postgis.org/mailman/listinfo/postgis-users
Untuk format Personal GeoDatabase, GDAL dapat membaca denda itu dan itulah yang biasanya saya gunakan untuk mengekspor data dari geodb pribadi.
sumber
Menjawab pertanyaan saya sendiri di sini yang saya posting di sini beberapa waktu lalu ...
Opsi lain yang saya temukan online (selain saran di atas) adalah menggunakan pgdbf ( https://github.com/kstrauser/pgdbf ) yang membuang skrip SQL yang dapat Anda gunakan untuk menelan postgres secara manual.
sumber