Last updated 06/09/96
Ferdi Hellweger

HECSTRC - Stream Cross Section Data Management System



HECSTRC is a cross section data management system for stream Files. The system has routines which allow the user to mark, add, see, edit and delete cross sections and their attributes. The system is writen in Arc/INFO's Arc Macro Language (AML).


Cross section locations are defined with dynamic segmentation. The dynamic segmentation system is commonly used when working with linear features, because it is more convenient. With dynamic segmentation points in space are located by specifying a measure (like river mile) along a route (like river name).

In this system each river reach is considered route. Set up of the dynamic segmentation involves the grouping of all the arcs belonging to the same reach into one route. The grouping is done via a common attribute in the arc attribute table (AAT). Measures are computed in miles from the downstream end of the river.


Cross section data is stored in two INFO tables. The first table (.cr1) stores the location and general information for each cross section. The second table (.cr2) stores the cross section stations and elevations. The .cr2 table has one record for each cross section station which means there is a one-to-many link between the two tables. Arc/INFO does not maintain the relation from the table to the line coverage which means the user can manipulate the tables (including adding and deleting cross sections).

The attribute fields were based on the basic data requirements of the Hydraulic Engineering Center's River Analysis System (HEC-RAS) as described in "HEC-RAS River Analysis System - User's Manual", Hydraulic Engineering Center, US Army Corps of Engineers, July 1995. Please refer to that documentation for a more detailed description of the attributes.

The following data is stored for each cross section:

reach - reach name
measure - distance from downstream end of reach*
station - station*
desc - description
x1,2..500 - cross section 1,2..500 station
y1,2..500 - cross section 1,2..500 elevation
lob_drl - downstream reach length for left overbank
cha_drl - downstream reach length for channel
rob_drl - downstream reach length for right overbank
lob_n - Manning's n value for left overbank
cha_n - Manning's n value for channel
rob_n - Manning's n value for righ overbank
maichax1 - first main channel bank station
maichax2 - second main channel bank station
con_coef - contraction coefficient
exp_coef - expansion coefficient

* the measure and station fields both store the distance from the downstream end of the reach. The measure field is used in the dynamic segmentation and changing the measure value will actually move the cross section location up or downstream. The station field is not used in dynamic segmentation and can contain any value.


The system consists of 6 AML programs which can be viewed and download by clicking on the hyperlinks below. Alternatively the programs can be downloaded via anonymous ftp from

hecstrc.aml - set up and initiate HECSTRC environment (arc).
hecmark.aml - mark cross section locations (arcplot).
hecadd.aml - enter new cross section data (arcplot).
hecsee.aml - view existing cross section data (arcplot).
hecedit.aml - edit existing cross section data (arcplot).
hecdel.aml - delete existing cross section data (arcplot).


The Tenkiller Reservoir drainage basin was used to develop the system and serves as input data for the sample application. The sample application will involve addition, examination and manipulation of cross section data at several locations of the stream network.

Step 1. Download the programs and sample coverage.
See the 'AML Programs' section above for information on how to download the programs. The sample data is a line coverage in export format. The file is called tkst.e00 and can be downloaded from Import the coverage with the arc 'import' command.

Step 2. Start HECSTRC.
Run the hecstrc.aml program from the arc prompt using the arc '&run' command. Enter the name of the stream coverage when prompted. After creating the cross section tables and setting up the dynamic segmentation the program will enter Arcplot and display the coverage.

Step 3. Display reach names.
Use the arc 'arctext' command to display reach names on the map. The 'reach' item stores the reach name.

Step 4. Zoom into study area.
Use the arc 'mapextent' command to zoom into the study area. The study area is the lower part of the florida river up to it's junction with mississippi creek. After setting the mapextent use the 'clear', 'arcs' and 'arctext' commands to recreate the display.

Step 5. Add cross sections.
Run the hecadd.aml program to add cross sections. Locate the cross sections as shown here . The cross section data is tabulated below.

Cross Section Data     

Cross Section 1 reach: florida measure: 25.5 station: 25.5 desc: none xy data (x/y): 10/34 20/34 21/30 29/30 30/34 40/34 drl (lob/cha/rob): 0/0/0 n (lob/cha/rob): .04/.03/.04 maichax (1/2): 20/30 coef (con/exp): .1/.3
Cross Section 2 reach: florida measure: 35.5 station: 35.5 desc: none xy data (x/y): 10/35 20/35 21/31 29/31 30/35 40/35 drl (lob/cha/rob): 18000/18000/18000 n (lob/cha/rob): .04/.03/.04 maichax (1/2): 20/30 coef (con/exp): .1/.3
Cross Section 3 reach: florida measure: 37.0 station: 37.0 desc: none xy data (x/y): 10/35 20/35 21/31 24/31 25/35 35/35 drl (lob/cha/rob): 4000/4000/4000 n (lob/cha/rob): .04/.04/.04 maichax (1/2): 20/25 coef (con/exp): .1/.3
Cross Section 4 reach: florida measure: 40.5 station: 40.5 desc: none xy data (x/y): 10/36 20/36 21/32 24/32 25/36 35/36 drl (lob/cha/rob): 5600/5600/5600 n (lob/cha/rob): .04/.04/.04 maichax (1/2): 20/25 coef (con/exp): .1/.3

Step 6. Mark the cross section locations.
Use the hecmark.aml program to mark the cross section locations.

Step 7. View cross section data.
View the data for any cross section with the hecsee.aml program.

Step 8. Edit cross section data.
Use the hecedit.aml to change the measure of the cross section at station 25.5 of the florida river from 25.5 to 10.0. After that clear the screen with the 'clear' command, redisplay the arcs with the 'arcs' command, and use the hecmark.aml program to mark the location of the cross sections. Note how the location of the cross section moved. The 'measure' value controls where the actual cross section is displayed.

Step 9. Delete a cross section.
Use the hecdel.aml program to delete the cross section at station 35.5 of the florida river.

That's it for the sample application. If there are any questions or problems please e-mail


This work was sponsored by the Hydrologic Engineering Center, US Army Corps of Engineers, Davis, Calif. and supervised by David R. Maidment.

Return to Ferdi Hellweger's Home Page
Return to Home Page of Research Group