JL1NIE ’s blog

趣味のアマチュア無線やプログラミングについて徒然と。

山岳リストの自動生成(その後)

山岳リストの自動生成ですが、その後SOTA-MLのメンバの方々からも貴重なご意見をいただき改良を重ねています。以下が最新の結果です。

f:id:CentralAttack:20160214191614p:plain

地図の横に結果のリストを並べpanToで指定されたマーカーを中心に移動できるようにしました。リストで赤色が候補の山です。以前はエリア番号と通番で名前をつけていたのですが、解析結果が変わると番号ズレが起きてしまうので山の位置のグリッドロケータで名前をつけることで一意な名前がつくようにしています。青色が公式リストに載っている山、緑色(地図上のマーカーは黄色)は、公式リストにある山で他に見つかった更に高い山により候補とならなくなってしまったものです。名称の横には鞍点(地図上では半透明のマーカ)との標高差が記載されています。見えない機能ですが重要な機能として解析したSummitListを本家のリストに準じた形式でCSVで保存する機能も強化しています。

また赤色の枠がこのエリアを解析する際に実際に解析を実行したエリアで、これより一回り小さい青色の枠の中にあるピークだけを候補として採用(鞍点は青色枠よりも外にあっても構わない)することで境界端のノイズを減らしています。こちらを解析するのに自宅の環境で2分ちょっと、メモリは24GByteでギリギリです。

ご覧のように設計ミスで解析結果を捨てるエリアがとても多くなっています。n x mのエリアの解析をする際に、2(n+m)+4個の周辺の接するメッシュ(サイズは1/4)を増やしているのですが2x2でやっと解析結果の得られる方の面積が大きくなり元がとれます。3x3以上ぐらいないと無駄が多いのですが、このサイズではメモリにのりません。適当に作ると失敗する好例となってしまいました。 

また新たな懸念点が見つかっています。国土地理院の5mメッシュと10mメッシュでは標高データに誤差があることです。国土地理院電子国土Webの標高値(画面下の黒いタブをクリックすると標高値が表示されます)は5mメッシュ(レーザ計測)の値が用いられているため、こちらも同じ5mメッシュで解析した方が地理院地図と対比という意味は便利です。10mメッシュとは数mと微妙な誤差なのですが、その誤差で万が一ピークが変わってしまうと他のピークが候補から外れたりと解析結果に大きな影響を及ぼす可能性があります。プログラムは5mメッシュでも解析できるように作っているのですが、データ量が一気に4倍になるので、また新たな問題が発生する可能性が高いです。少なくとも上のようなミスをしている間は手が出せませんねえ。とても地味ですがbigdataなので取り扱いには苦労します。

今後の予定ですが、確認作業で必要になる国土地理院地図へのリンクや地図画像の埋込み、Googleのreverse geocodingによる住所標示の埋め込みといった作業を優先します。その上で全国で解析を実行し結果をマージし、早めに皆さんにご覧いただける全国版リストを作りたいと思います。

またプログラムについては解析部分とHTMLやJavascriptを生成する部分を完全に分離し後者についてはpythonで作ることで様々な環境で実行できるようにしたいと思います。