私はこのエラーが出る ".pointsToMatrix(p1)におけるエラー:緯度> 90"。 誰もがなぜ解決する方法を説明できますか?
library(geosphere)
distHaversine(c(4,52), c(13,52))
# [1] 616422
distHaversine(c(4,52), c(1,91))
# Error in .pointsToMatrix(p2) : latitude > 90
あなたが唯一の受け入れ範囲内の座標でdistHaversine
を供給することにより、この問題を解決することができます:
エラーは、緯度がスコープ外である、90以上の値しまったことを示しています。
Iは にループの内側、RでdistHavrsine関数を使用しようとしているいくつかの緯度と経度の間の距離が数百行の 座標計算します。距離が50未満 メートルであれば(...)私はそれが
が簡単に数百行の距離行列を計算distm
機能を見て、持っているそれらの行を記録したい(つまり、ループなし)。既定ではdistHaversine
が使用されます。例えば、65万メートルその後、近いデータフレームの行を取得します
df <- read.table(sep=",", col.names=c("lon", "lat"), text="
4,52
13,52
116,39")
(d <- distm(df))
# [,1] [,2] [,3]
# [1,] 0 616422 7963562
# [2,] 616422 0 7475370
# [3,] 7963562 7475370 0
d[upper.tri(d, T)] <- NA
(idx <- which(d < 650000, arr.ind = T))
# row col
# [1,] 2 1
cbind(df[idx[, 1], ], df[idx[, 2], ])
# lon lat lon lat
# 2 13 52 4 52
は([半正矢を使用して2つの異なるデータフレーム間の最も近い距離を見つける方法]小さな再現性の例にの – akrun
が重複する可能性を提供することを検討してくださいhttps://stackoverflow.com/questions/44608687/how-to-find-the-nearest-distance-between-two-different-data-frames-using-haversi) –