国土数値情報土地利用メッシュ(L03)を利用するために
国土数値情報土地利用メッシュ(L03)をBMP画像に変換するRubyスクリプトを公開します。
このスクリプトを利用すると、国土数値情報ダウンロードサービスからダウンロードできる「土地利用メッシュ」のデータをBMP画像に変換することができます。
画像に対応するワールドファイルも生成しますので、多くのGISソフトで利用できるでしょう。
無保証です。ご自由にお使い下さい。
できあがりサンプル

Rubyスクリプトのダウンロード
スクリプトの使い方
コマンドラインから
> ruby L03toBMP.rb L03-09M-??.txt
などとして使います。
スクリプトの概要
引数に渡されたファイル(複数可)から細分区画のデータを読み出し、BMPとついでにワールドファイルを生成します。 たとえば L03-09M-14.txt を処理すると、L03-09M-14.bmp という画像ファイルと L03-09M-14.bmpw というワールドファイルができます。
L03-51M、L03-62M、L03-03M、L03-09Mの各ファイルで問題なく変換できるように作成してあります。
土地利用メッシュは、田、畑、森林、建物用地、海水域などの土地利用形態が、3次メッシュの領域をさらに縦横とも10分割した細分区画ごとに掲載されています。このデータひとつがひとつの画素になります。
出力するBMPは16色ビットマップです。16個のパレットのうち最初のもの(白色)がNODATAにあたります。 平成3年および9年のデータは"G:ゴルフ場"が17番目になってしまいますので、 それを"D:欠番"のパレットと入れかえています。 画像処理ソフトで白色(white)を透過処理すると、 より使いやすくなるかもしれません。
東京都全域を1枚の画像にすると、とてつもなく大きくなってしまうので、 34度以南は切り捨てています。 これはファイル名が"13.txt"で終わっているかどうかで判断しているので、 たとえば13a.txtなどと名前を変えておくと東京都全体を処理することができます。 この場合、14400x18600というサイズの画像ファイルになります。
利用形態と色の割当
| L03-51M | L03-62M | L03-03M | L03-09M | ||
|---|---|---|---|---|---|
| 0 | 255,255,255 | NODATA | NODATA | NODATA | NODATA |
| 1 | 0,255,255 | 田 | 田 | 田 | 田 |
| 2 | 128,128,0 | 畑 | 畑 | その他の農用地 | その他の農用地 |
| 3 | 128,128,32 | 果樹園 | 果樹園 | 欠番 | 欠番 |
| 4 | 128,128,64 | その他の樹木畑 | その他の樹木畑 | 欠番 | 欠番 |
| 5 | 34,139,34 | 森林 | 森林 | 森林 | 森林 |
| 6 | 189,183,107 | 荒地 | 荒地 | 荒地 | 荒地 |
| 7 | 105,105,105 | 建物用地A | 建物用地 | 建物用地 | 建物用地 |
| 8 | 128,128,128 | 建物用地B | 欠番 | 欠番 | 欠番 |
| 9 | 0,0,139 | 幹線交通用地 | 幹線交通用地 | 幹線交通用地 | 幹線交通用地 |
| A | 139,69,19 | その他の用地 | その他の用地 | その他の用地 | その他の用地 |
| B | 65,105,225 | 湖沼 | 内水地 | 河川地及び湖沼 | 河川地及び湖沼 |
| C | 32,105,225 | 河川地A | 欠番 | 欠番 | 欠番 |
| D | 0,105,225 | 河川地B | 欠番 | 欠番 | 欠番 |
| E | 244,164,96 | 海浜 | 海浜 | 海浜 | 海浜 |
| F | 64,244,208 | 海水域 | 海水域 | 海水域 | 海水域 |
| G | 0,255,0 | 欠番 | 欠番 | ゴルフ場 | ゴルフ場 |
ただし、平成3年および9年のデータは"G:ゴルフ場"が17番目になってしまいますので、 それを"D:欠番"のパレットと入れかえています。
Rubyについて
Rubyになじみのない方は、「Rubyの歩き方」などを参照してください。