![](/img/trans.png)
[英]Rough thin-plate spline fitting (thin-plate spline interpolation) in R with mgcv
[英]How to export data from a Thin Plate Spline (TPS) plot in R language?
我是R的初学者,我正尝试从R语言的Thin Plate Spline图中以网格格式提取数据。 基本上,我有一个来自英国各地的数据集,其中包含特定日期的经度,纬度和降雨量。 使用以下代码,我可以将此数据绘制到英国地图上:
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的网格数据图。 所以这是我的问题:
如何从该网格化数据集中提取数据(即实际值)以放入excel或.txt等文件中?
如何更改网格大小,使网格以我选择的步骤从特定的x值(和y值)开始?
在具有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
参数。 (使用在上一个示例中在fields :: predict.Krig帮助页面上构造的fit0
测试。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.