#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 /…