Interpolate coordinates at unrecorded timestamps

前端 未结 1 863
深忆病人
深忆病人 2021-02-11 00:01

I have a gps units that records coordinates at rather random intervals (sometimes every 12 sec sometimes every 6 sec). There\'s another instrument that measures particulate matt

1条回答
  •  -上瘾入骨i
    2021-02-11 00:13

    Since your data is a time series, you're better off using na.approx(...) in package zoo.

    df$date.time <- with(df,as.POSIXct(paste(date,time),format="%m/%d/%Y %H:%M:%S"))
    full.time    <- with(df,seq(date.time[1],tail(date.time,1),by=1))
    library(zoo)
    df.zoo <- zoo(df[,3:4],df$date.time)        # convert to zoo object
    result <- na.approx(df.zoo,xout=full.time)  # interpolate; result is also a zoo object
    head(result)
                             X        Y
    2014-04-06 09:32:00 325695 672878.0
    2014-04-06 09:32:01 325695 672876.2
    2014-04-06 09:32:02 325695 672874.5
    2014-04-06 09:32:03 325695 672872.8
    2014-04-06 09:32:04 325695 672871.0
    2014-04-06 09:32:05 325695 672869.2
    

    There is also an na.spline(...) function if you need continuous derivatives at the grid points.

    0 讨论(0)
提交回复
热议问题