Вычисление координат с использованием функции destPoint в R

#r #matrix #geospatial #google-earth

#r #матрица #геопространственный #google-Планета Земля

Вопрос:

У меня есть большой фрейм данных в R, состоящий из 13449 наблюдений по 62 переменным. Моя конечная цель — создать полигоны в Google Планета Земля для каждого из уникальных наблюдений Cellnames в моем фрейме данных. Насколько мне известно, я могу сделать это, только вычислив координаты для каждой переменной Cellnames в R, а затем передав это в KML / KMZ для построения графика. Чтобы сделать это, я намерен использовать функцию destPoint в пакете geosphere для вычисления каждой из координат в каждой ячейке.

Функция destPoint использует следующие входные переменные:

 destPoint(p, b, d)

where p = lat long in degrees
      b = bearing in degrees
      d = distance in meters
  

В моем фрейме данных у меня есть исходная широта по двум переменным и координаты (V1-V7) в матрице. Сложность заключается в том, что расстояние необходимо вычислять по диапазону значений для каждой ячейки, как указано ниже, которые хранятся в матрице с именем prach4.

prach4

 From    To
0       234
234     468
468     936
936     1170
1170    1638
1638    2106
2106    3042
3042    3978
3978    4914
4914    6084
6084    7020
7020    7956
7956    10062
10062   14976
14976   19890
19890   25038
25038   29952
29952   34866
34866   40014
40014   50076
50076   60000
  

Данные фрейма данных:

 Cellnames   Longitude  Latitude   V1    V2    V3   V4   V5    V6    V7
CE0001U21A1 -8.6091171 52.6937329 359.4 9.6   19.8  30  40.2  50.4  60.6
CE0001U21B1 -8.6091171 52.6937329 149.4 159.6 169.8 180 190.2 200.4 210.6
CE0001U21C1 -8.6091171 52.6937329 289.4 299.6 309.8 320 330.2 340.4 350.6
CE0001U21A2 -8.6091171 52.6937329 359.4 9.6   19.8  30  40.2  50.4  60.6
CE0001U21B2 -8.6091171 52.6937329 149.4 159.6 169.8 180 190.2 200.4 210.6
CE0001U21C2 -8.6091171 52.6937329 289.4 299.6 309.8 320 330.2 340.4 350.6
  

Чтобы помочь визуализировать проблему, я нарисовал то, чего я пытаюсь достичь.

Типичный макет ячейки

Это изображение ниже представляет собой единственную ячейку в моем фрейме данных. Для каждой ячейки существует 0-20 классов, где каждый класс представляет измерение расстояния от широты имени ячейки и длинной координаты, см. prach4 выше, класс 0 — от 0 м (широта и длинная ячейки) до 234 м, класс 1 — от 234 м до 468 м и так далее. Для каждого класса в каждой ячейке мне нужно вычислить граничные координаты, используя подшипники в V1-V7.

Если имеется 20 классов с 14 точками в каждом классе (8 в классе 0), то получается 274 пары координат длиной в широту на ячейку. С 13449 ячейками получается 3 685 026 пар координат поверх существующего фрейма данных, который составляет 5916096 байт! Должен ли core i7 с 8 ГБ оперативной памяти быть способен вычислять это?? При необходимости я могу сократить анализ до одного объекта в сети, что может значительно сократить требуемые вычисления.

Если бы вы могли мягко направить меня в направлении того, как рекурсивно вычислять эти точки для каждой ячейки, я был бы очень благодарен.

Комментарии:

1. пожалуйста, предоставьте свои данные в виде dput()

2. Привет, Локи, будет ли достаточно CSV? Я запустил dput для подмножества исходных данных, но я продолжаю получать исходный файл, я думаю, в этом весь смысл. В исходном файле содержится некоторая коммерчески конфиденциальная информация, которую я не хочу публиковать в Интернете. В CSV я изменил некоторые детали, то есть имена, бла-бла-бла. Если это работает, вот ссылка на образец данных: drive.google.com /…