Given a coverage of streams and and a coverage of contour lines (with an optional spot elevation coverage), we want:
Let me start over and describe general paths:
The task of calculating stream slopes varies with the data source. Some areas enjoy high-resolution laser altimetry (LIDAR) DEMs made from millions of spot elevations. It ought to be possible to map stream channels of unprecedented accuracy, and to calculate stream slopes on a pixel-pixel basis with LIDAR, though this has not been investigated here.
For much of western Washington, the best source of elevation is 10-meter DEMs. DLG 7.5' contours are slightly preferable, but coverage is sparse. Given 10-meter DEMs, 40-foot contours can be reconstructed to nearly duplicate the original contours. However, the algorithm that interpolates between contours is not as smart as you are. Therefore, the DEMs should not be trusted for stream slopes, or for the creation of contours (such as 10-meter intervals) that do not appear on the paper quad sheets. The matter is further complicated if the DEM has been built from a mix of quad sheets, some containing 20-foot contours, and some containing supplementary contours only at lower elevations. It can take some effort to reconstruct contours for regions spanning many quad sheets. The task is exacerbated by the processing and storage requirements of large datasets. Note,
Mapped rivers are generally superior to calculated rivers. In low-slope areas, calculated rivers are garbage. Sources of mapped rivers include (get out your checkbook) DNR, USGS 100K rivers, some USGS 7.5' DLG files, and various agencies.
The crux of the technique is to intersect the rivers and the contour lines. The best assumption is that the river slope is uniform between contour lines.
The first problem is making sure that all the rivers point downhill. In cases where the rivers branch in a tree-like structure, ARC/INFO provides techniques for flipping rivers. Where rivers are braided or form distributory patterns, hand-editing is necessary. Where drainage canals crisscross the landscape, it's anybody's guess.
Another problem is when streams do not align with the contour coverage. Streams can cross contour lines so that segments appear to be perfectly flat or to travel uphill. You will always get better results if these are fixed by hand-editing. When software encounters these problems, it attempts to ignore these bogus intersections. Often, though, the software flags river segments are susp... [ I will have to finish this later. In the meantime, you can look at my latest attempts, including new versions of amls, at sno2001].