もしも地図画像がGeoTIFFならば(愛しのGDAL編)・2

試しに、数値地図25000(地図画像)に地理的な座標値を入れてGeoTIFFにしてみます。GeoTIFFタグをTIFFヘッダ部にバイナリエディタ等で書き込むだけですが、面倒なのでGDALlibgeotiffを使います。ついでに画像にも少し細工をします。

地図画像はユニバーサル横メルカトル図法(UTM)で投影され、経緯度によって区切られています。数値地図25000(地図画像)データファイル仕様説明書によれば、『地形図の上辺は、TIFFファイル内の画像データのピクセル方向と一致しています』。UTM座標系を回転させた、図葉ごとのラスタ座標系になっています。

地図の図郭線と画像の端が一致しないため、図郭外に余白が生まれます。またティックなどの整飾用にもスペースをとってあり、隣接図とシームレスにつなぐことが多いGISでは余白は邪魔なだけ…

この余白部のピクセルNODATAというフラグを立てます。NODATAを「データ無し」として扱えるGISアプリケーションの場合、例えば画面表示上は透明になります(例えばQuantum GIS)。

地図画像は8ビットカラー。256色のカラーパレットを持っています。NODATA用の細工をするついでにパレット操作をしました。この例では色は電子国土風、注記は他データベース*1から得るということにして注記を外します。

次はNODATAの細工。

図郭外の余白部は白色で色番号0です。ここはそのまま変更なし。図郭内の白色を細工して、他の色番号に割り当ててます。これは色番号0をNODATAにするための処置となり、幾つかのGISアプリケーションで表示させた結果*2、都合がよかっただけの理由です。
地図画像のカラーパレットは実に巧妙なつくりで、本来は色変更以外の操作は出来ません。まあ、とりあえず影響の少なそうな色番号255を割り振りました。

あとは地図画像に添付される管理ファイルを元に、図郭四隅のラスタ座標値とUTM座標値を対応させたコマンドラインをつくって実行するだけです。管理ファイルは新図郭と旧図郭で書式が異なります。注意。

-a_nodataでNODATA値を、-a_srsで測地系・座標系を、-gcpでラスタ座標値とUTM座標値を対にしてコマンドに並べます。これでPCS。

gdal_translate -a_nodata 0 -a_srs EPSG:3099 -gcp 89 4266 317645.209 3920487.579 -gcp 92 74 317858.325 3930964.025 -gcp 5234 74 330708.041 3930711.565 -gcp 5237 4266 330509.974 3920235.408 533310.tif g533310.tif

(つづく)

*1:例えば「数値地図25000(地名・公共施設)

*2:サンプル数2です。すいません