在R中覆盖shapefile和rasterlayer?

在R中覆盖shapefile和rasterlayer?,r,overlay,shapefile,rasterize,R,Overlay,Shapefile,Rasterize,我有一个光栅图层,上面有来自墨西哥北部、加拿大部分地区和美国大陆的气候数据。我试图将气候数据限制在美国大陆的区域内。要做到这一点,我认为导入美国大陆地图并用我的光栅数据覆盖它会很容易(当然,这比我想象的要困难得多)。到目前为止,我已经使用rgdal库导入了一个shapefile,其中包括美国大陆地图和州分区。现在,我想将其转换为光栅层,以便最终可以将其与我的初始气候光栅层覆盖。这是我正在使用的代码: setwd ("C:/Climate_data/USA map") ogrInfo(".", "

我有一个光栅图层,上面有来自墨西哥北部、加拿大部分地区和美国大陆的气候数据。我试图将气候数据限制在美国大陆的区域内。要做到这一点,我认为导入美国大陆地图并用我的光栅数据覆盖它会很容易(当然,这比我想象的要困难得多)。到目前为止,我已经使用
rgdal
库导入了一个shapefile,其中包括美国大陆地图和州分区。现在,我想将其转换为光栅层,以便最终可以将其与我的初始气候光栅层覆盖。这是我正在使用的代码:

setwd ("C:/Climate_data/USA map")
ogrInfo(".", "USA_mainland_states")
usa_state = readOGR(dsn=".", layer="USA_mainland_states")

##Convert to Raster 
r_usa_state <- raster()
extent(r_usa_state) <- extent(usa_state)
rasterize(usa_state,r_usa_state, fun='last')
overlay (r_usa_state, sms_av, fun='mask')
sms\U av
是气候光栅层(103936个元素,823.3 kb)

此外,当我这样做时:

hasValues(r_usa_state)
我得到:

FALSE

我做错了什么??任何建议都将不胜感激

如果我是正确的,您正在尝试将光栅裁剪或剪裁到多边形。这可以通过
光栅
软件包中的
掩模
功能实现。另请参见问答。您没有使用
光栅化
覆盖
返回的值执行任何操作。R函数通过返回值来工作。嗨!是的,谢谢。我补充说:rHi,谢谢你的评论。我尝试使用掩码,但出现以下错误:compareRaster(x,mask)中的错误:不同的数字或列编辑您的问题,向我们显示错误消息(以及导致错误的行),如果是范围错误,则打印相关对象的范围,并向我们显示。将R代码放入脚本中,剪切并粘贴问题中运行它的成绩单。
FALSE