我正在使用KrigingST进行空间时间预测,但是我指出需要在其中创建用于预测的网格,而且我在某种程度上混淆了如何制作网格。 我的数据具有Station_ID,经度,纬度,时间和路况 时间从2018-01-01 01:00到2018-04-30 09:00 和6个地点。 我创建了STFDF对象,需要将预测应用到时间段2018-05-01 09:00到2018-05-30 09:00的相同位置和附近的位置
这是我的数据示例
Station_ID Latitude Longitude Traffic Time
1 -80.424 40.4242 54 2018/01/01 01:00
2 -80.114 40.4131 30 2018/01/01 01:00
3 -80.784 40.1142 12 2018/01/01 01:00
4 -80.132 40.5346 22 2018/01/02 01:00
5 -80.667 40.2478 31 2018/01/02 01:00
6 -80.975 40.5368 53 2018/01/02 01:00
以下是我的简单代码:
STFDF_Data <- stConstruct(MyData,space=c("Longitude", "Latitude"),time="Time", SpatialObj=SpatialPoints(MyData[,c("Longitude", "Latitude")]))
STFDF_Data <- as(STFDF_Data, "STFDF")
proj4string(STFDF_Data) <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
我使用variogramST计算经验时空变异图
v <- variogram(Traffic_Flow_~Latitude+Longitude,STFDF_Data[!is.na(STFDF_Data[,"2018-01-01","Traffic"]$Traffic),"2018-04-30","Traffic"])
我使用可分离模型计算经验时空变异图
sepVgm <- vgmST(stModel = "separable",space = vgm(10, "Exp", 400, nugget = 0.1), time = vgm(10, "Exp", 1, nugget = 0.1), sill = 20)
sepVgm_fit <- fit.StVariogram(model= sepVgm,object=v )
然后创建时间网格和空间网格: 时间网格:
[![tgrd<- seq(as.POSIXct('2018-05-01 01:00'), as.POSIXct('2018-05-30 09:00'), length.out = 20)][1]][1]
空间网格(不起作用) 我想考虑附近的16个空间位置和其他位置,但不确定如何选择序列号,我将它们放在-80°W和-70°W之间,以及32°N和43°N之间。 然后将它们转换为SpatialPoints,并确保预测网格的坐标参考系统(CRS)与观测数据的坐标参考系统相同。
sgrd <- expand.grid(Longitude = seq(-80, -70, length = 10),
Latitude = seq(32, 43, length = 10)) %>%
SpatialPoints(proj4string = CRS(proj4string(STFDF_Data)))
# then combine sgrd and tgrd to construct an STF object for space-time prediction grid.
DE_pred <- STF(sp = sgrd, # spatial part
time = tgrd) # temporal part
然后使用KrigingST进行了预测
pred <- krigeST(Traffic~1 , data=STFDF_Data, modelList=sepVgm_fit, newdata=DE_pred)
当我绘制预测时,它给了我这个我认为不准确的信息,因为空间网格。
我试图解释我做得越短越好,感谢任何建议。
我的预测图并显示如下图