[英]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.