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 the Floodplain 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 starting Seq value for each reach.
  • Set the Seq field value for each upstream reach to the upstream-most value (i.e., the highest Seq value of the downstream reach’s riffle cross section feature class) of the downstream reach. For example, set the Seq of the Reach-2 riffle cross section feature class to 18 if the maximum value of Reach-1’s riffle cross section feature class Seq 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 the watershed_contributing_area raster to stream_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 the contributing_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 the contributing_area_buffer raster. This value will be used for the snap_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 the contributing_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 it riffle_channel.
  • Edit each riffle_channel feature to ensure that it extends at least to the edge of the Channel Mask layer, but no further. This ensures that each riffle_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 overlapping riffle_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 the station_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 and riffle_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 the loess_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 the Date or Number dropdown, choose the field POINT_M. In the Aggregation dropdown, choose None. In the Numeric field(s) checklist, check the boxes next to Z and Z_smooth. Click the Apply 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 the L2 Estimate Bankfull tool to produce the Estimate Bankfull Report.
  • For the stream parameter, use the value of the ReachName field used in the flowline feature class.
  • For the flowline_fc parameter, enter the flowline feature class for the base year survey.
  • For the xs_dims_fc parameter, use the riffle_channel_dims_L2 feature class calculated for the base year.
  • The xs_points_ch_* parameter set requires a riffle_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 a riffle_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_* and survey_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 the features 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 between from_elevation and to_elevation.
  • The three values (i.e., from_elevation, to_elevation, and by_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.
Bankfull Elevation Goodness of Fit

Figure 7.1: Bankfull Elevation Goodness of Fit

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 named banks_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 by gridcode and then by Shape_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 the bankfull_area polygon feature class to a new polyline feature class named banklines.
  • 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 the right descending bank and which is the left descending bank.
  • Start editing the banklines feature class.
  • Use the ESRI Explode Multipart Feature tool to explode any multipart line feature in the banklines 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 the flowline feature class.
  • The features in the banklines feature class should not extend past the end of the flowline feature.
  • Use the ESRI Split Tool to trim any tributaries from the banklines 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 the banklines 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 string right descending or left descending to designate which bank each line represents.
  • In the bank_id field enter a 1 for the right descending bank and 2 for the left 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 a centerline 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 the loess_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 the Date or Number dropdown, choose the field POINT_M. In the Aggregation dropdown, choose None. In the Numeric field(s) checklist, check the boxes next to Z and Z_smooth. Click the Apply 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 the ReachName field used in the flowline feature class.
  • For the flowline_fc parameter, enter the flowline 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_*, and survey_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 the banklines feature class created for the base year survey.
  • For the features_fc parameter, enter the features 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.