NHDPlus and Flow Networks

Prepared by Tyler L. Jantzen, Nishesh Mehta and David R. Maidment

GIS in Water Resources

Fall 2007

Goal 1

Computer and Data Requirements. 1

Data description: 1

Exploring NHDPlus. 2

NHDPlus Flow Attributes. 6

Building a Stream Network. 9

Network Tracing. 12

Identifying Catchments using the USGS gages. 14

Longest Flowpath. 22

Using the Base Flow Index. 24

Land Use Statistics. 28

Land Cover Cumulative Characteristics. 28

Summary of items to be turned in: 33

Goal

The goal of this exercise is to explore NHDPlus and some concepts of linear referencing on network flow lines.  In the next exercise (Exercise 6) in the course, we’ll use these inputs to create an Arc Hydro with Time Series geodatabase for these data.

Computer and Data Requirements

To carry out this exercise, you need to have a computer, which runs the ArcInfo version of ArcGIS. The data are provided in the accompanying zip file, http://www.ce.utexas.edu/prof/maidment/giswr2007/ex5/ex5.zip

Data description:

Ex5.zip contains a geodatabase called SanMarcos_NHDPlus_raw.mdb, which is the entire San Marcos basin cut from NHDPlus Region 12.  Its structure is shown below. The NHDPlus is based on the National Hydrography Dataset Medium Resolution (1:100,000 scale), which was originally developed by the USGS.  More information about the National Hydrography Dataset can be found at http://nhd.usgs.gov/.  More information about NHDPlus can be found at http://www.horizon-systems.com/nhdplus/.  Elevation-based flow direction grids, flow accumulation grids, and catchments have been developed.  The National Land Cover Dataset has been applied to these catchments, and information regarding catchment and watershed land cover linked to flowlines.  Mean precipitation has been calculated for each catchment, and basic streamflow modeling has been conducted for each reach.  Two methods have been used to determine mean annual flow and mean annual velocity.  Thus, it is possible, without any additional calculations, to estimate stream flow and velocity at any given reach.  Value Added Attributes, which assist with tracing throughout the stream network, have also been added.  Lastly, USGS Streamflow Gages have been snapped to the network, allowing nearly seamless integration between NHDPlus and the National Water Information System (http://waterdata.usgs.gov/nwis/rt).  The snapped USGS Streamflow Gages are available through the USGS at http://water.usgs.gov/GIS/dsdl/USGS_Streamgages-NHD_Locations_GEODB.zip.

Exploring NHDPlus

Now lets have some fun and explore the delights of NHDPlus.

Open ArcMap and from the SanMarcos_NHDPlus_Raw.mdb geodatabase, add the entire Hydrography feature dataset and the Catchments feature class from the Hydrologic Units feature dataset.  Recolor the symbology display and lets take a look at what we’ve got here.  Save your map display as SanMarcos.mxd.  Here is the map that I created:

You’ll notice that I have symbolized the NHDPoint feature class using the attribute FType, which is an NHD classifier for types of water points on maps – in this case, you can see that we have only two types of points: SpringSeep and Well.   Think about the spatial patterns of these points on the map and remember the intersection we did in Exercise 2 of the Edwards aquifer and the Guadalupe basin.

To be turned in: What does the pattern of location of the SpringSeep and Well points tell you about the groundwater system underlying this basin?

Now lets take a look at the USGSGageEvents feature class.   Open its attribute table.  You’ll see a set of stream gage descriptions highlighted, select the gage for the Blanco River at Wimberley:

If you go hit Selected and scroll along this record, you’ll see some statistics of the presently available daily streamflow information from this gage

This shows that we have data from 1 September 1924 to 30 September 2004 available from the NWIS archive, a total of 28368 days of streamflow record.  Those USGS people do cool stuff for us!  Now lets scroll back along the attribute table a bit and whoa, what do we find?   Our old friends the percentile values for USGS water data that we worked with in Exercise 2!    For example, P1 = 5.8 means that on 1% of the 28368 days in the record, the flow is less than or equal to 5.8 cfs.

Now, lets transfer these data into Excel and make a plot of them.  I found it easiest just to manually type in the data rather than messing around with table exports and the like though you could that too.

Does it look like these flows are normally distributed?  I don’t think so!  So, lets right click on the Discharge axis and change the axis type to Logarithmic.  Now what do we get:

Oh, this looks a lot more like a nice normal distribution, so this tells us that these flow data may follow the lognormal distribution, though it would take a considerable amount of statistical characterization beyond what we have done here to confirm that.

Now, lets get some index information that tells us about drainage area (DA_SQ_MILE) and mean annual flow (AVE).  If you go along to the attribute table, you can extract their values as 355 mile2 and 142.183 cfs, respectively for the Blanco River at Wimberly.

Lets modify our plot header to add this information:

To be turned in: Prepare a plot of the cumulative frequency versus log of the discharge for the San Marcos River at San Marcos with drainage area and ave flow annotated on it.  Compare this plot and the corresponding data with the one in the exercise for the Blanco River at Wimberley.   The average flows are similar but the drainage areas and flow variability are vastly different.  What does this tell you about the source of water flow at the two gaging sites?

NHDPlus Flow Attributes

A design goal of NHDPlus is to be able to provide enough land surface attributes to permit estimation of the mean annual flow for each NHDFlowline, rather than just at gages.   To find out what those values area, go to your ArcMap display again and add the Table flowlineattributesflow  If you open this table, you’ll see a number of attributes for each flow line, among them MAFLOWU and MAFLOWV.  These are mean annual flows derived from (1) taking a mean annual runoff map in mm/year and integrating it over the drainage area, and (2)  estimating the mean annual flow using some regression equations developed by Rich Vogel and collaborators at Tufts University.   These methods are described in the NHDPlus documentation at http://www.horizon-systems.com/nhdplus/data/NHDPLUS_UserGuide.pdf    We’ll use the MAFLOWU values because they are available for all lines (the Vogel equations have a restricted range of drainage areas to which they can be applied and the -9999 values in the table below are missing values outside of this range).   But the difference between the two values (e.g. 41.0 cfs and 30.8cfs) gives you a sense of the imprecision of the science of spatial flow estimation at this time.  The corresponding estimates of mean annual flow velocity are much closer together (e.g. 1.24 ft/s vs 1.22 ft/s).  This information is important for water quality computations because it tells us how long organisms and chemicals will take to travel through each stream reach.

The key field that links the attribute tables with the features is COMID, which behaves for NHDPlus as HydroID does for Arc Hydro (and in fact the idea for HydroID came from COMID), so lets join the attribute table to the NHDFlowline feature class.   Right click on NHDFlowline feature class and select Joins and Relates/Join, fill in the fields as shown below, and say Yes when you are asked to do Indexing to support the relationship.

Now, lets symbolize our flow lines using the MAFLOWU attribute.  Use Quantities/Graduated Symbols and the default classification method (Natural Breaks (Jenks)).

And now we see this marvelous map of streams mapped by flow size.  Oh happy day!! Those of us who have spent years looking at blue line maps where all the lines are the same thickness regardless of the size of the river can appreciate the marvel of being able to see instantly the hydrologic flow pattern of the landscape!

Now, lets see how these flows compare to what the gages tell us.   Select the USGSGageEvents for the Blanco River at Wimberley and zoom in there.  If you use the Identify tool in Arc Map and click on the NHDFlowline each there, you’ll see that its attributes are MAFLOWU = 213 cfs, and MAFLOWV = 121 cfs, while the stream gage at that location tells us that the actual mean annual flow is 142 cfs. You can see that Vogel’s regression equations give a much more accurate value than simply integrating over a mean annual runoff map at this location.  But, of course, the comparison you’ve just made with the San Marcos River at San Marcos also shows that local factors can be crucial in defining the mean annual flow of a river!

To be turned in:  Make a map of the San Marcos basin NHDFlowlines attributed with mean annual flow, and compare the flow estimate from the mapped flow line with that at the stream gage for the Blanco River at Kyle.

Building a Stream Network

There is lots of other fun stuff we can do to explore NHDPlus, but for now, lets move on to creating a geometric network of the NHDFlowlines.   Save your SanMarcos.mxd ArcMap display file, close Arc Map an open Arc Catalog. You have to have the ArcInfo version of ArcGIS not the ArcView version to do the next step.  Right click on the Hydrography feature dataset and select New/Geometric Network.

Click Next to the first Panel that displays,  in the second one, click on NHDFlowline to be  included in the network, say Yes to preserving existing attribute values, and No to do you want complex edges in your network, No to Do your features need to be  snapped, and No to Do you want to assign weights, then hit Finish.

You’ll see a computation box emerge and then go away as the connectivity table is built, and then, you’re done.  Now if you look at your Hydrography feature dataset, you’ll see you’ve got some new things in it, a Hydrography_Net network and a point feature class of Hydrography_Net_Junctions that were created during the network flow creation.

Close Arc Catalog and Open a new ArcMap display, and add the Hydrography_Net network to the map display and appropriately symbolize it.   Save your ArcMap display as SanMarcosNetwork.mxd

You can see all these new junctions that have appeared as part of the network building process.  In Arc Map, use View/Toolbars/Utility Network Analyst to add the Network Analyst toolbar to your ArcMap display.  Use Flow/Display Arrows to symbolize your flow directions.  Oops!  Looks bad.  A lot of black dots.

The NHDFlowLines have an attribute FlowDir that indicates what direction the flow proceeds on them.  In this case, FlowDir = 1 means that the flow direction is the same as the direction of digitization of the lines in the NHDFlowline feature dataset.

Use View/Toobars/Arc Hydro 9 tools to bring up the Arc Hydro toolbar (if you don’t have this toolbar, see the instructions in Exercise 4 for acquiring these tools).  Then in the Arc Hydro tools Network Tools/Set Flow Direction .  Click on NHDFlowline in the Layers window to select the feature class.  Click on the Assign based on attribute option and choose FlowDir as the attribute.  Click OK to initiate the assignment of flow direction and pretty soon, you’ll see your bad black blobs turn to nice black arrow heads and flow direction is assigned.   What this means is that each NHDFlowline had a numerical attribute (0, 1, 2, 3) for that line whose values correspond to different types of flow direction, as shown below, and this direction is now assigned internally within the geometry of the network so that the Utility Network Analyst can correctly interpret it.

Network Tracing

In the Utility Network Analyst toolbar, use Flow/Display Arrows again to toggle off the flow direction arrows and also click off the display of the generic junctions so you just leave the network itself displayed in Arc Map.   Use the Utility Network Analyst Add Edge Flag Tool  to add an edge flag near the outlet of the network.

And then select Trace Upstream to identify all the upstream edges. Hit the  symbol on the end of the toolbar to initiate the trace.

And Voila!! You get this marvelously selected network.  Use Analysis/Clear Results to get a clear network again.

If you use , you’ll just get a “bong” noise that indicates that you have no disconnected edges.  Ok, Houston, we have liftoff!!  Disconnected edges are not good in networks because they require editing to be fixed or they indicate isolated streams whose linkage to the stream network is unknown.

Use  Analysis/Clear Flags to get rid of the Flag that you laid down, and then Analysis/Options  to switch the Results from Drawing to Selection.  This has the effect of allowing us to actually select records with network traces, rather than just see a red graphic network as we just did.  Click Apply and Ok, to close out this window.

Identifying Catchments that drain to a USGS gage

Using the NHDFlowlines and Catchments feature classes we can find out which catchments are associated with a given USGS gage. To use this capability we first build a relationship between catchments and flowline feature classes. Save your map. Open ArcCatalog. Browse to the folder you have stored the exercise data to the SanMarcos_NHDPlus_raw geodatabase. Right click on the geodatabase and scroll to new relationship class.

Click to open the following window. Let’s call the new relationship class CatchmenthasFlowline.  For origin feature class browse scroll to Hydrographic units and associate it with Catchment feature class. In destination feature class under hydrography to NHDFLowline.. Click Next.

In the next window select Simple (peer to peer) relationship and click next.

The next screen inquires the direction of message propagation within the database. Click Both. This enables queries from either feature class to return data from the related feature class. Leave the labels as they are.

Click next. In the next window we must specify the nature of relationship. Since sometimes a single catchment may be associated with more than one flowline we choose 1-M. Select that and click next.

Next, choose not to add any attributes to the relationship class. Click next.

In the next window we must specify which field will connect the two feature classes. Like previously, we use COMID. In both drop down menus pick COMID and click next.

Click Next and then Finish.

Now you have anew relationship class in your database. Our data is ready to find associated catchments. Open ArcMap and add the feature classes Catchment, USGSGagEvents and the geometric network to it. Zoom to a USGS station of your choice.

Place an Edge Flag on the USGS gage.

Trace upstream. Click the Solve button (Make sure that you have set Analysis/Options to Selection.)

This gives you the selection of the flowlines flowing into the USGS gage. To find the catchments that are associated to the USGS gage we will now invoke our relationship class we created previously.

Right click the NHDFlowline feature class and open the attribute table. You can see the selected features. Click Options and browse to Related Tables. You will see the relationship we created shown as CatchmenthasFlowline. Click the table.

This opens the Attribute Table of the Catchment feature class. You can see that the Catchments related to the selected flowlines are automatically selected.

Using this table we can now find the number and the area of the catchments associated with any USGS gage.

To be turned in: Make a layout of the related catchments and flowlines to the USGS gage near the Blanco River at Kyle. Find the number and the total area of the catchments associated with gaging station. What percent of the total San Marcos basin does this constitute? Compare it with the area given in the USGS gage feature class.

Longest Flowpath

Use Selection/Clear Selected Features in the ArcMap toolbar to clear all the selections you made in the last section.  Use Analysis/Clear Flags in the Network Utility Analyst Toolbar to clear the Edge Flag you’ve been using.

Zoom into the top of the network, place an edge flag there and execute a TraceDownstream

And if you zoom back to the extent of the layer, open its attribute table and hit Selected for the records, you’ll see that 93 of the 557 flowlines in the network have been selected by this process.

If you move along to the LengthKm attribute, right click on the field and select Statistics.  You can get a table of statistics of the selected records, from which you can find the average line length in km and the total length along the flow path that you’ll need shortly.

Go through the same steps that you used earlier to add the flowlineattributesflow table to the ArcMap display and to Join it to the NHDFlowline feature class using COMID as the common key feature.  Right click on the Slope attribute (last one at the end) and use Statistics to get the average slope of the lines along the flow path.  The Slope value is give as % slope, so don’t be alarmed if the value seems large to you.  Do the same on the MAXELEVSMO attribute (elevation in meters above mean sea level) and use the Maximum and Minimum of the Statistics values to tell you the elevation drop over this flow path.

Save again your ArcMap display as SanMarcosNetwork.mxd so you can come back and get this information if you need it later.

To be turned in: What is the total flow length from top to bottom of the San Marcos Basin (km).  What is the average length of the 93 NHDFlowLines on this flow path (km).  What is the average slope of these lines (%).  What is the elevation drop along the flow path (m).   If you divide the elevation drop by the flow path length, do you get a result consistent with that from the mean slope computation?   If it is different is that ok? Think carefully about this last question before you answer it.   The average of a set of ratios (a/b) is not the same thing as the ratio of the average values of a and b.

Using the Base Flow Index

Open the attribute table of the USGSGagEvent feature class. One of the fields present is called BFI_Ave. This refers to the average Annual Base Flow Index (BFI). BFI refers to the percentage of the flow which is Base flow i.e. that part of the stream discharge that is not attributable to direct runoff from precipitation or melting snow; it is usually sustained by groundwater. The Base Flow Index (BFI) is used as a measure of the base flow characteristics of catchments. It provides a systematic way of assessing the proportion of base flow in the total runoff of a catchment.1 Let’s try and explore it further. We will symbolize the Basin using BFI on the gaging stations. Right click the USGSGagEvents feature class and go to properties. Under the Symbology tab go to Quantities and pick graduated symbols. In values select BFI_Ave from the drop down menu.

Click OK.  Go to Properties/Labels and set the Label Field to be BFI_Ave   Right click on the USGSGageEvents feature class and Label Features You can produce a display like the one shown below.

These labels have three trailing 0’s that are unnecessary.  To eliminate them, right click on the USGSGageEvents feature class, and select Properties/Labels and the box for Expression.  Enter the following in the resulting Expression window:

“[BFI_Ave]:” & round ([BFI_AVE], 5), as shown below:

What this does is create a label that includes the attribute BFI_Ave as text and then conconcatenates onto this the rounded version of the attribute value.  The result then appears in ArcMap as shown below.  If you don’t want the [BFI_AVE]: prefix, then just use the expression round ([BFI_AVE], 5)

This shows that at some gages 95% of the flow is Base Flow while at other locations only 5% is base flow. For more information on how to determine base flow, see http://www.usbr.gov/pmts/hydraulics_lab/twahl/bfi/  from which the following picture has been extracted.  Base flow is the flow beneath the red line in this graph and surface runoff is the excess flow defined by the difference between the blue line and the red line.

Why should there be so much variation in the base flow in the San Marcos Basin? The stations on the San Marcos river at San Marcos and Luling are right above the Edwards Aquifer and draw significant amounts of water from it to fulfill their needs. Let’s visualize the Edwards aquifer to get a better understanding of this phenomenon.

Add the Aquifer feature class from the Geomorphology dataset in the geodatabase. This is the Edwards Aquifer.   I have symbolized this as we did in Exercise 2, and also sized the rivers according to their flows. Cool!

To be turned in: Make a layout of the Edwards Aquifer overlayed on the San Marcos basin.  What is the river on the right that has low base flow.  What is the river on the left that has high base flow.  Make a base flow balance between these two rivers to see if you can reasonably predict the base flow at the most downstream station (the San Marcos River at Ottine).

Land Use Statistics

NHDPlus provides a host of tables that provide detailed information about Land Use patterns. A description of the data available in the NHDPlus dataset may be found on the NHDPlus user guide

http://www.horizon-systems.com/nhdplus/data/NHDPLUS_UserGuide.pdf

on pages 33-34, 38-39, appendix C1 pages 118-120. Let us use it to find something interesting.

Land Cover Cumulative Characteristics

The National Land Cover Dataset is described at:  http://landcover.usgs.gov/classes.php

In the NHDPlus, in the Catchmentattributesnlcd table, the NLCD % areas are computed for each catchment and in the Flowlineattributesnlcd the corresponding attributes are calculated for the total drainage area (including the catchment of the flowline itself):

(1)

Where CUMNLCDn = % of cumulative drainage area of flowline n classified in a particular NLCD Class, NLCDi = % of area of catchment i in this land cover class, and i = 1, 2, …, n-1 are the set of catchments upstream of catchment n. Areas characterized by at least 30 percent of constructed materials (e.g., asphalt, concrete, buildings, etc) are in NLCD class 22:

High Intensity Residential – Highly developed areas where large numbers of people reside, such as apartment complexes and row houses. Vegetation occupies less than 20 percent of the area, and constructed materials cover 80 to100 percent.  Here are the Catchmentattributesnlcd and Flowlineattributesnlcd tables:

We will visualize the San Marcos basin characterized by % of drainage area classified as High Intensity Residential.

First, add the table Catchmentattributesnlcd to the map. Right click Catchment and click create Join.

Match COMID of the Catchment Flowline feature class to the COMID of Catchmentattributesnlcd table.

Click OK. Now the join has been created.

Let us visualize the Catchments using High Intensity Residential. Right click on Catchment and click properties. Under the Symbology tab select quantities as graduated colors. In Values select catchmentattributesnlcd.NLCD_22. Pick an appropriate color scheme.

Click Apply and OK.

You can now see the high intensity residential areas. Which areas do you think might face water supply shortage in the near future?   Now lets explore the upstream drainage area properties.  Join the NHDFlowline feature class to the Flowlineattributesnlcd table using COMID as the relate attribute (notice that since this is the second table you’ve joined to NHDFlowline the nomenclature is a little bit more complex this time).

Symbolize the lines with the % in CUMNLCD_22.  You can see how different parts of the stream system are affected by upstream land cover.

To be turned in: Prepare a layout of the San Marcos basin characterized by intensity of residential development.  What is the total area (km2) has a local land cover that is at least 30% high intensity residential? For each of the stream gage locations, what is the % of upstream land cover that is high intensity residential?

Summary of items to be turned in:

(1) What does the pattern of location of the SpringSeep and Well points tell you about the groundwater system underlying this basin?

(2)  Prepare a plot of the cumulative frequency versus log of the discharge for the San Marcos River at San Marcos with drainage area and ave flow annotated on it.  Compare this plot and the corresponding data with the one in the exercise for the Blanco River at Wimberley.   The average flows are similar but the drainage areas and flow variability are vastly different.  What does this tell you about the source of water flow at the two gaging sites?

(3)  Make a map of the San Marcos basin NHDFlowlines attributed with mean annual flow, and compare the flow estimate from the mapped flow line with that at the stream gage for the Blanco River at Kyle.

(4) To be turned in: Make a layout of the related catchments and flowlines to the USGS gage near the Blanco River at Kyle. Find the number and the total area of the catchments associated with gaging station. What percent of the total San Marcos basin does this constitute? Compare it with the area given in the USGS gage feature class.

(5) What is the total flow length from top to bottom of the San Marcos Basin (km).  What is the average length of the 93 NHDFlowlines on this flow path (km).  What is the average slope of these lines (%).  What is the elevation drop along the flow path (m).   If you divide the elevation drop by the flow path length, do you get a result consistent with that from the mean slope computation?   If it is different is that ok? Think carefully about this last question before you answer it.   The average of a set of ratios (a/b) is not the same thing as the ratio of the average values of a and b.

(6) To be turned in: Make a layout of the Edwards Aquifer overlayed on the San Marcos basin.  What is the river on the right that has low base flow?  What is the river on the left that has high base flow?  Make a base flow balance between these two rivers to see if you can reasonably predict the base flow at the most downstream station (the San Marcos River at Ottine).

(7) To be turned in: Prepare a layout of the San Marcos basin characterized by intensity of residential area. What area (km2) has an upstream land cover that is at least 30% high intensity residential? For each of the stream gage locations, what is the % of upstream land cover that is high intensity residential?