R:处理光栅包中的 sf 对象

标签 r r-raster sf

以前我使用 raster::cropraster::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") 将对象返回到 Spatial* 对象.

我假设这个问题适用于所有 raster职能?我是否忽略了某些东西,或者只是 raster 的情况?包(还)不能与 sf 一起使用对象?

最佳答案

为了将来引用,它现在可以工作了!这是来自 ?crop 的一些稍作修改的示例代码, 使用 测试光栅 version 2.6-7已于 2017-11-13 发布。

library(raster)
library(sf)

r <- raster(nrow=45, ncol=90)
r[] <- 1:ncell(r)

# crop Raster* with sf object
b <- as(extent(0, 8, 42, 50), 'SpatialPolygons')
crs(b) <- crs(r)
b <- st_as_sf(b) # convert polygons to 'sf' object
rb <- crop(r, b)

# mask Raster* with sf object
mb <- mask(r, b)

关于R:处理光栅包中的 sf 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42927384/

相关文章:

r - 使用时间间隔计算另一个数据帧的平均值

R 中速率变量的回归

r - 无法使用 R 将大型栅格转换为多边形

r - 从数据帧创建 sf 多边形

r - 根据其他列表中的列名匹配从列表中填充矩阵

r - 在 data.table fread 中抑制 wc -l

R如何控制颜色条/图例的间距

r - 在Rastervis中使用gplot方法时如何去除背景灰色?

r - 如何根据列设置 alpha?

r - 将有关四键的信息加入到平铺 shapefile