# Will only run if GRASS is running
if(check_running()){
# Load data set
dem <- system.file("extdata", "dem.tif", package = "rdwplus")
landuse <- system.file("extdata", "landuse.tif", package = "rdwplus")
sites <- system.file("extdata", "site.shp", package = "rdwplus")
stream_shp <- system.file("extdata", "streams.shp", package = "rdwplus")
# Set environment parameters and import data into GRASS
set_envir(dem)
raster_to_mapset(rasters = c(dem, landuse), as_integer = c(FALSE, TRUE),
overwrite = TRUE)
vector_to_mapset(vectors = c(sites, stream_shp), overwrite = TRUE)
# Create binary stream
out_name <- paste0(tempdir(), "/streams_rast.tif")
rasterise_stream("streams", out_name, overwrite = TRUE)
reclassify_streams("streams_rast.tif", "streams_binary.tif",
out_type = "binary", overwrite = TRUE)
# Burn dem
burn_in(dem = "dem.tif", stream = "streams_binary.tif",
out = "dem_burn.tif", burn = 10, overwrite = TRUE)
# Fill sinks
fill_sinks(dem = "dem_burn.tif", out = "dem_fill.tif", size = 1, overwrite = TRUE)
# Derive flow accumulation and direction grids
derive_flow(dem = "dem_fill.tif", flow_dir = "fdir.tif",
flow_acc = "facc.tif", overwrite = TRUE)
# Snap sites to pour points (based on flow accumulation)
out_snap <- paste0(tempdir(), "/snapsite.shp")
snap_sites(sites = "site", flow_acc = "facc.tif", max_move = 2,
out = out_snap, overwrite = TRUE)
# Compute metrics
lu_metrics <- compute_metrics(metrics = c("iFLO", "iFLS", "HAiFLO", "HAiFLS"),
landuse = "landuse.tif",
sites = out_snap,
elevation = "dem_fill.tif",
flow_dir = "fdir.tif",
flow_acc = "facc.tif",
streams = "streams_rast.tif")
print(lu_metrics)
}
Run the code above in your browser using DataLab