Функция r, чтобы найти все геолокации в пределах определенного радиуса

Я пытаюсь написать функцию, которая идентифицирует все почтовые индексы, которые находятся в пределах 10 км от станции мониторинга окружающей среды.

Например, у меня есть около 8000 геокодированных почтовых индексов:shortpostcodes

|   | postcode | suburb     | state | longitude | latitude |
|---|----------|------------|-------|-----------|----------|
|   | <chr>    | <chr>      | <chr> | <dbl>     | <dbl>    |
| 1 | 2065     | Crows Nest | NSW   | 151.20    | -33.83   |
| 2 | 2095     | Manly      | NSW   | 151.29    | -33.80   |

И около 70 геокодов станции мониторинга:shortstations

|     | location  | longitude | latitude  |
|-----|-----------|-----------|-----------|
|     | <chr>     | <dbl>     | <dbl>     |
| 1   | Lindfield | 151.1500  | -33.78278 |
| 2   | Rozelle   | 151.1625  | -33.86583 |
| 3   | Sydney    | 151.1956  | -33.87250 |

Я пытаюсь использовать distVincentyEllipsoid функция от geosphere Пакет для расчета расстояния между координатами. Например:

distVincentyEllipsoid(shortpostcodes[1, c(4,5)], shortstations[1, c(2,3)])
# [1] 6990.635

Функция должна возвращать новую таблицу с колонкой, в которой перечислены все почтовые индексы <10 км от станции мониторинга, и колонкой с названиями всех станций в радиусе 10 км.

Я не уверен в самом эффективном способе езды на велосипеде distVincentyEllipsoid по всем геолокациям станции мониторинга для каждого почтового индекса - я пытался использовать apply() без удачи

0 ответов

Другие вопросы по тегам