Exercise 6: Nonpoint Sources in the Mission Basin

CE 394K GIS in Water Resources - Spring 1998
University of Texas at Austin

Prepared by: Ann Quenzer, Ferdi Hellweger and David Maidment
Edited for Spring 1998 by: Patrice Melancon

Table of Contents

    1. Getting Acquainted with the Basin
    2. Annual Precipitation in the Basin
    3. Create a Runoff Grid
    4. Linking Land Use to Expected Mean Concentration (EMC) of Pollutants
    5. Estimating Annual Loadings
    6. Cleaning Up

Goals of the Exercise

The original exercise was written by Bill Saunders. This exercise is modified by using different methods to calculate the loads and to compile the data. In the modified exercise, the calculations are done within the ArcView environment.

The purpose of this exercise is to show how Arcview 3.0 with Spatial Analyis and the Hydrology Extensions can be used to provide estimates of nonpoint source pollutant loads to a receiving body of water. For this exercise, the receiving water is Copano Bay in South Texas, which the Aransas River, Mission River, and Copano Creek all drain into. These streams are all contained within the San Antonio-Nueces coastal basin, a 7000 sq km basin which is bounded by the San Antonio River and Nueces River basins (hence the name).

You will use a coverage of land uses in the Mission Basin and associate Estimated Mean Concentration (EMC) values of various pollutant constituents with those land uses. Then, for a selected pollutant, you will create an EMC grid and multiply it by a grid of average annual rainfall runoff in the basin. The result will be the annual loading of the constituent to each grid cell in the basin, i.e.

Load = Flow * Concentration, or
L (Mass/Time) = Q (Volume/Time) * C (Mass/Volume)

Finally, you'll perform a flow accumulation on the cell-based loads to determine average annual loads to Copano Bay.

Computer and Data Requirements

This exercise makes use of ArcView 3.0 using the Spatial Analysis and the Hydrology Extensions. If you would like to work strictly on the alphas, feel free to do so, but the entire exercise is conducted in ArcView, so if you prefer the PC, feel free to work on them for the majority of the exercise. The data needed for this exercise is located in the LRC Class directory at: lrc/class/maidment/giswr/nonpoint/gisfiles.

If you will be working on the alphas you will need to:

Ftp the files to your alpha account (be sure that you are set to "bin")

Import the .e00 files using ArcInfo (syntax is import {grid/cover} name.e00 name) - be sure that you are in whatever directory you will work in when you do this.

If you will be working on a PC you will need to: Copy the .apr, .avl, and .dbf files to your workspace

Import the ".e00" files using the ESRI Import 71 function; use the browse to go to the lrc class account (by map network drive) rather than copying the .e00 files to your workspace. You will do this because the .e00 files are rather large and this way you won't have them taking up extra space.

Be sure to get all of the following files: Bay.e00 (coverage)

Burndem.e00 (grid)

Basin.e00 (coverage)

Mislu.e00 (coverage)

Mislugr.e00 (grid)

Precip.e00 (grid)

Streams.e00 (coverage)




All the data needed for the exercise is also available via anonymous ftp from ftp.crwr.utexas.edu/pub/gisclass/nonpoint/gisfiles. Instructions on how to use anonymous ftp.   You can also downloaed these files from nonpoint.zip. Some people have had trouble importing the grids Precip, Burndem and Mislugr.  A zip file containing imported versions of these grids is obtainable as npgrid.zip

This exercise is memory intensive. You should plan to do this exercise in one sitting if at all possible and use the c:\temp directory by creating a new folder under it for your workspace. If you have a lot of room on your LRC account, you could use that also.

Assignment Procedure

If you haven't already done so, import all of the ".e00" files into your workspace. Once you have imported the files, delete the .e00 files. Remember as you work through the exercise, you can hide the legends if you would like to. Also, on many of the grids that you will be calculating, you may wish to make the NoData transparent rather than black.

1. Getting Acquainted with the Basin

This part of the exercise is intended for you to familiarize yourself with the region in which you'll be working, the Mission River watershed which drains into Copano Bay on the inner coastal waterway system of South Texas.

Starting the Project:

Start ArcView and open the project misbasin.apr.

Go to the project window and select Project/Properties. In the box called Work Directory, set the path to where you will be working (for example, c:/temp// if you will be working on the hard drive; or if I was going to work in my LRC account, I would use z:/melancpa//, if you were going to work on your LRC account, you would replace melancpa with your username; for alphas, you will probably be using /home1/alpha62/username/subdirectory that you choose). This is very important so that the grids/coverages that you will be creating will be saved in the right place.

Click on File/Extensions and check that the Spatial Analyst and Hydrologic Modeling are checked on.

Check out the Digital Elevation Model (DEM) of the region:

Go to the Project Window and Open a new view. By going to the View/Properties, change the name of the view to ProjArea.

Add the DEM grid to the view by clicking on , change the Data Source Type to Grid Data Source, highlight burndem, and click OK. Once the theme has been added, make the Burndem grid active and check the box next to the theme to view the DEM of the area. The Burndem grid is a specially modified DEM of the region that has the land surface cells not on the stream raised by 2000m from their original elevation so that the cells on the stream will be clearly defined and coincident with the mapped streams of the Mission basin.

You can see in the shaded image, part of the Nueces River to the South and the end of the San Antonio River to the North, both flowing into the Texas coastal waterways to the East. The Mission Basin, which we are going to study in this exercise, is the drainage area for the Mission River. Click on the button, change the Data Source Type to Feature Data Sources, and add the theme streams.

Now, lets take a look at some cell elevations within the grid:

Make the Burndem theme active by clicking on its display in the Legend bar of the View window. Click on the identify tool .

Go to the view and click on some points on the grid. If you zoom in on a stream, you can see the vector streams lying within the grid cells that define the gridded streams, and that the land surface cells off the stream are raised signficantly compared with those on the stream.

These are land surface elevations in meters above mean sea level.

Let's take a look at the properties of this grid. With the grid dem active, choose Theme/Properties. Make note of the following: grid cell-size, elevation range in the basin, and the projection. The parameters of this projection are defined by the Texas State Mapping System (TSMS).

To Be Turned In: What is the cell size of the grid? How many rows and columns does the grid have? What is the total number of cells in this grid? What land surface area is covered by this grid?

Now overlay the basin border, stream network, and bay network,:

Make the ProjArea view active. Click on the button, change the Data Source Type to Feature Data Sources, and highlight the three feature data sources: basin, streams, and bay by using the shift key (add the polygon coverage of bay and basin by clicking once on the folder next to these and highlighting the polygon). Click OK.

Check the three boxes for the newly added themes. Change the colors of the themes as desired by double clicking on the theme symbol to activate the legend editor. It is particularly useful to make the colored interior of the Basin theme transparent so that you can see the streams and the DEM within the basin. In the Fill Palette, the transparent option is the clear box in the top left corner of the fill shading options available. When you choose a color remember to select outline in the Fill Palette.

To view all the themes at once, have the Streams theme on top, with Bay below it, followed by Basin, and finally DEM.

Copano Bay is the interior bay (the one closest to the steams network). It looks somewhat like a hammer head. The stream threshold value for this particular network was 8000 cells. The basin border was created by delineating all the subwatersheds in the basin, converting those grids to coverages (using the gridpoly command) and then combining the coverages with the Arc/Info mapjoin command. The 3 largest streams that drain to Copano Bay are the Aransas River, Mission River, and Copano Creek. The Mission River is the one that actually drains into the Bay.

2. Annual Precipitation in the Basin

Precipitation in Texas has an East - West gradient and is higher near the coast. The USDA Natural Resources Conservation Service and Oregon State University are publishing annual and monthly precipitation grids of the United States, developed using an interpolation process called PRISM, and verified by consultation with State climatologists. In this exercise, you will use the portion of this annual precipitation grid for the San Antonio - Nueces basin.

Using the button, add the grid precip (remember to change to grid data source). For this part of the exercise, it will be useful to make the colored interior of the bay transparent like we did with the basin theme earlier.

When the themes show up in the legend of the view, double click on the precip symbol to bring up the Legend Editor window. In the Legend Editor, change the color scheme of precip to get a ramped effect. Click on the arrow next to the Color Ramps box, scroll down, and select the Precipitation color scheme. When you are finished, select in the Legend Editor window and then close both the Legend Editor and Color Palette. Finally, select for the precip theme in the View Legend. You should be able to easily see the distribution of annual precipitation in the Mission Basin.

Save the project so if you have a crash you don't have to recreate it later.

Use your identify tool to check out some of the precipitation values. Note that the units of these values are in millimeters/year. With precip theme highlighted, use Theme/Properties to check out cell size, number of cells, etc. Also, open up the table of attributes for this theme, and using Field/Statistics, check out some of the information on the precipitation values. Be sure that you depress the value button to select the value column before using Field/Statistics. Make a histogram of the precipitation using the histogram button in the view window with the precipitation theme highlighted.

To Be Turned In: What is the range of the precipitation across the basin in mm/yr? What is the basin mean precipitation (mm/yr)? What are the corresponding values in in/yr? What grid cell size is used? Show the histogram of the basin precipitation.

3. Create a Runoff Grid

In her thesis, "A GIS Assessment of Total Loads and Water Quality of the Corpus Christi Bay System," Ann Quenzer has determined the mathematical relationship between precipitation, land use, and runoff. A detailed explanation is provided in her thesis (which is not yet on the web, but you can email her at quenzer@mail.utexas.edu with specific questions). You can also take a look at a power point presentation that explains much of it.

The rainfall/runoff relationships are:

Q = 0.008312 * exp (0.011415 * P) For Agricultural Land

Q = 0.0053 * exp (0.010993 * P) For Rangeland, Forest, Barren, and Other

Q = 0.24 * P For Urban Land

Note that Q for water = 0.

Where Q = runoff (mm/yr) and P = precipitation (mm/yr)

The script that we will use looks at a grid of the land use and checks the value of the grid cell to decide which rainfall/runoff relationship is appropriate. Before we can utilize these relationships, we need to bring in the grid of the land use coverage for the area. Using the button, add the mislugr grid (remember to change to grid data source).

The grid mislugr was created from the mislu coverage which was clipped from a larger land use/land cover coverage to fit just the area that we are concerned with. The mislu coverage uses the USGS Land Use and Land Cover Files and the Anderson Land Use Code classification system, in which major land use types are broken out into 9 categories.

Refer to the Statsgo exercise that we just completed for more detail on this subject. In addition, other information about the land use/land cover files is contained in our GIS Hydrology Home Page. Files based on 1:250,000 map sheet names can be downloaded from the USGS Land Use/Land Cover site. These files are in UTM coordinates which can cause problems because adjacent land use maps can be in different UTM zones. A more convenient source for land use files in Texas is the TNRIS ftp server site under the heading Land Use/Land Cover (ascii data).

We are going to use the color scheme that we developed for land use in the Statsgo exercise. Double click on the mislugr symbol to bring up the Legend Editor, click on load, and select landuse.avl. When it asks for Field, select "value." Now select for the mislugr theme in your view and note where all the different land use categories in the basin are. Here is what the land use grid should look like:

A script has been written for you to calculate the runoff for the Mission River Basin. The script inserts the precip grid and the mislugr grid into the rainfall/runoff equations discussed earlier to calculate the runoff grid (mm/yr).

You are now going to calculate a grid. Before you do this, go to Analysis/Properties and set the Analysis Extent to "Same as Mislugr" and Analysis Cell Size to "Same As DEM." Go to the drop down menu called NPS Analysis and select Runoff Grid. You will be asked to select the View whose themes will be used for the computation (ProjArea) and the themes within that view which will be used as the precipitation and land use inputs.

The runoff grid is calculated and added to the view as a grid called "runland". You can change the legend colors the same way as the precipitation grid was changed or use a different color scheme if desired. Here is an example of what the image should look like.

Make sure the runland theme is active. Now use the identify toolto investigate values of runoff throughout the basin:

Click on a number of different locations in the basin to identify values of average annual runoff at those points.

Open up the table of attributes for the runland theme, and using Field/Statistics, check out some of the information on the runoff values.

To Be Turned In: What is the mean runoff from the basin (mm/yr)? What is the range in the runoff (mm/yr)? Prepared a histogram of the runoff grid and compare it to that of the rainfall grid. Plot a graph of the functions used to convert precipitation to runoff and discuss how the nonlinear transformation of precipitation to runoff affects the distribution of the runoff as compared to the precipitation.

4. Linking Land Use to Expected Mean Concentration (EMC) of Pollutants

Now you are going to associate Estimated Mean Concentration (EMC) values of various pollutant constituents to the land use types. The Natural Resources Conservation Service of the US Dept. of Agriculture (USDA-NRCS) has provided us with a table of some EMC values. This table contains EMC values for a number of different constituents. Note that there are different EMC values for each of the Urban Land Use codes (residential, commercial, industrial, transportation, mixed) but only one EMC value for the Agriculture, Rangeland, and Barren Land Use categories. In addition to this table, we will use the Rangeland EMC values for Forest Land Uses. For this exercise, we will be focusing on total phosphorous loads. The landuse codes and the associated phosphorous loadings have been compiled into a .dbf file called emca.dbf (that you should have copied into your workspace at the beginning of the exercise). If you would like to, you can view this table by bringing it up in excel. You'll need to join these EMC values to the mislu polygon attribute table in order to associate them with land use

Add the mislu coverage to the view. Rename this mislu theme to EMC by highlighting it and clicking on Theme/Properties and changing the name. Also, apply the landuse.avl color legend by using the load button in the Legend Editor. Open the table Attributes of EMC using the table button . Notice there are no phosphorous concentrations here yet.

In the ArcView project window, highlight the Table icon, click on Add, and add in the emca.dbf file. This will automatically bring up the emca.dbf table.

***Note - If you look closely, the landuse field is called "landuses-i". Even if you try making the box bigger, it is still going to read "landuses-i". It should be called "landuses-id", the same as that field in the Attributes of EMC table that we are going to join with. However, the join step will still work, so don't worry about it. ***

Then open the Attributes of EMC table. Now, click on the emca.dbf table and click on the landuses-i field (it will look indented). Then click on the Attributes of EMC and click on the landuses-id field (it will look indented). Remember that the order that you do this is important. Now, choose Table/Join. If you look at the Attributes of EMC table, you will see that it now contains the phosphorous loading information.

Then, double Click on the EMC theme symbol to bring up the Legend Editor. In the Legend Editor, select the Legend Type to be Graduated Color, the Classification Field to be Tp. Under the Classify button, choose number of classes: 8 classification fields. This will cause the symbol color to ramp from a light color for 0 mg/L to a darker color for the Max EMC. Choose whatever graduated color you like and your changes from the Legend Editor window. Select for the EMC theme in your the view to get a look at the Phosphorus EMC map for the Mission Basin.

Notice the large area in the northeast of the basin that contributes 0 mg/L of Total Phosphorus. This corresponds to forest and rangeland land use classifications that don't contribute much phosphorus to runoff because fertilizers are not applied to this land and it is not disturbed by land cultivation. The main nonpoint source of phosphorus is from the agricultural lands in the south end of the basin. There can also be significant point sources of phosphorus from municipal treatment plant effluent.

We will now convert the land use theme to an equivalent grid showing the Total Phosphorus concentrations in mg/l over the landscape. Before you do this, go to Analysis/Properties and set the Analysis Extent to "Same As Mislugr" and Analysis Cell Size to "Same As DEM." Go to the NPS Analysis pull down menu and select "EMC Grid." Pick EMC as the land use theme and Tp as the concentration field. The new grid (called "concgrid") will look very similar to the EMC coverage just shown, however it will be a grid rather than a coverage. You can get information on the grid by Theme/Properties/Definition.

Your grid should look something like this:

5.Estimating Annual Loadings


We will now convert the concgrid to a grid showing the Total Phosphorus Loading to the landscape in Kg/d.

The total loading grid is found by multiplying the concentration grid by the runoff grid. The Avenue script loadgrid has been written for you to calculate the annual nonpoint source land surface loading grid. This grid could be used to add in point sources and atmospheric deposition. However, for this assignment we will only deal with the land surface loadings.

Go to Analysis/Properties and set the Analysis Extent to "Same As Runland" and Analysis Cell Size to "Same As DEM." Go to the NPS Analysis pull down menu and select "Landload Grid." Pick concgrid as the concentration grid and runland as the runoff grid. The resultant grid is called "loadgrid." The script makes a conversion of mg/l (concentration grid) * mm/yr (runoff grid) to the Kg/d (loading grid). This is a more conventional way of looking at loadings. The conversion constant of 1/36525 is because the input units are mm/yr for runoff and mg/l for concentration, the output units are kg/d for loading, there are 1,000,000 mg/kg, each cell has a 10,000 m2 area, and there are 365.25 days/year.

In effect, for each cell, the load is computed as

Load = Runoff * Concentration * Cell Area (1)

Your loadgrid should look something like this:

To Be Turned In: Do a units analysis of the above formula to show why dividing the product of the runoff (mm/yr) and concentration (mg/l) grids by 36525 leads to the correct units for the loading (Kg/d).


This part of the procedure includes a flow accumulation. In order to perform this, the river system needs to be connected to the bay system. This will allow for the nonpoint source values to be picked from a centroid in the bay polygon coverage. You will use the script connect.ave to do this. This script drops the elevation of the bays below the elevation of the adjacent land surface. The centroids of the bays are then dropped further so the flow accumulates at the centroid. The values can then be picked from the centroids.

Add the bay theme as an arc (remember, click once on the folder next to bay and select arc). Make the bay arc theme, the bay polygon theme, and the DEM themes active by highlighting them (use the shift key to select more than one).

Go to Analysis/Properties and check that the Analysis Extent and Analysis Cell Size are set to "Same As DEM." Go to the NPS Analysis pull down menu and select "Connect Bay&River." Once the program is running it will ask you if you would like to save the temporary data sets. I recommend you don't due to limited file space. The temporary files are not needed. A new grid is calculated and is called gridconnect.

Next a flow direction must be done on gridconnect. Make the gridconnect theme active. Go to Analysis/Properties and check that the Analysis Extent and Analysis Cell Size are set to "Same As DEM." Go to the NPS Analysis pull down menu and select "Flow Direction."

Once the flow direction is done, click on the  of the resulting grid to see if the flow direction looks reasonable.


We will now accumulate the cell-based values for the annual Phosphorus load to determine downstream values of average annual loads.

The script wfacgrid.ave executes the command that is known as a WEIGHTED flow accumulation. This is an extension of the regular flow accumulation command that uses the flow direction grid to count the number of cells upstream of each particular cell in the grid. It then stores that particular count as the value for that cell. For the WEIGHTED flow accumulation command, a weight grid (in this case, loadgrid) is used and the SUM of the values of that grid in the cells upstream of a particular cell is what is stored as the value of that cell.

Go to Analysis/Properties and set the Analysis Extent to "Same As Loadgrid" and Analysis Cell Size to "Same As DEM." Go to the NPS Analysis pull down menu and select "Weighted Flow Accumulation." Pick the appropriate themes when prompted (the flow direction and loadgrid). The resultant grid called wfacload will be added to the view.

With the wfacload active, use the inquiry buttonto determine the average annual phosphorus loadings along the Mission River near Copano Bay. To make the river easier to see in the flow accumulation grid, you can classify the data using graduated scale of standard deviations with 1/4 standard deviation units. Double-click on the wfacload theme symbol and, in the Legend Editor, change the Legend Type to Graduated Color. Click on the Classify button and change the type to Standard Deviation and break classes at 1/4 Std Dev. This has the effect of differentiating the larger load areas better than the standard classification. Make NoData clear/transparent. Also, move the bay arc coverage above the wfacload grid. Click a few times along the main branch of the rivers and their tributaries to see how the loading accumulates from the various parts of the basin.

Open up the attributes table of the wfacload and use the Field/Statistics to look at the information on the loads.

To be turned in: What is the annual phosphorous loading from nonpoint sources in the Mission Basin at the outlet point of the Mission River (use the inquiry/identify tool)? What is the mean phosphorous load for the basin?

We are going to identify the phosphorus loads coming into Copano Bay from the Mission River. Let's make a series of queries of the load accumulation grid so that we can make a vector map of river sections colored according to the load that they receive.

Begin by making the wfacload active.
Click on Analysis/Map Query.
In the map query, enter the equation: [wfacload] > 0.asgrid. Click Evaluate. This will give you a theme called Map Query 1.
Click on Theme/Properties and rename the theme to Load 0-30.
Close the old Map Query by double clicking on the upper left corner. Each map query must be closed and started over.
Repeat this procedure for each of the following equations:
[wfacload] > 30.asgrid (Rename the theme to Load 30-60)
[wfacload] > 60.asgrid (Rename the theme to Load 60-90)
[wfacload] > 90.asgrid (Rename the theme to Load 90-120)
[wfacload] > 120.asgrid (Rename the theme to Load > 120)

Once all the grids are added to the view, you will need to change each to a shapefile. This will make displaying and plotting the river loadings easier.

Begin by making the Load 0-30 theme active. Click on Theme/Convert to Shapefile. Name the file Load0. When it asks if you want to display it in the view, say No (for some reason it creates an error if you do). Now, go back and add this shapefile using the  button. Do this for each of the remaining river loading grids. Also, after adding the shapefiles, you may go back and delete the themes that we created using the map query. For each of the shapefiles, you will need to open the Legend Editor, select Unique Value, and Gridcode. Then, make the zero value transparent and remove the outline. You can remove the outline by clicking on the bucket button and changing the outline box at the bottom to "none." Remove the outline from the one value and change the color appropriately to be able to differentiate different loading values, possibly by reflecting the graduated loadings to the bay (0 being the lightest color and >120 being a darker color). You will have to do this for each of the loading shapefiles separately. You may use the Custom button in the Fill Pallete to customize the colors to your liking.

** Note - You will see two extraneous streams. This is due to the DEM being larger than the study area. Just ignore these two.

To Be Turned In: A layout showing the streams within the Mission Basin showing their respective phosphorus loadings.

6. Cleaning Up

If you want to, I would suggest you keep the .apr file because it has some useful scripts that you may want to use later.

Other than that, you can pretty much delete all of the files/folders that are in your working directory.

Ok, you're done! Hope you enjoyed it!

Go to the Class Home Page