JL1NIE ’s blog

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

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

Amazonからメモリが届くのを待つ間に解析結果の表示方法の検討を進めることにしました。やはりGoogle Map上にすべての情報が載っているのが一番便利だろうということでGoogle Map APIを急遽勉強。世の中Google Mapの恩恵に預かっている方も多く、役に立つ参考情報がそこら中にあります。あっというまに解析の結果得られた150mルールを満たす頂点をマーカーで表示することができました。

また解析結果の妥当性を示すために、その150m以上の高度差の起点となる鞍点(サドル)についても表示し、Google Map上で対応関係がわかるように表示します。更に現在のSummit Listとの差がわかるようにマーカには高度と座標の緯度・経度を表示した上で、sota.org.ukから入手した最新版のSummit Listと比較し、頂上の位置の座標が数十メートル以内であれば認定済みのサミットとしてマーカーに山岳名を表示するようにしました。

そうこうしているうちにAmazonからメモリが到着。実メモリ24GBという個人マシンにしてはずいぶん無駄な投資ですが、これでやっと160Km四方の解析をすることができました。メモリさえあれば、このような広範なエリアでも5分程度で解析することができるようです。

最後に日本全国の解析対象となるメッシュを地図を見ながらリストアップします。大きな山塊がなるべく一つの解析対象になるように選択しています。解析対象とする領域の最北西端のメッシュ番号と領域の幅と高さを記載したリストを、pythonで記述した簡易Makefile作成コマンドにかけてMakefileを作成します。

週末出かける前にmakeコマンドを実行しておいたところ、約5時間程度でほぼ全国の解析結果が得られました。

ここまでの実験のプログラムや解析結果についてはGithubにおいてあります。やっつけで作ったため、プログラムが汚い点はご容赦ください。プログラムはまだ安定稼働していないため、まずはサンプルの解析結果だけでもご覧下さい。

※zipファイル展開後main.htmlをfirefox/chrome等のブラウザでご覧下さい。ブラウザの表示が重いため、かなりマシンパワーが必要です。

f:id:CentralAttack:20160208222744p:plain

今後の課題として以下が残っています。お手伝いいただける方がいらっしゃいましたら、twitter等でご一報いただけると大変助かります。

・解析結果のデータがあまりに多いことからブラウザでの表示が重くなっています。Ajaxを用いて位置情報を動的に読み込み表示するような方法を検討しています。

アルゴリズムの性質上、領域の端でノイズがでます。複数の領域をオーバラップして解析することで対応できないか検討したいと思っています。

・解析したデータ自体の検証。SOTAのリストとの相違点がなぜ発生しているのか、このアルゴリズムで問題ないのか検証したいと思います。