Last updated 05/26/97 - GISHydro97 CD Version
Ferdi Hellweger and David Maidment
AGREE - DEM Surface Reconditioning System
TABLE OF CONTENTS
AGREE is a surface reconditioning system for Digital Elevation Models (DEMs).
The system adjusts the surface elevation of the DEM to be consistent with
a vector coverage. The vector coverage can be a stream or ridge line coverage.
The system is written in ARC/INFO's Arc Macro Language (AML).
A quick overview of the procedure is as follows:
Figures 2 and 3 are shaded pictures of an original and a surface reconditioned
Drop/raise the elevation of the cells corresponding to the vector lines
a certain amount (smoothdist).
Buffer the vector lines (buffer).
Assign elevation to the cells inside the buffer so that there is a straight
line path from the vector line to the original elevation just outside the
Drop/raise the elevation of the cells corresponding to the vector lines
a certain amount (sharpdist). This was added in Version 1.1.
2. Original DEM.
3. Surface Reconditioned DEM.
This system is an alternative to the 'burning in the streams' process
which simply drops the elevation of the cells corresponding to the streams
(followed by a filling of the newly created sinks).
The next section describes the methodology of the system (including
on-line visualization with Java). Then a few points for usign the system
are discussed. Finally a case study is presented comparing surface reconditioning
to 'burning in the streams'.
WHAT'S NEW IN VERSION 1.1
AGREE Version 1.1 has the added capability to drop/raise the cells of the
DEM corresponding to the vector lines a certain amount. This is effectively
a 'burning in the streams' after the original AGREE proceedure.
The reason for making the revision is as follows. Most of the sinks
in the DEM are located on the streams. This means that filling after the
original AGREE proceedure could wipe out the smoothed channel upstream
of the sink. This can be eliminated by droping the stream a large distance.
That way any filling done to remove sinks in the stream remains in the
trench of the stream.
A quick overview of the proceedure was presented in the introduction. Figure
1 illustrates the concept interactively (Java capable browser is needed).
The figure is a cross section on a stream. The surface elevation and stream
location can be changed by 'dragging' and the smooth drop/raise, sharp
drop/raise and buffer distance can be specified as well.
Figure 1 (a). Surface Reconditioning Methodology (Screen
Capture of Java Applet).
Figure 1 (b). Surface Reconditioning Methodology( Java
source code ).
If Figure 1 (b) does not work:
The files on the CD are conforming to the 8.3 file convention. For
that reason we had to rename the 'agree.class' file to 'agree.cla'. To
work the file needs to be named 'agree.class'. To run the applet in Figure
1 you will need to move this HTML file (agree.htm) and the 'agree.cla'
file to a location where you have write access. Then rename the 'agree.cla'
file to 'agree.class'.
Compute the vector grid (vectgrid). The cells in the vector
grid corresponding to the lines in the vector coverage have data. All other
cells have no data.
vectgrid = linegrid ( %vectcov% )
Compute the smooth drop/raise grid (smogrid). The cells in
the smooth drop/raise grid corresponding to the vector lines have an elevation
equal to that of the original DEM (oelevgrid) plus a certain distance
(smoothdist). All other cells have no data.
smogrid = int ( setnull ( isnull ( vectgrid ), ( %oelevgrid% + %smoothdist%
) ) )
Compute the vector distance grids (vectdist and vectallo).
The cells in the vector distance grid (vectdist) store the distance
to the closest vector cell. The cells in vector allocation grid (vectallo)
store the elevation of the closest vector cell.
vectdist = eucdistance( smogrid, #, vectallo, #, # )
Compute the buffer grid (bufgrid2). The cells in the buffer
grid outside the buffer distance (buffer) store the original elevation.
The cells in the buffer grid inside the buffer distance have no data.
bufgrid1 = con ( ( vectdist > ( %buffer% - ( %cellsize% / 2 ) ) ),
Compute the buffer distance grids (bufdist and bufallo).
The cells in the buffer distance grid (bufdist) store the distance
to the closest valued buffer grid cell (bufgrid2). The cells in
buffer allocation grid (bufallo) store the elevation of the closest
valued buffer cell.
bufgrid2 = int ( setnull ( bufgrid1 == 0, %oelevgrid% ) )
bufdist = eucdistance( bufgrid2, #, bufallo, #, # )
Compute the smooth modified elevation grid (smoelev). The
cells in the smooth modified elevation grid store the results of the smooth
surface reconditioning process. Note that for cells outside the buffer
the the equation below assigns the original elevation.
smoelev = vectallo + ( ( bufallo - vectallo ) / ( bufdist + vectdist
) ) * vectdist
Compute the sharp drop/raise grid (shagrid). The cells in
the sharp drop/raise grid corresponding to the vector lines have an elevation
equal to that of the smooth modified elevation grid (smoelev) plus
a certain distance (sharpdist). All other cells have no data.
shagrid = int ( setnull ( isnull ( vectgrid ), ( smoelev + %sharpdist%
) ) )
Compute the modified elevation grid (elevgrid). The cells
in the modified elevation grid store the results of the surface reconditioning
process. Note that for cells outside the buffer the the equation below
assigns the original elevation.
elevgrid = con ( isnull ( vectgrid ), smoelev, shagrid )
USING THE SYSTEM
Getting the System
The system consists of one AML file called agree.aml. The file can be
downloaded from our anonymous ftp site:
The file can also be downloaded from this site:
Starting the System
Password: your e-mail address
The system can be started from GRID with the AML &RUN directive
Grid: &run agree.aml
Alternatively the input parameters can be passed to the system as follows:
AGREE: INPUT REQUIRED
AGREE: Elevation Grid: tkelev
AGREE: Vector Coverage: tkstr
AGREE: Buffer Distance: 1000
AGREE: Note that for the upcoming smooth and sharp drop/raise
AGREE: distance positive is up and negative is down.
AGREE: Smooth Drop/Raise Distance: 10
AGREE: Sharp Drop/Raise Distance: 500
Grid: &run agree.aml tkelev tkstr 1000 10 500
Input Data Description
Elevation Grid. The original elevation grid (DEM) of the area. The
DEM does not have to be 'filled' in advance.
Vector Coverage. The stream or ridgeline coverage of the area.
Buffer Distance. The buffer distance controls the spatial extent
of the surface reconditioning. This distance should be set roughly equal
to or slightly larger than the approximate spatial scale of error among
the elevation grid and vector coverage. The spatial scale of the error
can be determined by delineating streams or subbasins from the original
DEM and comparing those streams to the lines in the vector coverage. If,
for example, the two lines are found to vary at most by about 400 meters,
the buffer distance might be set to 600 meters.
Smooth Drop/Raise Distance. The smooth drop/raise distance controls
how much the cells corresponding to the vectors are droped/raised. In order
to develop some guidelines for the smooth drop/raise distance a formula
was developed which normalizes the distance based on the average surface
slope inside the buffer and the buffer distance:
(smooth drop/raise distance) = (mean surface slope inside buffer) *
(buffer distance) * (forcing factor)
The forcing factor controls the magnitude of the alteration. If it is set
to 0.00 the vector cells will remain at the original elevation and the
slope inside the buffer will be fairly close to the original one. A factor
of 0.50 will result in a rough doubling of the slope inside the buffer.
A factor of 0.10 was found to work well for the Tenkiller Reservoir drainage
area (see the case study below). It is important to realize that this calculation
should be used only to get a rough idea of the order of magnitude for the
smooth drop/raise distance.
Sharp Drop/Raise Distance. The sharp drop/raise distance controls
how much the cells corresponding to the vectors are droped/raised after
the smooth modified elevation grid is computed. This is essentially digging
a trench/raising a wall. If vector elevation for the subsequent hydrologic
analysis is not essential the sharp drop/raise distance should be large
Post-Processing the Data
The modified elevation grid is saved as 'elevgrid'. Note that the system
does not fill sinks. Before doing hydrologic calculations with the modified
elevation grid sinks should be filled with the grid FILL command.
CASE STUDY: SURFACE RECONDITIONING VS. BURNING IN STREAMS
The Tenkiller Reservoir drainage basin was used as a case study. The filled
DEM was used as input elevation grid. The RF1 stream coverage was used
as input vector grid. Modified elevation grids were created using the 'burning
in the streams' method and the surface reconditioning method. Streams were
then delineated from both the two different modified elevation grids using
the grid FLOWDIRECTION, FLOWACCUMULATION, CON and STREAMLINE functions.
A part of the study area which illustrates the differences among the
two methods was chosen for the subsequent discussion. The paragraphs and
figures below outline the major differences in the two methods.
Figure 4 shows the original DEM and RF1 streams in blue. Note that there
is an obvious discrepancy in the two data sets. Also note the spatial scale
of the error which is about four cells or 400 meters.
4. Original DEM and RF1 Streams.
The 'burning in the streams' method lowers the elevation of the cells corresponding
to the streams (RF1) a certain distance. This will artificially increase
the incentive of the water to enter the stream. It is like digging a trench.
Note that it is inherent in the method that the spatial scale of the correction
to the DEM is one cell size. We will later see that this causes a problem,
because the spatial scale of the error was about four cells.
In this case the trench was five feet deep. Figure 5 show the burned
DEM and the RF1 streams in blue. Note that the process actually created
a couple of islands in the stream bed.
5. Burned DEM and RF1 Streams.
Streams were delineated from the burned DEM. Figure 6 shows the resulting
streams in red. Note the parallel streams created. This is a frequent problem
resulting from the 'burning in the streams' method. Also note that this
error can not be corrected by filling sinks, because neither side of the
parallel stream is a sink.
6. Burned DEM and Burned Streams.
The surface of the DEM was reconditioned with a buffer distance of 1,000
(ten cells) and a smooth drop/raise distance of -5 ft (calculated based
on a forcing factor of 0.10). The sharp drop/raise distance was chosen
to be zero. Figure 7 shows the surface reconditioned DEM and the RF1 streams
7. Surface Reconditioned DEM and RF1 Streams.
Streams were delineated from the (filled) surface reconditioned DEM. Figure
8 shows the surface reconditioned DEM and the surface reconditioned streams
in green. Note that the parallel stream problem has been eliminated.
8. Surface Reconditioned DEM and Surface Reconditioned Streams.
Figure 9 shows the original DEM with the RF1 streams in blue, the burned
streams in red and the surface reconditioned streams in green.
9. Original DEM and All Streams.
TXDOT Example Slides
AGREE was used on the TXDOT study region. The 500 m DEM and Rf1 stream
coverage were used as input. The DEM and the RF1 agree in areas of pronounced
topography and disagree in flat areas (especially near the coast). In areas
of pronounced topography the spacial scale of error is less than 500 m.
The streams delineated from the AGREE DEM are therefore similar to those
delineated from the burned DEM. In flat areas the spacial scale of error
is significantly larger. The topography is so flat that it does not matter
if streams are burned in or AGREE is used. The water will take the closest
path to the Rf1 in either case. The streams delineated from the AGREE DEM
are therefore, again, similar to those delineated from the burned DEM.
Below are some slides illustrating an example of where the stream network
delineated from the AGREE DEM is significantly different from that delineated
from the burned DEM. The whole region was checked at this scale. There
are only a few cases where the difference is this significant.
Input DEM: 500 m DEM
Input Vector: Rf1
Buffer: 2,000 m
Smooth Drop/Raise Distance: -10 m
Sharp Drop/Raise Distance: -10,000 m
to Ferdi Hellweger's Home Page
to Ferdi Hellweger's Home Page