簡體   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