为什么在尝试将CRS分配给R中的栅格时出现错误?

时间:2013-10-29 18:45:03

标签: r spatial raster

我正在使用R中的栅格包创建栅格,我想明确指定栅格的坐标参考系统(CRS),以便在我使用writeRaster()将对象保存到地图时将其编码到地理位置一份文件。我试图在raster()函数的帮助文件中指定CRS,但它返回一个未使用的参数错误,如下面的最小工作示例所示。

为什么会失败?如何为栅格设置CRS?

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

spg <- df
coordinates(spg) <- ~ x + y
gridded(spg) <- TRUE

rasterDF <- raster(spg, crs="+proj=longlat +datum=WGS84")
# Error in .local(x, ...) : 
#   unused argument (crs = "+proj=longlat +datum=WGS84")

1 个答案:

答案 0 :(得分:3)

您可以在创建栅格对象之前使用proj4string(spg) <- "your CRS"将投影设置为空间数据框。投影信息应该转移到新创建的栅格图层。

这对我有用:

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

spg <- df
coordinates(spg) <- ~ x + y
gridded(spg) <- TRUE

# Add the projection information to spg
proj4string(spg) <- "+proj=longlat +datum=WGS84"

rasterDF <- raster(spg)

# Check that it worked
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. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
# data source : in memory
# names       : l 
# values      : -0.6674423, 1.360611  (min, max)