rasterliteのおススメ
今年後半の個人的おススメはrasterliteでした。
簡単な使用方法、注意点をまとめておきます。
色々オプションはありますので、マニュアルはご一読をお勧めします。
rasterlite-man.pdf
rasterliteとは
SQLiteは1ファイルデータベース。
SQLiteを空間情報を扱えるように拡張したのがspatialite。
spatialiteに位置情報付きの画像データを取り込めるようにするのがrasterliteになります。
rasterliteは内部でタイルに分割して画像データを持ちます。
またピラミッドを作成する機能を持っているので、大容量画像データの閲覧速度を改善することが出来ます。
spatialiteインストール
まずはspatialiteが必要です。
コンパイル済みの実行ファイルを持ってきてしまいましょう。
http://www.gaia-gis.it/spatialite/binaries.html
のspatialite-toolsからダウンロードして解凍します。
解凍後のbinディレクトリに下記ファイルが入っています。
rasterliteインストール
こちらもコンパイル済みの実行ファイルを持ってきてしまいましょう。
http://www.gaia-gis.it/spatialite/binaries.html
のlibrasterliteからダウンロードして解凍します。
解凍後のbinディレクトリに下記ファイルが入っているのを確認しましょう。
データベースの初期化
画像をloadする前に、空のspatialiteデータベースを作成しておきます。
spatialiteの初期化に必要なSQLは
http://www.gaia-gis.it/spatialite/resources.html
の"init_spatialite-x.x.sql"になります。ダウンロードしておきます。
rasterlite_load
GeoTIFFファイルをご用意ください。
rasterlite_loadコマンドを使用して、作成済みのデータベースにGeoTIFF画像を読み込みます。
> rasterlite_load -d test.sqlite -T test -e 4326 -f test.tif
読み込む画像は複数でも大丈夫です。その場合は繰り返しrasterlite_loadコマンドを実行して、1枚ずつデータベースへ読み込んでください。読み込む画像は解像度の同じものとしてください。
rasterlite_pyramid
loadしただけだと、1枚の画像がタイルに分割されて入っている状態です。次にrasterlite_pyramidコマンドを使用して、解像度を落としたタイル画像の階層を作成します。
内部処理としては
- 読み込み済み画像からもっとも高い解像度を選択
- もっとも高い解像度のタイル群を選択
- 元画像が同じタイルで括って、解像度を半分に落としながら繰り返しタイル画像を作成していく
を行っています。
> rasterlite_pyramid -d test.sqlite -T test
rasterlite_topmost
1枚の画像を読み込んだ場合は、rasterlite_pyramidの処理までで終了です。
複数毎の画像を読み込んだ場合は、rasterlite_pyramidでは元画像が同じ括りでのタイル作成で終わっているので、その上の階層をrasterlite_topmostコマンドで作成してあげます。
> rasterlite_topmost -d test.sqlite -T test
QGISで開く
QGIS(というかGDAL)がrasterliteに対応していますので、QGISで開いてみましょう。
「レイヤ」→「ラスタレイヤの追加」から作成したデータベースを選択してください。
表示されない場合の注意点。
OSGeo4W、単独のインストーラどちらでインストールした場合でも、同封されているsqliteのライブラリが古い場合があります。表示されない場合は、SQLiteのDownloadPageから"sqlite-dll-win32-x86-xxxxxxx.zip"をダウンロードしてsqlite3.dllを入れ替えてみてください。
http://www.sqlite.org/download.html
OSGeo4Wでインストールした場合は、C:\OSGeo4W\binにあるsqlite3.dllを新しいもので上書きします。
QGIS以外の影響があるかは全て調べたわけではありませんので、問題起こるようでしたら教えて欲しいです。
注意点
- 読み込み先テーブルは1つにしましょう
- loadする画像が大量な場合、rasterlite_topmost実行時にコアダンプする場合があります。この対応方法はまた後日。
追記-2012.1.13
情報が古くなっていますので、こちらに補足書いてあります。ご参照ください。