山岳リストの自動生成(その1)
SOTAを始める際に面白いなと思ったルールに、SOTAの対象となる山々の頂上は一定の条件を満たす必要があるというものがありました。日本支部のガイドラインから定義を引用させていただくと、
1.サミットは、国土地理院発行 1:25000 地形図を使ってデータが確認できること。
2.サミットは、その周辺の鞍部から少なくとも 150m 以上の高度差がなければなりません。
3.最終的には、マネジメントチームが提案された山頂データをリストに加えるかどうかを決定します。
というものです。
この中で2.の「鞍部」の定義が当初良く判らず参考になるサイトを探していたところ、こちらのサイトに詳しい例がありました。
簡単に言えば島の上に山がいくつか聳えていた時に海面の水位が低い場合には2つの山々が繋がって見えるのですが、ある水位になると独立した山になる点があり、この点を鞍部と呼ぶというものです。更にもう少し厳密な定義がないか探していたところ
というものに行き着きました。モース理論について詳細な説明は省きますが(というか説明できません。^_^;;)、Wikipediaの例にもあるように、例えば地形図の位置からその高度への関数f についてその勾配が0となる点を臨界点としそれが底点、鞍点、頂点であるか判別することでその位相的な性質を分析しようというものです。
実はこのような解析は3次元X線回折画像の解析や今回取り扱うGISのような分野では一般的に用いられるもののようで、断面を変化させていった時に領域がどのように変化するか領域木(Contour Tree)というグラフ構造で表現するライブラリまであることが判りました。
libtourtre: libtourtre: A Contour Tree Library
ご存知のように国土地理院からは日本全土の5m/10mメッシュの標高データをxml形式でダウンロードすることが可能です。 材料は揃ったので次は調理方法です。