Я заинтересован в создании уникального идентификатора для пространственных точек, которые основаны на непрерывности пространства и времени (допустим, это будут полигоны).
Мой DF:
Date LonR LatR n
1 2016-06-20 00:00:00 440000 5610000 6
2 2016-06-20 00:00:00 490000 5590000 60
3 2016-06-20 00:00:00 500000 5580000 24
Дата -спифи c дата и время округляются до каждых 2 минут LonR, LatR - округленные UTM координаты (блоки 100 км2) n - количество событий в каждом поле за указанное c время Я хотел бы создать новый столбец с идентификатором, который будет основан на времени и расстоянии. Итак, я создал условие:
list <- 1:nrow(df)
for (i in list) {
temp_date <- df$Date[i]
temp_Lon <- df$LonR[i]
temp_Lat <- df$LatR[i]
df$DateDif <- temp_date-df$Date
df$LonDif <- temp_Lon-df$LonR
df$LatDif <- temp_Lat-df$LatR
df$PolygonID <- if_else(df$DateDif<=3600 & df$DataDif>=-3600 &
df$LonDif <=10000 & df$LonDif>=-10000 &
df$LatDif <=10000 & df$LatDif>=-10000, 1, 0)
Условие описывает необходимость включать только точки, которые находятся в пределах 10х10 км и 1-часовой период времени. Затем код должен проверить это условие для другого временного шага. На данный момент я не знаю, что делать дальше ... Мне нужен код для поиска других точек и классификации его для указания c идентификатора многоугольника (1, 2, 3 .. et c.) Желаемые результаты:
Date LonR LatR n DataDif LonDif LatDif PolygonID
1 2016-06-20 00:00:00 440000 5610000 6 0 secs 0 0 1
2 2016-06-20 00:00:00 490000 5590000 60 0 secs 0 0 1
3 2016-06-20 00:00:00 500000 5580000 24 0 secs -10000 10000 1
4 2016-06-20 00:02:00 480000 5590000 84 -11120 secs 10000 0 2
5 2016-06-20 00:06:00 480000 5590000 86 -360 secs 80000 0 3
6 2016-06-20 00:08:00 490000 5580000 50 -480 secs 0 10000 1
Самое сложное, что явления, с которыми я имею дело, движутся. Таким образом, полигоны должны включать его изменение во времени, но все же с указанным условием, чтобы не включать другие явления, которые будут близки. Так что, если феномен длился 10 часов и продвинулся на 500 км, я все еще хотел бы, чтобы его ID полигона = 1, если он непрерывен во времени и пространстве. Я понимаю, что это сложный вопрос.
Заранее спасибо.