GDALで日本語のファイル名を扱う方法&ポリゴンでラスタをクリップ

GDALで日本語のファイル名を扱う方法(ver1.8>=)

最新のOSGeo4WでインストールされるGDAL,OGRはバージョン1.8なのですが、デフォルトの状態だと日本語のファイル名を認識しません。(バージョン1.7までは日本語OKでしたが、どうやら、バージョン1.8から仕様が変更になったようです。)

そこで日本語ファイルを使えるようにするには、OSGeo4Wのコンソール上で、以下のように環境変数を設定する必要があります。

> SET GDAL_FILENAME_IS_UTF8=NO

毎回これをするのが面倒であれば、システムの環境変数に設定しましょう。
↑これをするとQGISに影響が出るかもしれませんのでダメ

これで無事、日本語のファイル名でもgdal,ogrのコマンドが打てるようになります。

ポリゴンでラスタをクリップする方法

広すぎるラスタデータを対象範囲でクリップする方法を紹介します。OSgeo4Wで以下のコマンドを打つだけです。


標高全域.tifデータを行政界.shpの範囲でクリップしたい場合

> gdalwarp -dstnodata 0 -crop_to_cutline -cblend 1 -cutline 行政界.shp 標高全域.tif 標高クリップ.tif 
  • -cutline はクリップしたい範囲のshpファイル
  • -crop_to_cutline はshpファイルの範囲(最外郭の四角形)に、ラスタファイルの範囲を変更。これを指定しないとラスタファイルの範囲はそのまま。(shpファイルの外側の値はすべて0)
  • -cblend shpファイルの範囲からバッファーを発生させてクリップする時に指定。単位はピクセル。-cblend 1 とすればshpの範囲+1ピクセルの範囲でクリップできる。shpとクリップしたラスタを重ねた時に、隙間ができるときに指定すると良いかも。
  • -dstnodata はNoDataを0にする指定。shpファイルの外側の値はすべて0になるので、それをNoDataとしたい時に指定。ただし、標高データでは元々の標高値が0の場合があるので、そのときには困るかも。