我有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个向量,它们为每个深度值分配纬度和经度。
谢谢。
答案 0 :(得分:1)
假设GPS
数据中的连续路点之间的速度恒定(均匀速度和恒定方向),我们可以单独执行线性插值{{ 1}}和Lat
使用Lon
中的approx
:
stats
在此用法中,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
范围之外的DEPTH
中的datetime
的内插值已分配GPS
。有关处理输入范围之外的插值的其他方法,请参阅NA
。
使用您的数据,结果是:
?approx