ラスターをPostGISにインポートする方法は?


8

以下の手順に従って、ラスタをPostGISデータベースにロードしようとしています。

python raster2pgsql.py -s 4269 -I -r *.tif -F myschema.demelevation -o elev.sql

*がラスターへのパスに置き換えることを理解していますが、パーツmyschema.demelevationまたはを理解していませんelev.sql。このファイル用に独自のスキーマを用意する必要がありますか?そして、そのelev.sql部分はどういう意味ですか?

私はまた、gdal PostGISラスタードライバーを読んで、より多くの例でこれを試して理解しました。同様に、彼らはラスターをロードすることを提案しますkatrina

python raster2pgsql.py -r /path/to/katrina.tif -t katrina -l 1 -k 64x64 -o katrina.sql -s 4326 -I -M

現在の設定を使用して、katrinaラスターを次の場所にロードしてみました。

    python2.6 ~/src/postgis-2.0.0SVN/raster/scripts/python/raster2pgsql.py -r ~/tmp/katrina.tif -t katrina -l 1 -k 64x64 -o katrina.sql -s 4326 -I -M

ただし、次のエラーが発生しました。

Traceback (most recent call last):
  File "/home/src/postgis-2.0.0SVN/raster/scripts/python/raster2pgsql.py", line 34, in <module>
    from osgeo import gdal
  File "/home/lib/python2.6/GDAL-1.8.1-py2.6-linux-i686.egg/osgeo/__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "/home/lib/python2.6/GDAL-1.8.1-py2.6-linux-i686.egg/osgeo/__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: /home/lib/python2.6/GDAL-1.8.1-py2.6-linux-i686.egg/osgeo/_gdal.so: undefined symbol: GDALSetRasterUnitType

これらのエラーの意味を完全には理解していません。コンパイル時にgdal引数を指定する必要がありますGDALSetRasterUnitTypeか?

より一般的には、このデータをロードしようとしているデータベースを指定していない理由を理解することが困難です。


MerseVikingのアドバイスに従って、私は実行しました。

python /usr/lib/postgresql/8.4/bin/raster2pgsql.py -r /home/celenius/Downloads/katrina.tif -t katrina -l 1 -k 64x64 -o katrina.sql -s 4326 -I -M

これは次の出力を返しました:

------------------------------------------------------------
 Summary of GDAL to PostGIS Raster processing:
------------------------------------------------------------
Number of processed raster files: 1 (/home/celenius/Downloads/katrina.tif)
List of generated tables (number of tiles):
1   katrina (256)

それから私は走った:

psql -d test -f katrina.sql - U postgres -W

これは以下を返しました:

    addrastercolumn                                                                                                                                                                                        
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 public.katrina.rast srid:4326 pixel_types:{8BUI,8BUI,8BUI} out_db:false regular_blocking:true nodata_values:NULL scale_x:'0.029325513196481' scale_y:'-0.029325513196481' blocksize_x:'64' blocksize_y:'64' extent:POLYGON((-100.014662756598 9.98533724340176,-100.014662756598 40.0146627565982,-69.9853372434018 40.0146627565982,-69.9853372434018 9.98533724340176,-100.014662756598 9.98533724340176))
(1 row)

(END)

このメッセージと点滅するカーソルが画面に表示されます。データベースに読み込まれていると思いますが、よくわかりません。tifファイルはちょうど3メガバイトです-私はそれがこのサイズのファイルをロードするために長い時間がかかるしないことを想定していたが、点滅するカーソルはすでに〜1時間のために、画面になっています。これはクラッシュしましたか、それとも長時間待つ必要がありますか?4GBのRAMと2.5 GHzのデュアルプロセッサを持っています。


キーを押すとq、このコマンドが実行され、データベースにデータが挿入されることがわかりましたtest。これは正常な動作ですか、これを実行する必要がありますか?
djq

回答:


3

そのページにはタイプミスがあるようです。行:

python raster2pgsql.py -s 4269 -I -r *.tif -F myschema.demelevation -o elev.sql

-Fパラメータがなければなりません-tにデータをインポートするテーブル名を指定しています。.以外のスキーマでテーブルを作成する場合は、の前の部分がオプションのスキーマ名ですpublic。この-oパラメーターは、Pythonスクリプトによって生成されるファイルを指定します。このファイルは、テーブル定義のSQL表現とソースラスタからの実際のデータなので、かなり大きくなる可能性があります。このファイルが生成されたら、実行してpsql -d <db_name> -f elev.sqlデータベースに実際にデータを入力する必要があります。その後、削除できます。

しかし、奇妙にraster2pgsql.py感じるのは、PostGIS 2.0 ソースディレクトリから呼び出していることです。実際にPostGIS 2.0をコンパイル(実行make)し、インストール(make installルートとして実行)しましたか?パス上にある必要があるため、IIRCは自動的にPYTHON_PATH環境変数を更新します。

不足しているについて、GDALSetRasterUnitType最初に確認することは、Pythonが1.8.1ではなくピックアップしているGDALライブラリの以前のバージョンがインストールされていないことです。gdalinfo --version このサイトを試してみてくださいあなたの問題にいくつかの光を当てるかもしれません。


提案をありがとう-私はそれをテストします。このスクリプトを呼び出す方法について、私はかなり混乱しています。私が実行しているmakemake install、私はそれからの呼び出しされている必要があります./bin/raster2pgsql.py。ルートアクセス権のない共有ホスティングを使用していますが、プログラムをインストールできます。走るgdalinfo --versionGDAL 1.5.3, released 2008/09/09; これはサーバーのバージョンです。GDAL 1.8.1をインストールしましたが、このコマンドでピックアップされません。
djq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.