我正在使用 terra::extract 函数使用网格从图像中提取各种统计数据。因此每个网格单元包含 X 个像素,因为可以包含与网格单元相交的任何像素,所以我需要知道每个计算中包含多少个单元。基本上我想弄清楚我可以使用哪个函数作为参数 fun ,它将返回用于统计计算的对象的计数。
ZM<- terra::extract(imagery, GRID, fun= ?)
ZM<- terra::extract(imagery, GRID, fun= n)
ZM<- terra::extract(imagery, GRID, fun= count)
您应该能够通过将
ncell
传递给 fun
参数来获取与矢量特征相交的单元格数量(假设您的 GRID 是 SpatVector 对象):
library(terra)
#> terra 1.7.78
# get some data
r <- system.file("ex/elev.tif", package = "terra") |> rast()
v <- system.file("ex/lux.shp", package = "terra") |> vect()
# get number of cells intersecting your vector feature
extract(r, v[1, ], fun = ncell)
#> ID elevation
#> 1 1 567
# check if result was valid
extract(r, v[1, ]) |> dim()
#> [1] 567 2