如何使用搜索 window select R 中光栅的一部分?

How to select a section of a raster in R using a search window?

我想 select 来自光栅的一组像素。

下面是一个可重现的例子:

library(terra)
r <- terra::set.ext(rast(volcano), terra::ext(0, nrow(volcano), 0, ncol(volcano)))
plot(r)

想法是从 upper/left 尺寸开始,使用 10 像素的行和列(总共 100 像素)作为框 window 搜索。

为此我想获取最小和最大范围(使用 terra 包)如下代码:

w_10 <- c(xmin(terra::ext(r)),xmin(terra::ext(r))+10,ymin(terra::ext(r)),ymin(terra::ext(r))+10)

在我想象一些迭代之后,window 搜索将遍历所有光栅长度并且应该 return 个光栅。

毕竟objective是为了得到不同组块的光栅尺寸,如下图:

您可以使用标准索引

library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)

w10 <- r[1:10, 1:10, drop=FALSE]

或使用crop

xmin <- xmin(r)
ymax <- ymax(r)
rs <- res(r)

n <- 10
xmax <- xmin + n * rs[1] 
ymin <- ymax - n * rs[2]

x <- crop(r, c(xmin, xmax, ymin, ymax))