Chapter 7 Level 2 Workflow
This chapter describes the workflow steps necessary to complete a Level 2 (L2) FluvialGeomorph analysis. The purpose of this level is to calculate bankfull channel dimensions.
7.1 Create Initial Riffle Geometry
The purpose of this stage is to identify and map riffle cross sections and roughly estimate an initial bankfull elevation for the base year for each reach.
7.1.1 Create Riffle Floodplain
The purpose of this step is to identify riffle locations and map these cross sections across the lateral extent of the floodplain for each reach.
A riffle is a shallow river landform where water flows in a steep, thin sheet (Luna Bergere Leopold and M. Gordon Wolman 1957). Riffles can be identified with the help of the channel_slope
raster calculated in Level 1, and confirmed with high resolution aerial imagery. In the channel_slope
raster, pools appear as relatively smooth areas of low slope due to the absence of LiDAR points (deep water absorbs laser pulses). Shallow water riffles appear as highly textured areas of relatively higher slope between pools due to the higher number of LiDAR points from the exposed bed material.
- Create a new line feature class named
riffle_floodplain
to store riffle cross sections. This feature class must use the same coordinate system as the vector datasets of the project. Add the following fields:ReachName
: Text (50) - The purpose of this field is to store the reach name.Seq
: long integer - The purpose of this field is to uniquely identify each cross section.
Riffle Identifying Characteristics:
- A straight reach between two meander bends, areas in the cross-overs between river bends
- Clear indicators of the active floodplain or bankfull discharge
- Presence of one or more terraces
- Channel section and form typical of the stream
- A reasonably clear view of of geomorphic features
- Areas of high water surface slope (in the case of high gradient streams)
- Areas of minimum depth and width
- Channel width parallel and consistent
- Avoid tributary influences
- Cross sections should be drawn wide enough to capture the top of bank
Digitize Riffles
- Digitize riffle cross sections beginning with the left descending bank. While editing, use the “Reverse Direction” command (aka flip) to ensure riffles are digitized in the correct direction.
- A red vertex denotes the end of a line segment. Therefore, the red end vertex should be on the right descending bank.
- Check that each cross section is digitized in the correct direction (start at the left descending bank and end on the right descending bank) before going on to the next step.
- Ensure that riffle cross sections are digitized to the full width of the active floodplain. Edit each
riffle_floodplain
feature to ensure that it extends at least to the edge of theFloodplain Mask
layer, but no further. - This ensures that each
riffle_floodplain
feature covers the entire floodplain, but does not extend too far into the uplands.
- For a site with multiple reaches, riffle cross sections must be uniquely numbered across all reaches. The
Seq
field values of riffle cross sections should not repeat within the reaches of a site. - The downstream-most cross section in the site should be numbered starting with the
Seq
field value of 1 and increase moving upstream. - If necessary, use the
13a - XS Resequence
tool to set the startingSeq
value for each reach. - Set the
Seq
field value for each upstream reach to the upstream-most value (i.e., the highestSeq
value of the downstream reach’s riffle cross section feature class) of the downstream reach. For example, set theSeq
of the Reach-2 riffle cross section feature class to 18 if the maximum value of Reach-1’s riffle cross section feature classSeq
field is 17.
7.1.2 Assign Cross Section IDs
The purpose of this step is to ensure that riffle cross section identifiers are properly assigned. Assignment of cross section unique identifiers is critical for later tools to uniquely identify each cross section.
- Assign integer values to the
Seq
field starting with one. Begin numbering at the downstream extent of the study area and moving upstream.
7.1.3 Calculate Cross Section Watershed Area
The purpose of this step is to calculate the watershed area for each riffle cross section.
- From the study area geodatabase, use the
watershed_contributing_area
raster that covers the entire contributing watershed of the study area.
- Use the ERSI
Clip Raster
tool to clip thewatershed_contributing_area
raster tostream_network_buffer
to speed tool run time. - Add the
contributing_area_buffer
raster to a map and symbolize with a “hot-cold” stretch renderer. - Add the
flowline
and regular cross section features classes to the map. Place them on top of thecontributing_area_buffer
raster. - Determine the maximum distance from the intersection of each cross section and the
flowline
to the nearest pixel of high flow in thecontributing_area_buffer
raster. This value will be used for thesnap_distance
in the next step. - Use the
12 - XS Watershed Area
tool to calculate the watershed area for each cross section. - For the
flow_accum
parameter, use thecontributing_area_buffer
raster. - For the
snap_distance
parameter, use the distance you calculated in a previous step.
7.1.4 Calculate Cross Section River Position
The purpose of this step is to calculate the river position for each riffle cross section.
- Use the
13 - XS River Position
tool to calculate the distance to the mouth of the river for each cross section. - The river position of each cross section will be used in later steps to calculate several channel parameters (i.e., gradient, sinuosity).
7.1.5 Create Riffle Channel
The purpose of this step is to edit the lateral extent of the riffle_channel
feature class to just cover the initial channel extent. This allows a more detailed examination of the channel area.
- In the Catalog window, make a copy of the
riffle_floodplain
feature class and name itriffle_channel
. - Edit each
riffle_channel
feature to ensure that it extends at least to the edge of theChannel Mask
layer, but no further. This ensures that eachriffle_channel
feature covers the entire channel, but does not extend too far into the floodplain. - Use snapping to ensure that vertices of the
riffle_channel
features are coincident with the overlappingriffle_floodplain
features.
7.1.6 Calculate Cross Section Points
The purpose of this step is to convert each riffle cross section into a set of evenly stationed points and assign DEM and detrended elevation values.
- Use the
14 - XS Points
tool to calculate cross section station points for each cross section. - The
station_distance
parameter should be set to approximately the resolution of the DEM. For example, if the DEM has a cell size of 1 foot (0.3048 meter), set thestation_distance
to that distance (using the linear units of the coordinate system used for the project’s vector data). - This tool creates a new feature class named
<cross section feature class name>_points
. - Repeat this step for both the
riffle_floodplain
andriffle_channel
feature classes.
7.1.7 Calculate Initial Cross Section L2 Dimension
The purpose of this step is to calculate the initial L2 dimensions for the the riffle cross sections for each reach. Repeat the following steps for both the riffle_floodplain
and riffle_channel
feature classes.
Determine the moving window size
Many stream metrics are scale dependent, meaning these metrics are affected by the size of the moving window used in their calculation. To determine the appropriate size of the moving window for this reach, use the following steps:
- Many stream metrics are typically calculated using a moving window size equal to two meander wavelengths.
- Using the initial
Channel Mask
layer that you created earlier, estimate the typical bankfull width for the reach. - Estimate the length of two meander wavelengths by multiplying the bankfull width estimated in the last step by 10 (e.g., 30ft bankfull width * 10 = 300ft, two meander wavelengths).
- Determine how many cross sections two meander wavelengths represent. For example, if riffle cross sections are spaced about 300ft apart, then two meander wavelengths would be 1 riffle cross section (i.e., 300ft / 300ft between riffle cross sections).
Calculate Initial L2 Dimensions
- Use the
15b - XS Dimensions, Level 2
tool to calculate L2 dimensions. - Set the
xs_fc
parameter to the regular cross sections feature class you created in a previous step. - Set the
lead_n
parameter to the number of upstream cross sections that you calculated in a previous step. - If the elevations in the channel seem noisy, check the
use_smoothing
parameter and set theloess_span
parameter to a value between 0-1. - Confirm that the
vert_units
of the DEM are in feet.
Confirm the degree of smoothing
- Use a chart to verify the choice of the smoothing
loess_span
parameter in the*_dims_L2
feature class. - Right-click on the
*_dims_L2
feature class in the map table of contents and select “Create Chart,” and select “Line.” In theDate or Number
dropdown, choose the fieldPOINT_M
. In theAggregation
dropdown, chooseNone
. In theNumeric field(s)
checklist, check the boxes next toZ
andZ_smooth
. Click theApply
button to view the chart. - Visually assess the degree of smoothing. The smoothing should be high enough to eliminate LiDAR elevation noise, but not so high as to eliminate meaningful channel elevation change.
- If the smoothing is not ideal, re-run the tool and adjust the
loess_span
parameter.
7.2 Estimate Bankfull
The purpose of this stage is to estimate the detrended bankfull elevation for the base year for each reach. This report conducts a sensitivity analysis using the regional curve estimates of channel dimensions across a range of elevation values to identify the detrended bankfull elevation value that best fits the regional curve estimate.
7.2.1 Run the Estimate Bankfull Report
The purpose of this step is to run the Estimate Bankfull report for each reach.
- In the
Reports
toolset, use theL2 Estimate Bankfull
tool to produce the Estimate Bankfull Report. - For the
stream
parameter, use the value of theReachName
field used in theflowline
feature class. - For the
flowline_fc
parameter, enter theflowline
feature class for the base year survey. - For the
xs_dims_fc
parameter, use theriffle_channel_dims_L2
feature class calculated for the base year. - The
xs_points_ch_*
parameter set requires ariffle_channel_points
feature class. These feature classes should be entered with the feature class for the most recent survey first (i.e., the base year) and then the previous surveys in reverse chronological order (e.g., 2016, 2010, 2006). - The
xs_points_fp_*
parameter set requires ariffle_floodplain_points
feature class. These feature classes should be entered with the feature class for the most recent survey first (i.e., the base year) and then the previous surveys in reverse chronological order (e.g., 2016, 2010, 2006). - The
survey_name_*
parameters are used to label the surveys in maps and graphs. - The feature classes and labels used for the
xs_points_*
andsurvey_name_*
parameters must be entered in the same order (e.g., 2016, 2010, 2006) in each set of numbered parameters. - For the
features_fc
parameter, enter thefeatures
feature class for the base year survey. - For the
dem
parameter, enter the DEM for the base year survey. - For the
regions
parameter, select the regions to use for estimating the bankfull water surface elevation. - For the
from_elevation
parameter, specify the lowest detrended elevation value to use for sensitivity analysis. - For the
to_elevation
parameter, specify the highest detrended elevation value to use for sensitivity analysis. - For the
by_elevation
parameter, specify the value to increment the sequence betweenfrom_elevation
andto_elevation
. - The three values (i.e.,
from_elevation
,to_elevation
, andby_elevation
) define the sequence used for the sensitivity analysis. - For the
bf_estimate
parameter, specify the detrended elevation value that represents the bankfull water surface elevation.
7.2.2 Perform QA
The purpose of this step is to use the QA Checklist to verify the reports have run correctly and identify any data mistakes that need to be corrected.
- Follow the instructions in the QA Checklist Chapter, Estimate Bankfull Report section, to verify that the reports have run correctly.
- Make the required changes suggested in the QA Checklist and rerun the report.
- Repeat these QA iterations until the reports are correct.
7.2.3 Determine Bankfull Elevation
The purpose of this step is to interpret the Estimate Bankfull Report to determine the final detrended bankfull elevation to be used for the rest of the analysis for each reach. The L2 Estimate Bankfull
tool is intended to be run iteratively, testing the fit of a range of detrended bankfull elevations against different regional curves.
- From the initial Estimate Bankfull Report, use the Bankfull Elevation Goodness of Fit sensitivity analysis graph to examine the effect of choice of detrended bankfull elevation on the error statistic.
- Identify the detrended bankfull elevation that minimizes error on the Bankfull Elevation Goodness of Fit sensitivity analysis graph.
- In the example figure below, the detrended bankfull elevation of 104 ft. minimizes error (y-axis Mean Average Error) for both area and depth. Although 102 ft. appears to be the detrended elevation that minimizes error for width, 104 ft. does a better job for area and depth. Using the logic of “best two out three,” a detrended bankfull elevation of 104 ft. could be chosen for this reach and will be used for later steps in this analysis. However, other criteria could be used depending on the goals of your study.
- Rerun the report using the value chosen in the previous step.
7.2.4 Create Bankfull Area
The purpose of this step is to use the final bankfull elevation determined in the previous step to derive a final bankfull_area
polygon for each reach.
- From the final Estimate Bankfull Report, use the detrended bankfull elevation identified in the last step. In the example above, this value was 104 ft.
- Use the
08 - Water Surface Extent
tool to extract a bankfull area polygon. This tool creates a new polygon feature class namedbanks_raw_xxx
, where xxx is the detrended elevation specified. - The
banks_raw_xxx
feature class must be edited to select only the polygons that represent the bankfull area polygon(s). - Open the attribute table for the
banks_raw_xxx
feature class and use advanced sorting to sort first bygridcode
and then byShape_Area
. - Polygons with
gridcode
= 1 are polygons inundated at the detrended elevation. - Typically, the polygons with the largest area represent the channel.
- Begin by selecting
gridcode
= 1 polygons with the largest area until the entire bankfull area is selected. - Export these selected features to a new feature class named
bankfull_area
. - Delete the
banks_raw_xxx
feature class.
7.2.5 Create Banklines
The purpose of this step is to convert the bankfull_area
polygon into polylines and edit into a banklines
feature class for each reach. The banklines
feature class will have two records, one representing the left descending bankline and another the right descending bankline for the stream reach.
- Use the ESRI
Polygon To Line
tool to convert thebankfull_area
polygon feature class to a new polyline feature class namedbanklines
. - Add the following fields to the
banklines
feature class:ReachName
: Text (50) - The purpose of this field is to store the reach name.bank_id
: Long Integer - The purpose of this field is to uniquely identify each bank.bank
: Text (50) - The purpose of this field is to designate which bank is theright descending
bank and which is theleft descending
bank.
- Start editing the
banklines
feature class. - Use the ESRI
Explode Multipart Feature
tool to explode any multipart line feature in thebanklines
feature class. - Add the
flowline
feature class to the map. - Use the ESRI
Split Tool
to split the line features at the downstream and upstream ends of theflowline
feature class. - The features in the
banklines
feature class should not extend past the end of theflowline
feature. - Use the ESRI
Split Tool
to trim any tributaries from thebanklines
feature class. - The goal of this step is to have only two features, one representing the left descending bankline and another the right descending bankline. Delete all other line features.
- Ensure that the banklines are digitized in the upstream direction (like a
flowline
feature). Edit thebanklines
feature class to ensure that each bankline is digitized beginning with the downstream end and digitized upstream. - While editing, select a
bankline
feature, choose to edit vertices. Ensure that the red endpoint is at the upstream end of each bankline. - Use the “Reverse Direction” command (aka flip) to ensure each bankline is digitized in the upstream direction.
- Check that each bankline is digitized in the upstream direction (red endpoint at the upstream end) before going on to the next step.
- In the
ReachName
field enter the reach name. - In the
bank
field, enter the stringright descending
orleft descending
to designate which bank each line represents. - In the
bank_id
field enter a1
for theright descending
bank and2
for theleft descending
bank.
7.2.6 Create Final Centerline
The purpose of this step is to create a stream centerline. The centerline represents the rough midline of the stream between the banklines.
- Use the
10 - Centerline
tool to create acenterline
polyline feature class representing the stream midline at the bankfull water surface elevation.
7.3 Calculate Final L2 Cross Section Geometry
The purpose of this stage is to use the bankfull elevation determined in the last stage to calculate the final level 2 cross section dimensions for the base year for each reach.
7.3.1 Calculate Final Cross Section L2 Dimensions
The purpose of this step is to calculate the final L2 dimensions for the regularly spaced and riffle cross section feature classes for each reach. Repeat the following steps for regular spaced cross section feature class, the riffle_floodplain
feature class, and the riffle_channel
feature class.
Determine the moving window size
Many stream metrics are scale dependent, meaning these metrics are affected by the size of the moving window used in their calculation. To determine the appropriate size of the moving window for this reach, use the following steps:
- Many stream metrics are typically calculated using a moving window size equal to two meander wavelengths.
- Using the
bankfull_area
feature class, estimate the typical bankfull width for the reach. - Estimate the length of two meander wavelengths by multiplying the bankfull width estimated in the last step by 10 (e.g., 30ft bankfull width * 10 = 300ft, two meander wavelengths).
- Determine how many cross sections two meander wavelengths represent.
- For riffle cross section for example, if they are spaced about 300ft apart, then two meander wavelengths would be 1 riffle cross section (i.e., 300ft / 300ft between riffle cross sections).
- For regular cross section for example, if they are spaced about 100ft apart, then two meander wavelengths would be 3 regular cross sections (i.e., 300ft / 100ft between regular cross sections).
Calculate Final L2 Dimensions
- Delete the initial Level 2 dimensions
*_dims_L2
feature classes created earlier in Level 2. - Use the
15b - XS Dimensions, Level 2
tool to calculate final L2 dimensions. - Set the
xs_fc
parameter to the cross sections feature class. - Set the
lead_n
parameter to the number of upstream cross sections that you calculated in a previous step depending on the type of cross section (i.e., regular cross section, riffle cross section). - If the elevations in the channel seem noisy, check the
use_smoothing
parameter and set theloess_span
parameter to a value between 0-1. - Confirm that the
vert_units
of the DEM are in feet.
Confirm the degree of smoothing
- Use a chart to verify the choice of the smoothing
loess_span
parameter in the*_dims_L2
feature class. - Right-click on the
*_dims_L2
feature class in the map table of contents and select “Create Chart,” and select “Line.” In theDate or Number
dropdown, choose the fieldPOINT_M
. In theAggregation
dropdown, chooseNone
. In theNumeric field(s)
checklist, check the boxes next toZ
andZ_smooth
. Click theApply
button to view the chart. - Visually assess the degree of smoothing. The smoothing should be high enough to eliminate LiDAR elevation noise, but not so high as to eliminate meaningful channel elevation change.
- If the smoothing is not ideal, re-run the tool and adjust the
loess_span
parameter.
7.3.2 Add Modeled Water Surface Elevation
The purpose of this optional step is to add an HEC-RAS hydraulic model estimated water surface elevation (if available) to a cross section dimension feature class.
- Use the
16 - XS RAS Watersurface
tool to add a modeled water surface elevation field to the input cross section feature class. - Use the
RAS_model_name
parameter to distinguish between multiple RAS model scenarios.
7.4 Run Report
The purpose of this stage is to produce the Level 2 report for each reach.
7.4.1 Run the L2 Report
The purpose of this step is to run the L2 report for each reach.
- In the Reports toolset, use the
Level 2 Report
tool to produce the Level 2 Report. - For the
stream
parameter, use the value of theReachName
field used in theflowline
feature class. - For the
flowline_fc
parameter, enter theflowline
feature class for the base year survey. - For the
xs_dims_fc
parameter, use the*_dims_L2
feature class calculated for the regular cross sections of the base year. - The
xs_points_*
parameters should be entered with the feature class for the most recent survey first (i.e., the base year) and then the previous surveys in reverse chronological order (e.g., 2016, 2010, 2006). - The
survey_name_*
parameters are used to label the surveys in maps and graphs. - The feature classes and labels used for the
flowline_points_*
,xs_points_*
, andsurvey_name_*
parameters must be entered in the same order (e.g., 2016, 2010, 2006) in each set of numbered parameters. - For the
dem
parameter, enter the DEM for the base year survey. - For the
banklines_fc
parameter, enter thebanklines
feature class created for the base year survey.
- For the
features_fc
parameter, enter thefeatures
feature class for the base year survey. - For the
bf_estimate
parameter, specify the detrended elevation value that represents the bankfull water surface elevation. - For the
regions
parameter, select the regions to use for estimating the bankfull water surface elevation.
7.4.2 Perform QA
The purpose of this step is to use the QA Checklist to verify the reports have run correctly and identify any data mistakes that need to be corrected.
- Follow the instructions in the QA Checklist Chapter, Level 2 Report section, to verify that the reports have run correctly.
- Make the required changes suggested in the QA Checklist and rerun the report.
- Repeat these QA iterations until the reports are correct.
7.5 Determine Next Steps
The purpose of this step is to determine what further steps need to be taken.
- Review the results of the Level 2 Report and determine if the project goals require proceeding to developing the Level 3 analysis.