Surface water flow and erosion simulation
Here we compute surface runoff, and sediment transport using existing path sampling model.Resources:
For animating in GRASS GIS 7, see the video instructions or instructions for the Spatio-temporal data handling and visualization in GRASS GIS workshop
Start GRASS GIS
Create a new mapset (called e.g. HW_interpolation_2) in nc_spm_08_grass7 project and change working directory:Settings > GRASS working environment > Change working directory > select/create any directory
or type
cd
(stands for change directory) into the GUI
Console and hit Enter:
cd
Download all text files with color rules (see above) to the selected directory. Now you can use the commands from the assignment requiring the text file without the need to specify the full path to the file.
Overland flow depth and discharge
g.region rural_1m res=2 -p
Calculate partial derivatives to define the gradient of elevation surface:
v.surf.rst -d input=elev_lid792_bepts elevation=elev_lid792_2m slope=dx_2m aspect=dy_2m tension=15 smooth=1.5 npmin=150
Note that partial derivatives can be also computed using r.slope.aspect.
Compute spatial pattern of overland flow depth and discharge by running the SIMWE model implemented in the r.sim.water module. We will use uniform rainfall excess, infiltration and land cover.
r.sim.water -t elevation=elev_lid792_2m dx=dx_2m dy=dy_2m rain_value=50 infil_value=0 man_value=0.05 depth=wdp_2m discharge=disch_2m nwalkers=100000 niterations=30 output_step=2
Display the results, add legend for individual raster and whatever you think is appropriate.
d.rast wdp_2m.30
d.rast disch_2m.30
Optionally, animate the time series: File > Animation tool
Peak runoff with predefined flow direction
Compute peak runoff with predefined flow direction along the stream inluding culvert under the road.First, compute direction (aspect) of the given streams:
v.to.rast streams output=streams_dir_2m use=dir
Compute stream dx and dy using direction and slope equal to 2 degrees:
r.mapcalc "dxstr_2m = tan(2.)*cos(streams_dir_2m)"
r.mapcalc "dystr_2m = tan(2.)*sin(streams_dir_2m)"
Compute combined DEM and stream dx and dy:
r.mapcalc "dxdemstr_2m = if(isnull(dxstr_2m), dx_2m, dxstr_2m)"
r.mapcalc "dydemstr_2m = if(isnull(dystr_2m), dy_2m, dystr_2m)"
Run the model:
r.sim.water -t elevation=elev_lid792_2m dx=dxdemstr_2m dy=dydemstr_2m rain_value=50 infil_value=0 man_value=0.05 depth=wdpstr_2m discharge=dischstr_2m nwalkers=100000 niterations=30 output_step=2
d.rast dischstr_2m.30
Use Animation tool to animate the discharge.
Runoff for spatially variable landcover and rainfall excess
Compute runoff for spatially variable landcover represented by spatially variable Mannings and rainfall excess.
We will use variable Mannings coefficient defined by reclassifying
land cover class. Here is the content of a file called
land_to_mannings.txt
with reclassification rules for
the r.recode module.
1:1:0.9:0.9 2:2:0.5:0.5 3:3:0.01:0.01 4:4:0.03:0.03 5:5:0.01:0.01 6:6:0.05:0.05 7:7:0.1:0.1 8:8:0.1:0.1 9:9:0.9:0.9 10:10:0.03:0.03 11:11:0.5:0.5
r.recode input=landcover_1m output=mancover_2m rules=land_to_mannings.txt
Similarly, we will create raster with spatially variable rainfall excess
rates based on the land cover classes. We use file named
land_to_rain.txt
to specify the rates for individual classes.
1:1:50:50 2:2:5:5 3:3:40:40 4:4:35:35 5:5:50:50 6:6:40:40 7:7:25:25 8:8:15:15 9:9:50.:50. 10:10:40:40 11:11:10:10Again, we use the file as rules for the r.recode module.
r.recode input=landcover_1m output=raincover_2m rules=land_to_rain.txt
Run the model:
r.sim.water -t elevation=elev_lid792_2m dx=dxdemstr_2m dy=dydemstr_2m rain=raincover_2m infil_value=0 man=mancover_2m depth=wdpstrcov_2m discharge=distrcov_2m nwalkers=100000 niterations=30 output_step=2
Display the static results.
d.rast wdpstrcov_2m.30
d.legend wdpstrcov_2m.30
d.rast distrcov_2m.30
d.legend distrcov_2m.30
Animate the time series using the Animation tool.
Sediment flow rate, erosion and deposition
Compute sediment flow rate and net erosion/deposition using sediment transport part of the SIMWE model implemented in the the r.sim.sediment module. To make the computations faster, set region just to the upper part of the watershed:g.region s=s+290
Compute input transport capacity and detachment coefficient maps:
r.mapcalc "tranin = 0.001"
r.mapcalc "detin = 0.001"
Compute input critical shear stress:
r.mapcalc "tauin = 0.01"
Run the model using the last depth from previous run:
g.copy rast=wdp_2m.30,wdp_2m
r.sim.sediment elevation=elev_lid792_2m dx=dx_2m dy=dy_2m water_depth=wdp_2m detachment_coeff=detin transport_coeff=tranin shear_stress=tauin man_value=0.05 nwalkers=1000000 niterations=30 transport_capacity=tcapacity tlimit_erosion_deposition=erdepmax sediment_flux=sedflow erosion_deposition=erdepsimwe
Display these results after few seconds:
d.rast tcapacity
d.rast erdepmax
Display the final results:
d.rast sedflow
d.legend sedflow
d.rast erdepsimwe
d.legend erdepsimwe