R语言 如何在shapfile中合并特征?

xdnvmnnf  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(85)

我从这里下载了这个shapefile
https://data.apps.fao.org/catalog/iso/7707086d-af3c-41cc-8aa5-323d8609b2d1
我是这样读的:

library(sf);library(terra); library(exactextractr)

file <- st_read("~\\Major_hydrobasins.shp")

然后选择:

aoi=subset(file, file$MAJ_NAME == "Narmada")

当我绘制aoi时,我看到一个多边形,但当我查看aoi的特征时,我看到6个特征。
现在,如果我想计算栅格a在仅面AOI上的平均值,我会得到6个值

a <- rast(ncols=40, nrows=40, xmin=-180, xmax=180, ymin=-40, ymax=60, 
          crs="+proj=longlat +datum=WGS84")
values(a) <- 1:ncell(a)

exactextractr::exact_extract(a, aoi, "mean")

问题是:如何将这6个要素合并为一个多边形?

fwzugrvs

fwzugrvs1#

您可以将terraexactextractr包一起使用来实现这一点,如

library(terra); library(exactextractr)

file <- vect("Major_hydrobasins.shp")

aoi = subset(file, file$MAJ_NAME == "Narmada")

##Dissolve the SpatVector to combine all geometries into one geometry
va <- aggregate(aoi, "MAJ_NAME")

a <- rast(ncols=40, nrows=40, xmin=-180, xmax=180, ymin=-40, ymax=60, 
          crs="+proj=longlat +datum=WGS84")
values(a) <- 1:ncell(a)

exactextractr::exact_extract(a, st_as_sf(va), "mean")

它只返回一个值611.5938
如果将其另存为shapefile并在QGIS中打开,则可以看到除第6个面外,其他面都是盆地

之外的非常小的面

相关问题