如何从区域统计即 r::zonal输出创建栅格?

问题描述

library(raster)
library(fasterize)
library(sf)

#Template raster
roadtif <- 'roads.tif'
cropExtent <- extent(ras2) 

##Zonal Raster
ws <- sf::st_read(dsn = "tv_inputs.gdb",layer = "assessment_watersheds_diss")
wsraster <- fasterize(ws,raster(roadtif),'watershed_GROUP_ID')

##Elevation Raster
elevation <- raster('topography.elevation.tif')
elevation <- crop(elevation,cropExtent)

###getting min elevation by watershed group
ele_min_water <- zonal(elevation,wsraster,'min')

`

如何获得初始 wsraster 值替换为每个区域的最小高程值的栅格?

解决方法

我找到了一个使用 match 的解决方案

zonalRas <- raster(wsraster)
ele_min_water <- as.data.frame(zonal(elevation,wsraster,'min'))
zonalRas[] <- ele_min_water$min[match(wsraster[],ele_min_water$zone)]