表紙に戻る
 

数値地図(標高)

 

国土地理院刊行の標高データを題材に、Perlで遊んでみました。数値地図の入手はこちら。

http://www.jmc.or.jp/

 

250mメッシュ(標高)から等高線図

SEM2baum2.plのソースを見る。

数値地図250mメッシュ(標高)から等高線図を作成します。使い方は、標高ファイルをドラッグ&ドロップするだけ。等高線図がGIF画像でできあがります。

(「岐阜」5336.SEMを使用)

スクリプト始めの、

$hd = 200; # 等高線の間隔[m]

を変えることで、等高線の間隔を変えられます。色使いや画像サイズの変更は、この下の段彩図のスクリプトを参照してください。

(2001/11/5)

 

 

250mメッシュ(標高)から段彩図

SEM2baum.plのソースを見る。

数値地図250mメッシュ(標高)から段彩図を作成します。使い方は、標高ファイル(拡張子が「.SEM」のもの)をドラッグ&ドロップ。段彩図がGIF形式の画像としてできあがります。

(「岐阜」5336.SEMを使用)

画像サイズを変更するには、スクリプト中の

($nbv, $nlv) = (480, 720); # 画像サイズ

と言う行を変えてください。縦×横の順になっています。

ちょっと進んだ使い方:

段彩は248階調のグラデーションで表現しています(他に、海や図の端を示すために8色が予約されているので、計256色となります。)。スクリプトの末尾に、標高とRGB値の対応表が付いていますから、これをいじることで、自分の好きな色調の図を作ることができます。段彩の内訳は、ツールと同じ階層に「colors.html」と言う名前のHTMLファイルとして書き出されています。

colors.htmlを見る。

段彩図を作るためなら、専用のビューア(品川地蔵さん作の「地図画像ビューア」など)を使った方がよほど便利です。自作ツールを使うのは、もう少し自分の手でいじる実感が欲しい方むけでしょうか。

(2001/11/4)

 

 

数値地図(標高)から海岸線を

なめらかバージョン:

EM2CL.plのソースを見る。

かくかくバージョン:

SEM2CL-K.plのソースを見る。

1998/12/14 しょうもないバグがありました。海岸線があさっての方向に行ってしまうのを直しました。

数値地図(標高)から海岸線を抜き出します。海岸線に沿って緯度経度を拾って、USGS海岸線と同じMapGen形式で書き出します。そのままGPSyでGPSに転送すれば、正確無比な海岸線を持ち歩けます。(メモリーの上限に注意!)

データ内に含まれる海岸線の長さによって、実行時間は変わります。瀬戸内海の小島の多いところとかですと、数分かかるかもしれません。またデータを一度、メモリに読み込むので、MacPerlの割り当てメモリを増やさないと、Out of Memoryで止まることがあります。

250mメッシュでしかテストしてませんが、ヘッダを読んでいるので、50mメッシュ他にも対応するはずです。(北海道の50mメッシュが、早く出てほしい。)

複数の標高ファイルには対応してませんので、個別に海岸線を作ってから、手でつなげてください。(いずれつなげるようにする予定。)

海岸線の拾い方で、二通りのツールを作りました。

一つは陸の海の境を忠実にたどるもの。方眼の線に沿っていきますので、かくかくした海岸線が得られます。

もう一つは、一段、簡単な処理を加えて、角を落としたもの。先のものより滑らかで、本来の海岸線に近い結果が得られます。また、データ数が前者の6割程度に収まるので、GPSで持ち運ぶには有利です。

実際の違いは、以下の図を見て下さい。前者が黄色の線、後者が緑の線で描かれています。250mメッシュの数値地図を用いました。(左下のゲージは500m。)

黄色の線は、元の250mメッシュがそのまま分かりますが、緑の線は結構良い線いっているでしょう。

特にきびしいところをお見せすると、こんな感じです。(左下のゲージは2km。)

お好みでどうぞ。

応用として、境界となる高度を変えることで、一般の等高線を拾うツールにもなると思います。

 

 

数値地図をタブ区切りテキストに

SEM2CSV.plのソースを見る。

数値地図(標高)のデータ部分をタブ区切りのテキストで書き出します。手持ちの表計算ソフトでちょっといじってみたい、あるいは簡単に三次元グラフにする、時などに使います。

標高の単位はmに直してあります。また、行と列の頭に名称代わりに緯度と経度を入れました。これはメッシュの左上角の座標値になります。

 

 


表紙に戻る