FREC 480 -- GIS in Natural Resource Management
Hydrologic Modeling and Satellite Image Processing

This lab introduces Arc’s hydrologic modeling tools and uses Arc's multi-band raster capabilities to introduce some basic image processing techniques.  The objectives of this project are to--

  • Derive the watershed boundary and sub-basins for the Nanticoke River from a 30M-resolution DEM.
  • Register a raw satellite image (SPOT HRV) to geographic congruence with your other maps for the upper portion of watershed.
  • Derive a vegetation density index (NDVI) from satellite imagery.
  • Analyze vulnerabilities of water features to agricultural runoff by comparing land uses and vegetation densities inside and outside of riparian zones, by watershed sub-basin, and recommend appropriate policies to control this runoff.
The upper Nanticoke watershed spans parts of Kent and Sussex Counties in Delaware and Caroline County in Maryland; the lower Nanticoke river is the boundary between Dorchester and Wicomico Counties in Maryland.   The Nanticoke is the most unspoiled and biologically diverse river on the Delmarva peninsula, and sustains the largest population of bald eagles in the northeast US.

Source data:

1. Hydrologic Model

Arc's hydrologic analysis tools create a number of derivative maps from a DEM.   You will test these tools on some very challenging (flat!) coastal plain terrain.  In the following steps you will delineate a watershed, identify its inferred drainage patterns, categorize its stream segments and delineate its component sub-basins:

  1. Use the FILL tool to craete a version of the DEM with all the local sinks (depressions) filled in.  The output DEM will then have a continuous level or downhill flow path from every interior cell to the map edge. 
  2. Use the FLOWDIRECTION tool on the filled DEM.  The output map reports the downgradient flow direction for each cell. 
  3. Use the BASIN tool on the flow direction map.  The output map will give a unique ID number to each watershed.  Set it's symbology to "Unique Values." Identify the number of the raster clump representing this one watershed and create a binary (0,1) raster map of it.  Convert this to a single-feature polygon shapefile.  In Spatial Analyst Options limit the map extent to the Nanticoke watershed, and use the watershed as a mask if you wish. (Note that your delineation of the Nanticoke basin may include the Wicomico as a tributary, although it is technically a separate watershed; don't worry about it.)
  4. Use the FLOWACCUMULATION tool on the flow direction map.  The output map will report the number of up-gradient cells draining through each cell in the watershed.  You may get a clearer sense of these drainage patterns with a rainbow color ramp, and/or by calculating and displaying the logarithm of this map.
  5. Choose a threshold flow accumulation value that corresponds to the minimum flow accumulation that generates a stream.  Create a map of inferred streams, i.e., all cells that exceed that flow accumulation threshold value.  Check that this inferred stream map corresponds pretty well to the principal streams in the TIGER shapefile, and doesn't extend too far into the uppermost stream reaches.  (If it does, try using a higher flow accumulation threshold.)
  6. Use the STREAMLINK tool on the inferred streams map.  The output map will give a unique ID number to each stream link (segment). Depending on the accumulation threshold value that you used to define inferred streams, you would ideally have 50-100 stream segments; if you have a much larger number, you may want to re-extract inferred streams from the accumulation map using a larger threshold value.  
    Optionally, you can create a shapefile of the stream links with the STREAM TO FEATURE utility.
  7. Use the WATERSHED tool on the flow direction map, with the stream links as targets.   The output map will identify the sub-basin areas that drain to each of the target stream links, giving each sub-basin a unique ID. 
  8. Now use the Raster Calculator to create a binary raster map of agricultural areas with a statement like: landuse == 81 | landuse== 82.  Re-run the FLOWACCUMULATION module on the flow direction map using this ag raster as the weight map to generate an INTEGER (not FLOAT) output map.  This output map will show the flow accumulations from ag cells only.  Divide the ag flow accumulation map by the overall flow accumulation map to calculate percent accumulation from ag (an index of potential vulnerability to agricultural nutrient runoff).  Multiply this map by the binary inferred stream raster to create a raster map of the stream network in the Nanticoke watershed that shows the percentage of runoff from agriculture in each stream segment. You can use the Neighborhood Statistics tool (maximum) to "fatten up" the stream segments for a more appealing display.

I encourage you to experiment with the other hydrologic modeling tools if you wish.  I created a demo of Arc's hydrologic modeling tools for upper Nanticoke (in DE State Plane), using the watershed as a mask.  You can check your resutls against that.

2. Register the SPOT image

A satellite image is basically a multi-band digital image which you add to Arc as as a composite raster layer or as separate rasters. In this section of the project, you will use the Georeferencing tools to "rubber-sheet" an unregistered SPOT satellite image to real-world geographic coordinates.

Add DelDOT's road centerline shapefile for Sussex County to your project.   In the Spatial Analyst Options menu set the map extent to cover all of Sussex County, with a cellsize of 20 meters. 

Before you add the raw SPOT image to your data frame, make sure its coordinate system is "Undefined." Use Arc Catalog to edit its Properties if necessary. Then add the raw SPOT image to your data frame as a multi-band raster layer (not as separate band files).  Zoom to this layer (it should not line up with the shapefiles). The SPOT image should display as a color-infrared composite with band 3 as red, band 2 as green and band 1 as blue; switch the display colors for the bands if necessary.   

Access the Georeferencing toolbar; you will use it register the SPOT image to the TIGER themes.

First, use Georeferencing--Fit to Display to position the SPOT image arbitrarily underneath the road and hydrology shapefiles. Choose colors for the shapefiles that stand out clearly on top of the image.

The process of georeferencing involves linking points on the image to corresponding points (such as road intersections) in the shapefiles, not vice versa: click on the "Add Control Points" button in the Georeferencing toolbar, and click on the image first when creating a link; you should see the image shift to align better with the shapefiles. To place your links as accurately as possible you should be zoomed in very close, so that the image pixels are large squares. Check the table of links as you proceed. Each time you add another link the program recalculates transformation equations that translate the raw coordinates of the image into UTM coordinates.

You can start by placing some approximate (high-error) links using road and/or water features just to get the image roughly positioned under the shapefiles. Then after you create more accurate links you can delete these initial links from the link table. Try to get the image aligned to road intersections as accurately as possible, with minimal Total RMS Error, using at least a second-order transformation (requires 6 or more links) or preferably a third-order transformation (requires 10 or more links). 


Take your time and zoom way in to place your links as accurately as possible; if your image doesn't line up well with the road intersections, it will mess up your subsequent analysis. Once you get a well-aligned image, use Georeferencing--Rectify to create a UTM-projected version with a cell size of 20 meters, using Nearest Neighbor resampling, in IMAGINE Image format. Add the rectified version to your data frame and remove the original version. (Note that the rectified image may reverse the order of the bands.)

In Spatial Analyst Options reset your extent to the whole Nanticoke watershed with cellsize of 20 (meters). You can mask your analysis to the Nanticoke watershed as well if you wish.

3. Extracting NDVI

Add the rectified SPOT image's bands as separate rasters (in Add Data simply double-click on the image icon and you'll see the three bands listed in the image subdirectory). Use the raster calculator to create a normalized difference vegetation index (NDVI) image of the watershed from the registered SPOT image. This normalized band ratio is calculated as 100*(IR-red)/(IR+red).  Since vegetation absorbs visible red and reflects near-IR this ratio provides a useful index of vegetative biomass density. The Raster Calculator expression parser often gets confused over long raster filenames, so I recommend you rename the long bandfile names in the legend to short names like "IR" and "red" so the expression is shorter: e.g. calc1 = 100*(IR-red)/(IR+red). (Make sure you know which band file is IR and which is red!)

If the parser is too stupid to do this in one step, break the process up into multiple steps, e.g., calc1=IR-red; calc2=IR+red; calc3=100*calc1/calc2 where calc3 should be a floating-point raster, not an integer raster. You may have to use the raster calculator's "Float" fuction on the input rasters to obtain a floating-point output raster. Technically, NDVI should have a lower bound of zero, and it's much more useful as an integer raster, so you can obtain this with a final raster calculation such as NDVI2 = (NDVI > 0)*Int(NDVI).

Now create a 30-M resolution NDVI map from the Landsat image: NDVI = 100*(Band1-Band2)/(Band1+Band2). How closely are these two NDVI maps correlated in their overlap area?

4.  Defining riparian buffers

Now define appropriate stream protection buffers around the TIGER water features. Instead of creating uniform-width buffers (been there, done that), try using the Cost-Weighted Distance utility to create variable-width buffers. The cost-weighted distance algorithm calculates the accumulated pixel values from some "cost" map as it moves outward from the target features.

For example, you might try using the Landsat NDVI map as the "cost" surface. Once you get the cost distance map, you can use the raster calculator to identify pixels from which runoff travels through a cumulative NDVI of less than 1,000 vegetative index units. This gives you a variable-width buffer that is wider where vegetation is sparser and narrower where it is dense.

Or you could use the inverse of terrain slope, e.g., cost = 100/[slope+1], as the cost surface, and define buffers where the accumulated inverse slope "cost" is less than some threshold value. These variable-width buffers would be wider where slope is steeper, runoff is moving faster, and a longer flow distance is needed to filter the runoff. (Note that since this terrain is so flat, the integer DEM is kind of "steppy" so the slope map created from it should probably be smoothed by 3x3 or 5x5 neighbor averaging.)

Or you could use the inverse of the cropland runoff index map as a cost surface to create buffers that are wider where the cropland runoff index is higher and more P interception is needed.

Or you could define your buffer strategy from some combination of these. Whatever buffer delineation strategy you use, explain it in your report and include some logical justification for it. (Obviously if you were designing a real-world strategy, you would get guidance from experts in soil science, hydrology, etc.)

Once you have identified a suitable set of riparian buffer areas, compare land uses and NDVI values within these buffers (excluding open water cells themselves) versus land uses and NDVI values outside of the buffers. (NDVI is easier to analyze as an integer raster than as a floatinng-point raster.)  You can use the NDVI map to mask out open water features which will have NDVI values of zero.

5.  Consultant Report: How to Manage Runoff

Get some background information for a brief consultant's report.  What is the current status of the Nanticoke?  What ecosystems does it support?  How serious is the runoff problem?  What are the major sources of runoff?  What are the current runoff control policies, and how effective are they?

Having completed your own analyses, what sort of strategy for controlling agricultural runoff would you recommend for the Nanticoke watershed? What regulations would you suggest? What landowner incentives? How much do you estimate your strategy would cost, and who should bear that cost?

Your report should look as professional as possible, including appropriate graphics to illustrate the steps you followed. The challenge here is to use highly stylized GIS tools to address a messy, complex real-world problem. As you have probably figured out by now, the real limiting factor in most non-trivial GIS analyses isn't data or sofware, it's the analyst's ingenuity.



Look, Pedro, I don't know how they do things down in Juarez, but here in Idaho we have a little something called pride. Understand? Smashing in the face of a pinata that resembles Summer Wheatley is a disgrace to you, me, and the entire Gem State!