繁体   English   中英

如何使用R语言从薄板样条(TPS)图中导出数据?

[英]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的网格数据图。 所以这是我的问题:

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

  2. 如何更改网格大小,使网格以我选择的步骤从特定的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM