-1

我有 2 个数据框:1 是具有相关日期时间的 GPS 位置序列(POSIXct)

GPS <- data.frame(Lat=c(58.65209, 58.65183, 58.65142, 58.65129, 58.65126, 58.65124, 58.65122, 58.65119, 58.65117, 58.65115),
                  Lon=c(-3.178559, -3.177934, -3.177277, -3.177536, -3.177494, -3.177713, -3.177806, -3.177899, -3.177991, -3.178084), 
                  datetime=c("2016-10-01 16:23:59 GMT", "2016-10-01 16:31:59 GMT", "2016-10-01 16:39:59 GMT", "2016-10-01 16:47:59 GMT", "2016-10-01 16:55:59 GMT", "2016-10-01 17:03:59 GMT", "2016-10-01 17:11:59 GMT", "2016-10-01 17:19:59 GMT", "2016-10-01 17:27:59 GMT", "2016-10-01 17:35:59 GMT"))

GPS$datetime <- as.POSIXct(as.character(GPS$datetime))

另一个是具有相关日期时间(POSIXct)的深度序列。

DEPTH <- data.frame(Depth=c(0.0, 0.1, 0.0, 0.0, 0.1, 1.5, 1.7, 1.7, 1.4, 1.5, 1.8, 2.1, 2.3, 1.7, 2.0, 2.6, 2.2, 2.1, 3.4, 3.3), 
                    datetime=c("2016-10-01 16:22:56 GMT", "2016-10-01 16:23:06 GMT", "2016-10-01 16:23:16 GMT", "2016-10-01 16:23:59 GMT", "2016-10-01 16:24:52 GMT", "2016-10-01 16:25:24 GMT", "2016-10-01 16:32:40 GMT", "2016-10-01 16:32:51 GMT", "2016-10-01 18:45:30 GMT", "2016-10-01 18:45:40 GMT", "2016-10-01 18:46:54 GMT", "2016-10-01 18:47:04 GMT", "2016-10-01 18:47:14 GMT", "2016-10-01 18:47:25 GMT", "2016-10-01 18:51:03 GMT", "2016-10-01 18:51:14 GMT", "2016-10-01 18:51:24 GMT", "2016-10-01 18:54:11 GMT", "2016-10-01 18:54:21 GMT", "2016-10-01 18:54:32 GMT"))

DEPTH$datetime <- as.POSIXct(as.character(DEPTH$datetime))

对于每个深度位置,我想根据来自位置数据帧的内插轨迹何时建议它应该分配一个位置(纬度和经度),即,如果位置从 A 点转到 B 点,那么沿该线的哪个点做深度数据谎言,假设点之间的速度均匀,给定它的日期时间。

最终产品将是数据帧中的 2 个向量,它们为每个深度值分配一个纬度和一个经度。

谢谢你。

4

1 回答 1

1

假设数据中连续路点之间的速度恒定(一致的速度恒定的方向),我们可以单独执行线性插值并使用from :GPSLatLonapproxstats

DEPTH$Lat <- approx(x=GPS$datetime, y=GPS$Lat, xout=DEPTH$datetime, method="linear")$y
DEPTH$Lon <- approx(x=GPS$datetime, y=GPS$Lon, xout=DEPTH$datetime, method="linear")$y

datetime在这种用法中,为inDEPTH范围之外的datetimeinGPS分配了插值NA。有关?approx处理超出输入范围的插值的其他方法,请参阅。

使用您的数据,结果是:

print(DEPTH)
##   Depth            datetime      Lat       Lon
##1    0.0 2016-10-01 16:22:56       NA        NA
##2    0.1 2016-10-01 16:23:06       NA        NA
##3    0.0 2016-10-01 16:23:16       NA        NA
##4    0.0 2016-10-01 16:23:59 58.65209 -3.178559
##5    0.1 2016-10-01 16:24:52 58.65206 -3.178490
##6    1.5 2016-10-01 16:25:24 58.65204 -3.178448
##7    1.7 2016-10-01 16:32:40 58.65179 -3.177878
##8    1.7 2016-10-01 16:32:51 58.65179 -3.177863
##9    1.4 2016-10-01 18:45:30       NA        NA
##10   1.5 2016-10-01 18:45:40       NA        NA
##11   1.8 2016-10-01 18:46:54       NA        NA
##12   2.1 2016-10-01 18:47:04       NA        NA
##13   2.3 2016-10-01 18:47:14       NA        NA
##14   1.7 2016-10-01 18:47:25       NA        NA
##15   2.0 2016-10-01 18:51:03       NA        NA
##16   2.6 2016-10-01 18:51:14       NA        NA
##17   2.2 2016-10-01 18:51:24       NA        NA
##18   2.1 2016-10-01 18:54:11       NA        NA
##19   3.4 2016-10-01 18:54:21       NA        NA
##20   3.3 2016-10-01 18:54:32       NA        NA
于 2016-11-10T15:18:17.533 回答