2017-06-15 12 views
0

Netlogoのgis拡張子を使用していて、km単位のエージェント間の距離を計算しようとしています。 gis:envelope-of私はエージェントの位置を度(緯度と経度)で得ることができるので、Haversineの公式を使用して距離を計算します。私の基本的なGIS-シェープファイルの投影が、私は2つの代表的なポイントのために書かれたものWGS 84Haversine式がNetlogoで不正確な結果を返す

で次のようである:同じ式で適用されている間は、11.5キロの距離を生み出す

to haversine 

let lata 31.8930795682288 
let longa 36.0898369172224 
let latb 31.9964498913126 
let longb 36.0318329821497 


let rad (pi/180) 



let result acos (cos (rad * lata) * cos(rad * (latb)) + sin (rad * (lata))* sin(rad * (latb)) * cos(rad * (longa - longb))) * 6371 


print result 


end 

(radiの代わりにRADIANS式を使用して)12.73 km、このウェブサイトhttp://www.movable-type.co.uk/scripts/latlong.htmlが確認する数値が表示されます。

ここで間違っているのは何ですか?前もって感謝します。

+0

このHTTPでなければなりません

let result acos(sin(rad * lata) * sin(rad * latb) + cos(rad * lata) * cos(rad * latb) * cos(rad * (longa - longb))) * 6371 

を使用しますbluemm.blogspot.de/2007/01/excel-formula-to-calculate-distance.html(GISと元の質問に投稿されたリンクは、このExcel式と同じ結果になります) – derheine

答えて

2

resultを計算する式が正しくありません。あなたはsincosを逆転したようです。 //:また、私が読んだのドキュメント(例えばcosacos)によると、netlogo三角関数は、度を使用するので、計算はここ

let result rad * acos(sin(lata) * sin(latb) + cos(lata) * cos(latb) * cos(longa - longb)) * 6371 
+0

私にお答えいただきありがとうございます!しかし、これは13.18の結果をもたらします。これはどちらか正しいですか...混乱! – derheine

+0

私はnetlogoをインストールしていないので、実際にテストすることはできません。 Pythonへの翻訳は、期待通りに12.73を与えます。 –

+0

私はちょうどRを試しました、それはまた12.73を与える - これはnetlogo特有の問題かもしれませんか? – derheine

関連する問題