Hatena::ブログ(Diary)

名称未設定 RSSフィード

2009-04-27

[]GDALメモ ラスタのマージ

DEMデータもオルソフォトも衛星画像もどんどん解像度があがって、ファイルサイズが超大きくなってきてます。1つのファイルが大きくなりすぎないように適当な図郭に分割して複数の画像ファイルになっていることも多いです。ところが、実際に使う立場になってみると、あんまりたくさんのファイルになっていると、ちょっと使いにくい。それに、画像がばらばらになっていると投影変換したときにはちゃんとつながってくれないです。

そんなわけで、せっかく分割してくれたファイルをマージしたりすることは結構多いです。

最近はGlobalMapperでデータのマージでも何でもやってしまうのですが、コマンドラインから使いやすいGDALでの画像のマージ方法もメモしておきます。日本語のGDAL情報はいまのところ多くはないので、具体的な方法をメモしておきます。主に自分向けですが・・

画像のマージはgdal_merge.pyでやります。基本的には、

python C:\gdal_merge.py -o output.tif -init -9999 input1.tif input2.tif input3.tif input4.tif

みたいな感じで、「-o merge.tif」でマージ後のファイル名を指定して、その後ろにマージしたい画像のファイル名を並べていくだけ(上の例はgdal_merge.pyがC直下に置いてある場合)。-init -9999は、nodata valueの指定。ところが、これではファイルがたくさんある場合は大変。

inputファイルを指定するのにワイルドカードが効かないかと思って「*.tif」とかやってみたけどダメでした。どうしたらよいかしばらくわからなかったのですが、GDALのwikiで見つけました。マージしたファイルのリストを用意しておけばよいみたい。

リストは、コマンドプロンプトから

dir /b /s *.tif > list.txt

とやって、list.txtに格納。これができたら、

python C:\gdal_merge.py -o merge.tif -init -9999 --optfile list.txt

という感じでlist.txtを指定してあげたらうまくいきました。

gdal_merge.pyの詳しい説明はこちら

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証