0

我的目标是从一组多边形位置的栅格中提取数据。栅格有许多数值变量和一些分类变量。我想提取以此为条件的值,ei,如果变量是数字,则为每个多边形获取 ,如果变量是分类的,则获取.meanmode

现在我正在这样做(看到“数字”层是数字,“分类”有代表类别的数字):

extract_numeric <- terra::extract(x = raster,
                                  y = vect(polygons),
                                  fun = mean,
                                  layer = 'numeric',
                                  rm.na=T)

extract_categorical <- terra::extract(x = raster,
                                      y = vect(polygons),
                                      fun = mode,
                                      layer = 'categorical',
                                      rm.na=T)

extract <- c(extract_numeric, extract_categorical)

是否可以根据图层类型将值全部提取出来?即使我希望不同fun的数字层在提取时有所不同。可以做到吗?

谢谢!

4

1 回答 1

0

不,那是做不到的。您还可以做的是x使用名称或索引的子集

e_num <- extract(x[[c(1:3, 6:8)]], v, fun=mean)
e_cat <- extract(x[[4:5]], v, fun=mean)

但这类似于使用layer参数。

你也可以做

e_list <- extract(x, v)

然后lapply在该列表中使用您自己的功能。

于 2022-01-28T19:55:23.950 回答