我正在使用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")
答案 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)