我有一个数据框,其中为笛卡尔坐标(x,y)指定了值(l),如以下最小工作示例所示。

set.seed(2013)
df <- data.frame( x = rep( 0:1, each=2 ),
                  y = rep( 0:1,  2),
                  l = rnorm( 4 ))

df
#   x y           l
# 1 0 0 -0.09202453
# 2 0 1  0.78901912
# 3 1 0 -0.66744232
# 4 1 1  1.36061149

我想使用raster包创建一个raster,但是我对文档的阅读并没有揭示一种简单的方法将数据以我拥有的形式加载到raster像元中。我想出了几种使用for循环的方法,但是我怀疑我缺少一种更直接的方法。

最佳答案

这是一种通过SpatialPixelsDataFrame的方法

library(raster)
# create spatial points data frame
spg <- df
coordinates(spg) <- ~ x + y
# coerce to SpatialPixelsDataFrame
gridded(spg) <- TRUE
# coerce to raster
rasterDF <- raster(spg)
rasterDF
# class       : RasterLayer
# dimensions  : 2, 2, 4  (nrow, ncol, ncell)
# resolution  : 1, 1  (x, y)
# extent      : -0.5, 1.5, -0.5, 1.5  (xmin, xmax, ymin, ymax)
# coord. ref. : NA
# data source : in memory
# names       : l
# values      : -0.6674423, 1.360611  (min, max)
help('raster')描述了许多从不同类的对象创建栅格的方法。

关于r - 如何从R中的数据帧创建栅格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19627344/

10-11 13:10