-1
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')

`

How do I get a raster where the initial wsraster values are replaced with the min elevation values for each zone?

iaianmcd
  • 117
  • 1
  • 4
  • 13

1 Answers1

0

I found a solution using 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)]
iaianmcd
  • 117
  • 1
  • 4
  • 13