表紙に戻る
国土地理院刊行の標高データを題材に、Perlで遊んでみました。数値地図の入手はこちら。
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に直してあります。また、行と列の頭に名称代わりに緯度と経度を入れました。これはメッシュの左上角の座標値になります。
![]()
表紙に戻る