トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

2地点の緯度・経度から距離を計算する

[系統解析のための色々]

2地点の緯度・経度から距離を計算する

 地理的な距離と系統的距離の関係を考える際に2地点間の距離を求めたいことがありますが、案外面倒なのでスクリプトにしてみました。入力は

地点名 緯度 経度
地点名 緯度 経度
地点名 緯度 経度
以下略

なファイルを用意して下さい。全地点間の距離を算出してCSVファイルに出力します。緯度・経度は度のみ・度,分・度,分,秒(区切り文字はカンマです。スペースを含んではいけません)のいずれかの形式で記述して下さい。いずれも小数点以下があってもなくても構いません。1ファイル内の記述形式は統一されている必要はありません。計算方法はKubota氏のrange.cを参考にさせていただきました。楕円体を考慮しているようです。一応、日本国内限定なら下記ページの結果との誤差は±5km以内には収まると思いますが、単純な計算なので精度は保証できません。それなりの精度が欲しい場合は国土地理院測地部サイト内の測量計算のページを使いましょう。

決まり文句

 例によって例のごとく内容は無保証なので要注意。このページの情報に従って何らかの損害が出ても補償できませんのであしからず。要するに自己の責任において実行してちょうだいねということです。

必要なもの

 スクリプトを実行するために必要。WindowsではActivePerlでOK。

スクリプト

からダウンロードして下さい。

使用方法

 入力ファイルが用意できたら

perl distcalc.pl < input_file_name > output_file_name

で指定したファイル名のCSVファイルが出力されます。同じ組み合わせを2回も計算してしまいますが、最近のPCなら十分な速度で計算できるでしょう。

履歴

最終更新時間:2006年11月22日 23時02分42秒