2

我正在使用 R 中的 raster 包创建栅格,并且我想明确指定栅格的坐标参考系 (CRS),以便在我使用 writeRaster() 将对象保存到文件时将其编码到 geotif 中。我试图按照 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")
4

1 回答 1

4

您可以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)
于 2013-10-29T19:10:31.953 回答