我有一个 1 公里分辨率的 Spatraster 系列,覆盖了整个地球。 我想将 spatraster 分成 6 个(或任意数量)同等大小的 spatraster
下面的代码按层分割栅格,但不是空间分割
library(terra)
s <- rast(system.file("ex/logo.tif", package="terra"))
s
class : SpatRaster
dimensions : 77, 101, 3 (nrow, ncol, nlyr)
resolution : 1, 1 (x, y)
extent : 0, 101, 0, 77 (xmin, xmax, ymin, ymax)
coord. ref. : Cartesian (Meter)
source : logo.tif
colors RGB : 1, 2, 3
names : red, green, blue
min values : 0, 0, 0
max values : 255, 255, 255
y <- terra::split(s, c(1,2,3))
y # 3 layers. But I want to split it spatially not by layer
您可以使用
terra::makeTiles
例如,要将
s
分成 6 个图块,您可以这样做
rc <- ceiling(dim(s)[1:2] / c(2,3))
x <- makeTiles(s, rc)
#[1] "tile_1.tif" "tile_2.tif" "tile_3.tif" "tile_4.tif" "tile_5.tif"
[6] "tile_6.tif"