如何在 R 中将 data.frame 转换为 SpatialPixelsDataFrame

How to convert data.frame to SpatialPixelsDataFrame in R

我有一个标有纬度 (y) 和经度 (y) 的数据集。

x           y           pH      EC      RSC  SAR
644602.7184 3295635.709 7.82    1.069   6.8  2.612316328
644219.281  3293883.389 7.45    2.27    6    2.40812669
644368.6088 3295296.452 7.41    1.17    7.2  1.240347346
646050.5728 3297548.156 7.8     0.971   4.5  1.589470393
644641.7003 3295115.255 7.87    0.708   4.4  0.875069715
644764.8507 3294939.506 8       0.634   4.1  2.154375393
644885.5937 3295445.407 7.83    1.13    7.1  0.951290419

我想将其转换为 SpatialPixelsDataFrame。我正在使用以下代码:

data <- read.csv("Try_data.csv", header = T)
coordinates(data) <- ~x+y
proj4string(data) <- CRS("+proj=utm +zone=43 ellps=WGS84")

grid = spsample(data, type = "regular", cellsize = c(29.11785674, 29.11785674)) 
gridded(grid) = TRUE 
grid2 <- as(grid, "SpatialPixelsDataFrame")

但是在 grid2 中,data.frame 的观测值是 0。 0 个变量。我想要 pH、EC、RSC、SAR 参数应该在 grid2 中的 data.frame 中。怎么做?

您似乎想从不规则的点数据创建规则的栅格。您可以使用 raster::rasterize 之类的函数,也可以使用某种类型的插值。参见例如raster::interpolate 及其使用的包中的方法,例如 gstat