将栅格剪辑到 sf 集合中的多边形 [R sf]

Clip raster to polygons in sf collection [R sf]

我想使用一个简单的多边形要素集合来剪辑光栅,这样我最终得到的光栅剪辑与我的 sf 集合中的多边形一样多。然后我想将每个光栅剪辑保存为 jpg。这是一个可重现的例子:

library(sf)
library(raster)
austria1 <- getData('GADM', country='AUT', level=1)
austria1 <- st_as_sf(austria1)
climate <- getData('worldclim', var='bio', res=2.5)

我想将气候剪辑到 austria1 的九个多边形,所以我最终得到了 9 个光栅剪辑。然后我想将这9个光栅剪辑保存为我工作目录中的jpg文件。

感谢您的帮助!

马克

示例数据

library(sf)
library(raster)
austria <- getData('GADM', country='AUT', level=1)
austria <- st_as_sf(austria)
climate <- getData('worldclim', var='bio', res=2.5)
climate <- climate[[1]]  # just the first layer

一个for循环

for (i in 1:nrow(austria)) {
    a <- austria1[i, ]
    fn <- tolower(paste0(a$NAME_1, ".jpg"))
    print(fn); flush.console()
    x <- crop(climate, a)
    y <- mask(x, a)
    jpeg(fn)       
    plot(y)
    dev.off()
}

您可能希望通过将一些默认参数更改为 jpeg

来改进 jpg