以前我使用raster::crop和raster::mask使用 Spatial* 类的 shapefile,使用rgal::readOGR.
我只是在“升级”我的脚本以sf用于读取和操作多边形。
光栅::裁剪
raster::crop期望一个“范围”对象作为第二个参数。到目前为止,这是从 Spatial* 对象中自动提取的。所以我只能这样做raster::crop(raster, polygon)。
为了让它与一个sf对象一起工作,我可以称之为raster::crop(raster, as.vector(st_bbox(polygon)))一个丑陋的解决方法。
光栅::掩码
由于raster::mask显然期望Raster* object or a Spatial* object唯一的解决方案是sf使用as("Spatial").
我假设这个问题适用于所有raster功能?我是否忽略了某些东西,或者只是raster包(还)不能与sf对象一起使用?