найти места в пределах определенного расстояния в г

У меня есть набор данных с привязкой к сетке, данные которого доступны в следующих местах:

lon <- seq(-179.75,179.75, by = 0.5)
lat <- seq(-89.75,89.75, by = 0.5)

Я хотел бы найти все точки данных, которые находятся в пределах 500 км от местоположения:

mylat <- 47.9625
mylon <- -87.0431

Я стремлюсь использовать пакет геосферы в R, но метод, который я написал в настоящее время, кажется не очень эффективным:

require(geosphere)
dd2 <- array(dim = c(length(lon),length(lat)))
for(i in 1:length(lon)){
  for(ii in 1:length(lat)){
    clon <- lon[i]
    clat <- lat[ii]
    dd <- as.numeric(distm(c(mylon, mylat), c(clon, clat), fun = distHaversine))
    dd2[i,ii] <- dd <= 500000
  }
}

Здесь я перебираю каждую сетку в данных и нахожу расстояние менее 500 км. Затем я сохраняю переменную с TRUE или FALSE, которую затем могу использовать для усреднения данных (другая переменная). Из этого метода я хочу матрицу с ИСТИНА или ЛОЖЬ для мест в пределах 500 км от показанных значений широты и долготы. Есть ли более эффективный способ сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос