基盤地図情報(標高)をGDALやGRASSで使いたい
基盤地図情報(標高)のDEMは、XMLで記述されています。記録や流通の理念としては良いのでしょうが、実務レベルではちょっと厄介です。でかいし。特にDEMの場合は、対応するアプリケーションも少なめです。
具体的に困っている人がいたので、知っていることを記しておきます。他にも方法は沢山ありますが、このあたりが手軽かと。
ARC/INFO ASCII GRID形式にする
単純な書式のテキストファイル*1なので、Perlとかで簡単に処理できます。拡張子はGRD通常".asc"になります。書式はhttp://docs.codehaus.org/display/GEOTOOLS/ArcInfo+ASCII+Grid+formatに出ていますが、それでは身も蓋も無いので、5mメッシュを例に少し説明します。
ヘッダー部は次の通りです。
ncols 225 #X軸のピクセル数 nrows 150 #Y軸のピクセル数 xllcorner 139.562500000000 #左下X(西)の座標 yllcorner 35.908333333667 #左下Y(南)の座標 cellsize 0.000055555556 #1ピクセルあたりの大きさ NODATA_value -9999 #「データ無し」の値
- 5mメッシュは1ピクセルあたり0.2秒なので、0.2/3600=0.000055555556になります(10進表現)。
- 基盤地図情報(標高)では「データ無し」は記載されないので、一般的な"-9999"を割り当てておきます。
データ部は、左上を原点としたマトリックスです。区切り文字はスペースです。この場合は225列、150行になります。またPRJファイルも用意しておくと便利です。これには座標系や測地系、投影法が記述されています。
5m_grid_jgd2k.grd
ncols 225 nrows 150 xllcorner 139.562500000000 yllcorner 35.908333333667 cellsize 0.000055555556 NODATA_value -9999 -9999 -9999 -9999 9.19 9.17 9.10 ……(225列) -9999 -9999 9.19 9.20 9.15 …… : : (150行)
5m_grid_jgd2k.prj
GEOGCS["JGD2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0], UNIT["Degree",0.017453292519943295]]
生成したGRDファイルを、gdal_translateでGeoTIFFにしてしまうなら、PRJファイルは不要です。変換時に直接EPSGコードで指定してしまえばいいです。
gdal_translate -a_srs EPSG:4612 5m_grid_jgd2k.grd 5m_grid_jgd2k.tif
アプリケーションによっては、WGS84の方が都合がいいかもしれません。この場合は、EPSG:4326を指定します。現行の日本測地系2000と現行のWGS84は、ほぼ同一ですので問題ありません。旧日本測地系(Tokyo)へはEPSGコードの指定だけでは無理です。また別の話。
と、ここでEsri grid - Wikipediaを発見。こちらの方が分かりやすいかも…
フリーソフト「基盤地図情報DEMコンバータ」を使う
Windows環境なら、これを使わせてもらうのが一番手軽です。GeoTIFF, BIL+HDR,GRASS ASCII形式にしてくれます。
http://space.geocities.jp/bischofia_vb/
ZIPファイルのまま扱えるし、適当な単位でマージもしてくれます。
Windows環境でない人も、近くに一台ぐらいはWindowsマシンがあると思います。ちょっと借りてGeoTIFFにしておけば、面倒がありません。日本測地系2000のGeoTIFFが生成されますが、WGS84が入用ならgdal_translateでしてしまえばいいです。
5mメッシュは配布が3次メッシュ単位。数が多いので適当な単位でマージしておけば扱いやすいです。僕は2次メッシュ単位のGeoTIFFでストックしています。必要に応じてgdal_translateで切り出し、gdal_merge.pyでくっつけて使っています。
日本地図センター「基盤地図情報(数値標高モデル)変換サービス」を使う
http://net.jmc.or.jp/digitaldata_base_henkan.html
間違いなく、いちばんラクだと思いますw
*1:ちなみにバイナリ形式もあります