2

我是R的初学者,我正在尝试从R语言的薄板样条图中提取网格格式的数据。基本上,我有一个来自英国各地的点数据集,其中包含特定日期的经度、纬度和降雨量。使用以下代码,我可以将此数据绘制到英国地图上:

dat <- read.table("~jan1.csv", header=T, sep=",")
names(dat) <- c("gauge", "date", "station", "mm", "lat", "lon", "location", "county", "days")
library(fields)
quilt.plot(cbind(dat$lon,dat$lat),dat$mm)
world(add=TRUE)

到目前为止,一切都很好。我还可以使用以下方法执行薄板样条插值 (TPS):

fit <- Tps(cbind(dat$lon, dat$lat), dat$mm, scale.type="unscaled")

然后我可以在我选择的网格比例上绘制曲面图,例如:

surface (fit, nx=100, ny=100)

这有效地为我提供了分辨率为 100*100 的网格数据图。所以这是我的问题:

  1. 如何从该网格数据集中提取数据(即实际值)以放入 excel 或 .txt 等文件中?

  2. 如何更改网格大小,以便网格以我选择的步骤从特定的 x 值(和 y 值)开始?

4

1 回答 1

1

有了predict可用的功能,典型的策略是使用类似的东西:

 rnglat <- range(dat$lat)
 rnglon <- range(dat$lon)
 xvals <- seq(rnglon[1], rnglon[2], len=100)
 yvals <- seq(rnglat[1], rnglat[2], len=100)
 griddf <- expand.grid(xvals, yvals)
 griddf$pred <- predict(fit, x=as.matrix(griddf) )

(由于Tps不使用公式接口并且predict.Krig似乎不使用newdata参数,因此我不会以适用于大多数回归问题的形式进行此操作。)如果您想将范围缩小到小于完整的范围范围或更改“网格线”的数量,然后修改seq参数。(使用fit0fields::predict.Krig 帮助页面上最后一个示例中构造的 -object 进行测试。)

于 2013-10-21T07:00:53.810 回答