Esriアプリを使用せずにジオデータベースデータをPostGISに移行しますか?


39

Esriアプリをインストールせずに、ジオデータベースデータをPostGISに読み込む方法を教えてください。

オンラインで見つけたソリューションでは、ArcGISを使用してGDBをSHPに変換し、SHPをPostGISにインポートする方法について説明しました。


ご回答どうもありがとうございました。FMEは有効なソリューションになる可能性がありますが、非常に高価なソリューションと考えています。14日間の試用期間は移行には不十分であると考えています。GDALスクリプトやGeoKettleなど、他のツールの経験がある人はいますか?よろしく。
SonOfabox

FMEデスクトップは、移行データに最適なソリューションです

回答:


37

私は常にクライアントのためにそれを行います。

データをFileGDBまたはShapefilesにダンプしてから、次のコマンドを実行します。

ESRIシェープファイルの場合:

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

FileGDBの場合:

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

FileGDBの場合、FileGDBドライバーがインストールされていることを確認する必要があります。あなたはそれをします:

ogrinfo-フォーマット

FileGDBがどこかに表示され、インストールされていることがわかります。


OGR用FileGDBドライバーのインストールに関する詳細を教えてください。
ライアンダルトン

7
Windowsで最も簡単な方法はtrac.osgeo.org/osgeo4wです。filegdbパッケージを探します(来週、バグ修正を加えて更新します)。あなたは、LinuxやMac上にある場合、あなたは私がその場でそれを構築するために使用し、以下のスクリプトを変更することができます(install_filegdb参照)gist.github.com/2955440
Ragi Yaser Burhum

@RyanDaltonそして、それがどうなるか教えてください:)
ラギヤセルバーフム

1
このプロセスでメタデータはどうなりますか?たとえば、単なる座標系などを保持するFGDCメタデータなど
オリバーバーデキン

ogr2ogrはデフォルトでは書き込みませんが、コードを見ると、この情報を読むためにSQLプロンプトで実行できる特別な「GetLayerDefinition」コマンドがあることがわかります。ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" SanDiegoData.gdb -sql "GetLayerDefinition Parcels"そのDB内のフィールドにESRIのXMLメタデータをダンプします
Ragi Yaser Burhum

7

私はこれを試していないので、動作を確認できませんが、ファイルジオデータベースAPIを使用すると、ファイルジオデータベースからSHP(およびPostGIS)にデータをエクスポートできる場合があります。ドキュメントには次のように書かれています:

With the API you can... Read and write data

ステファン、APIがあることを知ってくれてありがとう。しかし、人々がこれを自動で行うツールが実際にない場合は、おそらく試してみるでしょう。
ガーソンガラン

6
File GEodatabase APIがある場合は、GDALを使用して直接変換することもできます。trac.osgeo.org/ gdal
wiki

2
注意:ESRI開発APIとそれに基づくツールは、ArcGIS 10以降で使用するために作成または変換されたファイルGDB(.gdb)でのみ機能します。以前のバージョンのPersonal GDB(.mdb)のサポートは、以前のプログラミングの努力によるものであり、データとツールによっては機能する場合があります。
Vスチュアートフット

@johanvdw数日前にtrac.osgeo.org/gdal/wiki/FileGDBを試してみましたが、上記の質問を投稿する前に、そのリンクの手順がうまくいかなかったためです。Ubuntu 10.04で最新のgdal 1.8.1を試しましたが、File GeoDBプラグインをgdalにインストールしていないようです。「--with-fgdb = / usr / local / FileGDB_API」と「--with-fgdb = / usr / local」を試してみましたしかし、何もうまくいきませんでした。
ガーソンガラン

GCG:フォームが同じページ:(あなたがFileGDB_API_ <バージョン>抽出whereeverでは/ usr / local / FileGDB_APIを置き換えるの.tar.gz)
johanvdw

5

EsriファイルジオデータベースAPIは、10.xを使用して作成されたファイルジオデータベースでのみ動作します。古いバージョンは、GDAL、QGIS、または開いているファイルジオデータベースAPIに依存するその他のものでは動作しません。古いパーソナルジオデータベースはMS Accessに依存しており、利用可能なリーダーとコードがあります。

10.xファイルジオデータベースがある場合、FileGDBからレイヤーを読み取り、単一のogr2ogrコマンドでPostGISにロードできます(ドキュメントを参照)。

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

これを行うには、VS2010 Express Editionをダウンロードして、独自のGDAL、ogrプラグイン、およびオープンファイルジオデータベースAPIの1.3を構築する必要もありました。

私ができなかったことは、esriソフトウェアを使用せずに古い9.xファイルジオデータベースを移行することです(ATMでは利用できません)-過去を取得することはできません...

HRESULT = -2147220965、errorText = "GeoDatabaseのこのリリースは無効であるか、古くなっています。"

... 10.x "gdb"のみをサポートするオープンAPIで9.x "gdb"を開こうとするとき。


OpenFileGDBを搭載したogr2ogrの最新バージョン(2014年半ば)は、少なくとも古いバージョンのESRIファイルジオデータベースを読み取ることができます。
c.gutierrez 14

2

私はまだ試していませんが、「Spatial Data Integrator」と呼ばれるオープンソースのgeoETLソフトウェアを使用するこのチュートリアル(シェープファイル-> PostGIS)に出会いました。Esri GDBをサポートしているかどうかはわかりませんが、この製品を使用して、ESRI製品を使用せずにGDBからPostGISに同様の変換を行うことができるかどうかを確認する価値があるかもしれません。

私が聞いた他のETLパッケージは、Safe Sofware($、非常に人気)とGeoKettle(オープンソース)のFME、およびSpatial ETLウィキペディアのページにある多くのリファレンスです。

編集:さらに掘り下げてみるとSDIはEsriGDBの読み取りを直接サポートしていないように見えますが、利用可能なOGRファイル形式を読み取ることができます


2

FWIWの仕事は、GDBをpostgisローダーに作成することです。これは、GDBバインディングを持つ最新のGDALトランクに依存します。コンパイルして自分で試してみる機会はありませんでしたが、PostGIS 2.0がリリースされる前に願っています。

チェックアウト-http://trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb

おそらくPaulがPostGISニュースグループで話題になり、彼がこれに携わっている場所を知ることができます。 http://www.postgis.org/mailman/listinfo/postgis-users

Personal GeoDatabase形式の場合、GDALはその罰金を読み取ることができます。これは通常、個人のgeodbからデータをエクスポートするために使用するものです。


0

しばらく前にここに投稿した自分の質問に答えます...

(上記の提案に加えて)私がオンラインで見つけたもう1つのオプションは、pgdbf(https://github.com/kstrauser/pgdbf)を使用することです。これは、postgresに手動で取り込むために使用できるSQLスクリプトをダンプします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.