R-基于空间和时间连续性的ID列

时间:2020-01-27 10:29:26

标签: r dataframe polygon utm continuity


我有兴趣为基于空间和时间连续性的空间点创建唯一的ID(假设它将是多边形)。

我的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

日期-特定的日期和时间四舍五入为每2分钟
LonR,LatR -圆形的UTM坐标(每盒100 km2)
n -特定时间内每个框中的事件数

我想创建一个新的ID为基础的列,该列将基于时间和距离。所以我创造了条件:

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)

条件描述只需要包括10x10 km框和1h时间范围内的点。然后代码应在另一时间步长检查此条件。 此时,我不知道下一步该怎么做...我需要代码来搜索其他点并将其分类为特定的多边形ID(1、2、3 ..等)

所需结果:

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。
我意识到这是一个难题。

谢谢。

0 个答案:

没有答案