问题描述
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)]