raster2pgsqlを使用してPostGISにジオティフをロードする


8

いくつかのOrdnance SurveyラスターデータをPostGISに読み込むときに問題が発生します。次のraster2pgsqlコマンドを使用して、C:\ Program Files \ PostgreSQL \ 9.1 \ binフォルダに配置したtifをPostGISにロードしています。

raster2pgsql -s 27700 -t 5000x5000 -I -C -M  *.tif  > os_strview.sql

次に、次のpsqlコマンドを実行します。

psql -h localhost -U postgres -d raster_test -f os_strview.sql

これは正常に機能しますが、QGISでデータを表示しようとすると、PostGISレイヤーを追加しようとしたときに、選択ボックスにraster_columnsテーブルしか表示されませんでした。

代わりに、プラグインLoad Post raster to PostGISを使用してみました。これは機能しますが、ラスターイメージに色がありませんでした。その後、この投稿を見ました。「ラスター」>「変換」>「PCT to RGB」テクニックを使用して、単一のtifをgeotifに変換しました。

残念ながら、上記のpsqlコマンドを実行すると、次のエラーメッセージが表示されます。

C:\ Program Files \ PostgreSQL \ 9.1 \ bin> psql -h localhost -U postgres -d raster_test -f os_strview.sql BEGIN psql:os_strview.sql:2:注意:CREATE TABLEは暗黙のシーケンス「sx03 nw-geo_rid_seq」を作成しますシリアル列 "sx03nw-geo.rid"の場合psql:os_strview.sql:2:注意:CREATE TABLE / PRIMARY KEYは、テーブル "sx03nw-geo"の暗黙的なインデックス "sx03nw-geo_pkey"を作成しますCREATE TABLE psql:os_strview.sql:3 :エラー:ライブラリ「C:/ Program Files / PostgreS QL / 9.1 / lib / rtpostgis-2.0.dll」をロードできませんでした:メモリの場所への無効なアクセス。

1行目:INSERT INTO "sx03nw-geo"( "rast")VALUES( '01000003000000000 ... ^ ROLLBACK

これは、PostGISにロードしようとしているgeotiffのサイズ(71 MB)と関係があると考えています。

私が試すべき他の方法はありますか?PostGISにロードできる単一の画像のサイズの制限は何ですか?


「私が試すべき他の方法はありますか?」FMEデスクトップにアクセスできますか?FME 2013にはPostGIS 2.0 Raster
Mapperzの

アクセスできません。資金に限りがあるため、オープンソースを使用しようとしています。FMEについて良いことを聞いたことがあるので、投資に値するかもしれません。
Matt T

回答:


3

PostGISラスタの単一画像のサイズに制限はありませんが、コンピュータにあるメモリの量など、他の要因によって制限されます。PostgreSQLは、PostgreSQLの1つのフィールドに1GBの制限を課しています

GDALユーティリティgdalinfoがある場合、gtiffファイルの1つでgdalinfoを実行して、出力をここに投稿できますか?または、データが公開されている場合(条例調査データは利用できると思います)、ロードしようとしているTIFへのポインターを提供して、テストできるようにすることはできますか?

gdalinfo MYGEOTIFF.tiff

ファイルサイズ71MBは小さいため、問題にはなりません。現在、10mの標高データセット(それぞれ500MBと10812x10812)と1mの航空写真(それぞれ170MBと5820x7575)を問題なく読み込んでいます。


dustymugsに感謝します。私は私の自宅のPCからgeotiffをロードしてみましたが、うまくいきました。仕事でどのような記憶を持っているかを確認する必要があります。ジオティフをなんとかロードできましたが、カートグラフィックテキストに問題があります。元のtifの場合ほど明確ではありません。とりあえず、PostGISの外でラスタを維持することに固執するかもしれません。
Matt T

1

Geotiff経由でデータをインポートするときにも同様の問題がありました。あなたへの私の提案は、ファイルをErdas Imagineファイルに変換することです。(インポートスクリプトを再作成し、すでに行ったように実行します)


アドバイスU2rosをありがとう。しかし、QGISで表示すると、作成したラスターは灰色でした。
Matt T

ええと、erdas形式では(通常)カスタムカラーパレット/グラデーションを適用できます。あなたのケースでは、デフォルトのグレースケールが選択されたと思います。
U2ros 2012

0

1)PostGISラスターのよくある質問に記載されているように、raster2pgsql 「rtpostgis.so/dllはlibgdal.dll / soに依存して構築されています。Windowsの場合、PostgreSQLインストールのbinフォルダーにlibgdal-1.dllがあることを確認してください。Linuxの場合libgdalはパスまたはbinフォルダーにある必要があります

2)一方、同じエラーに関連するバグチケットが表示されると、「すべての raster2psql 機能がで提供されるを使用してrt_api、すべての機能がメモリ内で動作します。このローダーは、1つで使用可能なメモリに依存しています。機械"。

つまり、別のマシンを使用して、raster2pgsqlでデータベース内の大きなラスターを操作すると、問題を解決できる可能性があります。または、小さいラスターを使用してみてください。

私の場合、4 GBのRAMと32ビットのOSを搭載したラップトップで35 MBのラスターが失敗しました。64ビットOSを搭載した16 GB RAMマシンに切り替えても問題はありませんでした。

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