Cross-Section Development Program




This chapter provides an update on efforts to refine the DSM2 representation of channel geometry, which includes the development of the Cross-Section Development Program (CSDP). The CSDP is used to develop irregular cross-sections for DSM2-Hydro. The CSDP is written in Java, an object-oriented, platform-independent language.


Bathymetry Data

Bathymetry data are not used directly by DSM2-Hydro; they are used by the CSDP to draw cross-sections which are approximations to the actual shape of each channel. The cross-section drawings are used by the CSDP to calculate cross-section property tables, which are used by Hydro. Cross-section properties used by Hydro include area, width, and wetted perimeter (Figure 6.1). This process allows the user to reduce the amount of data to a minimal representative data set, which is the smallest amount of data required to describe the general shape of the Delta's channels. In addition, the user has the ability to change the shapes of cross-sections to simulate proposed changes in geometry, such as dredging.

The most important part of the process is the selection of data used to draw each cross-section. The data selection process allows the user to place more emphasis on data that are most reliable and most representative. The bathymetry database contains more than 400,000 points, and has been divided into four files (Figure 6.2 shows the location of each of the four areas).

 Filename  Location
 area1.cdp  western Delta, Suisun Bay, Suisun Marsh
 area2.cdp  north Delta
 area3.cdp  central Delta
 area4.cdp  south Delta

The CSDP is designed to work with three-dimensional bathymetry data, which have two horizontal coordinates in UTM zone 10, and a vertical coordinate in feet with respect to Mean Sea Level (MSL) (Figure 6.3). It is also possible to use data that are not referenced to a global coordinate system (non-georeferenced data), but some manipulation is required. Examples of non-georeferenced data that can be used include cross-section plots and cross-section station and elevation coordinates.

Bathymetry data can be stored in ascii(.prn) files, binary(.cdp) files, or Gzipped binary files(.cdp.gz). The use of binary files allows faster access. Gzipped files are smaller, but take more time to read.


Landmark Data: .cdl

Landmark files are only read by the CSDP, and are not used directly by DSM2. A landmark file consists of labels and UTM coordinates. Landmark files can be used to label any feature, such as a node or a cross-section. The file delta.cdl is created by the CSDP when the Network-Calculate menu item is selected and is used to label cross-sections drawn by the user. It can be used to help locate cross-section lines. The file node.cdl contains coordinates for every node in the May 1995 version of the DSM model grid. This file is used by the create DSM chan function which is in the Centerline menu.


Network Data: .cdn

Network files are only read by the CSDP, and are not used directly by DSM2. A network file contains the data set that is created by the user, including centerline names, centerline coordinates, and cross-section coordinates.


Channel Connectivity Data: *.inp

The file channels.inp contains the CHANNELS input section (Chapter 5). The CHANNELS input section includes the numbers of all channels in the model grid and the numbers of the upstream and downstream nodes of each channel. The file channels.inp is used by the CSDP to draw centerlines for specified DSM channel numbers.


Using the CSDP

Loading Bathymetry Data

To load a bathymetry file, select the File-Open menu item and select the file you wish to load. The file should be an ascii file with a .prn extension, a binary file with a .cdp extension, or a Gzipped binary file with a .cdp.gz extension. After loading a .prn file, you can save it as a .cdp file for faster access.

After specifying a filename, the file will be read and the data will be displayed in plain view (Figure 6.4). The points will be colored by elevation by default. Points can also be colored by year, source, or uniformly by selecting the Display-Color By menu item.


Loading Network Data

To work with an existing network file, select the Network-Read menu item and select the file you wish to load. If there is any unsaved network information in memory, you will have the opportunity to save it. A network file will always have a .cdn extension.


Loading Landmark Data

To load a landmark file, select the Display-Landmark menu item and select the file you wish to load. A landmark file will always have a .cdl extension.


Selecting Data

It is the user's responsibility to select data for drawing cross-sections with the CSDP. Criteria for selection include year, source, and location. Because cross-sections are interpolated along channels, cross-sections should be representative of the overall shape of the portion of the channel that they represent. There should generally not be large changes in area, width, wetted perimeter, or bottom elevation among the set of cross-sections used to describe any given channel. Data are selected by using two perpendicular lines to define a rectangular region. All of the data contained within this region are then displayed in the cross-section view.

1. To zoom in on the display, select the Zoom-Factor menu item. Use the scroll bar to select a new zoom factor. Entering a zoom factor greater than 1 will increase the size of the display. Use the scrollbars to scroll through the data display.

2. To increase the bathymetry point size after zooming, select the Display-Parameters menu item. Enter an integer.

3. To filter the data display, select Display-Group and/or Display-Year. This will allow you to "turn off" the display of undesirable data. (Note: this step is optional. Filtering the data display may or may not facilitate the selection of appropriate data).

4. Select a rectangular region of data to be displayed in cross-section view (Figure 6.5). The region will have a length, width, and direction. The location, length, width, and direction are used to select data to be displayed in cross-section view. The direction defines the positive flow direction for the channel. The direction also determines the order in which points will be displayed, which will always be from left bank to right bank (Figure 6.7a). DSM2 cur- rently does not require points on the left to be on the left bank, but in the future, some DSM2 models may have this requirement. The length of the region is defined by the cross-section thickness, which can be adjusted by selecting Display-Parameters. The width is defined by the length of the cross-section line. The direction is defined by the order of the points in the centerline. The location of the center of the region is defined by the intersection of the centerline and the cross-section line.

a. Create a centerline: Select Centerline-Create DSM Chan. You will be asked to select a channel connectivity file, if one is not already loaded. The channel connectivity file is the file that contains the CHANNELS input section(Chapter 5), and will typically be named channels.inp. You will then be asked to enter the DSM channel number for the centerline you wish to create. Enter a number from the DSM model grid. Finally, you will be asked to select a landmark file, if one is not loaded or if one or both of the nodes for the specified channel number are not found. Select the file node.cdl, which contains the locations of the nodes in the DSM model grid. A Centerline will be drawn from the upstream node of the specified channel to the downstream node (Figure 6.6a).
b. Insert centerline points: Insert points into the centerline to create centerline segments which follow the shape of the channel (Figure 6.6b). To insert points, select the centerline by clicking on it, click on the insert button to turn the insert mode on, and then click at various locations along the channel to insert points. It is not necessary for the centerline to follow the exact shape of the channel; it is only necessary to have line segments which are aligned with the data.

5. Add cross-section.

a. Add cross-section line(s): To add a cross-section line, click on the Add Xsect button to turn the add cross-section mode on. Click on a location near the data you wish to use. A cross-section line will be drawn perpendicular to the nearest centerline segment. The cross- section line should be aligned with the data you wish to view. If it is not, you may need to move the endpoints of the centerline segment which intersects the cross-section line.
b. Adjust the cross-section width: If desired, change the cross-section width using the Display-Parameters menu item.


Drawing Cross-sections

Displaying the data in cross-section view allows the user to draw a line through the points. The coordinates of these points are used by the CSDP to calculate cross-section properties.

A line is drawn through the bathymetry points displayed in cross-section view (Figure 6.7b). The line is an approximation to the shape of the cross-section. The line can also be modified to simulate proposed changes in geometry, such as dredging. Each cross-section will then be saved along with its channel number and its normalized distance along the channel from the upstream end. The normalized distance is the distance from the upstream end of the centerline to the cross-section line divided by the length of the cross-section line (Figure 6.8).

1. Display the data in the cross-section view by selecting Xsect-View. The data are displayed with respect to a relative coordinate system. The origin of the coordinate system is located at the intersection of the centerline and the cross-section line. The horizontal axis is the distance in feet along the cross-section line. The vertical axis is the elevation in feet with respect to Mean Sea Level.

2. Add points: click on the Add button to turn on the add point mode.

3. Edit points: To insert, move, or delete points, click on the appropriate buttons and click on the point(s) to be inserted, moved, or deleted. The Keep button will save all of your changes in memory (not to a file). The Restore button will undo all of your changes since the last time the Keep button was clicked.

4. Draw a cross-section through the data points by clicking on locations with the mouse. Try to use no more than 10 points. Using more than 10 points could increase Hydro's memory requirements and reduce its speed.

a. Avoid negative dconveyance between -5 and +15 feet (MSL) (Section 5).
b. Horizontal line segments above the bottom of the channel are acceptable. When cross-section properties are calculated, one of the elevations of the line segment will be increased by 0.01 ft (Horizontal line segments above the bottom are not allowed in cross-section property calculations because only one layer is allowed per elevation). A line segment that appears to be horizontal on the screen may not be exactly
c. Avoid large changes in bottom elevation and area(MSL) within channels. Large changes in area within a channel could prevent Hydro from converging.
d"W" shaped cross-sections are acceptable (Figure 6.9a).
e. Avoid "J" shaped cross-sections. A "J" shaped cross-section will have low wetted perimeter values at higher elevations (Figure 6.9b).

5. Exit cross-section view by selecting the Xsect-Close menu item. If you have made any changes to the cross-section, you will be asked if you want to save these changes. At this point, changes will only be saved in memory and will not be written to a file.

6. Save your work to a network file by selecting Network-Save. A network file should have a .cdn extension.


Cross-section Plots

Cross-section plots consist of a series of points plotted on a graph (Figure 6.10). To use the CSDP to calculate cross-section properties for a given cross-section plot, estimate station and elevation coordinates of each point in the plot and follow the following procedure for processing cross-section station and elevation coordinates.


Cross-section Station and Elevation Coordinates

To use cross-section station and elevation coordinates, it is necessary to make a network file (Figure 6.11).


Preparing Irregular Cross-Section Data for DSM2

The output from the CSDP is used as input for DSM2. DSM2 irregular cross-section input files consist of cross-section property tables (*.txt files) and files containing IRREG_GEOM input sections. For more information on DSM2 input files, see Chapter 5.

Load a network file (.cdn) using Network-Read. The file delta.cdn is the main network file that is used by the Delta Modeling Section. Select Network-Calculate. You will be asked to select a directory for cross-section output files(*.txt). After selecting the directory, enter 1 or more characters in the "filename" text field (your entry will not be used, but Java's FileDialogBox will not accept your input unless you do this). This will write all of the cross-section files(*.txt), a new landmark file(*.cdl), and a file called irregular_xsects.inp, which contains the IRREG_GEOM input section. The new landmark file can be used in the future for locating cross-sections when you use the CSDP. All files will be written to the directory in which you started the application (with the exception of the cross-section files, which will be written to the directory that you selected). Using a text editor, open the file irregular_xsects.inp and change the path name in the FILENAME field.


DSM2 Input (output files from the CSDP)

To use irregular cross-sections, Hydro requires an IRREG_GEOM input section and irregular cross-section files (Chapter 5).


IRREG_GEOM Input Section

The irregular_xsects.inp file contains the IRREG_GEOM input section (Chapter 5). This file is used to assign cross-sections to DSM channels and to locations within the channels.

The IRREG_GEOM input section is typically stored in a file called irregular_xsects.inp and is created by the CSDP when the Network-Calculate menu item is selected. The IRREG_GEOM section that is written by the CSDP will always assign cross-sections to the locations defined by their filenames. The filename of a cross-section describes the DSM channel number and the normalized distance along the channel (Figure 6.13).

To prevent interpolation or the use of rectangular cross-sections, it is sometimes desirable to copy cross-sections to other locations. Cross-sections can be copied to other locations in the same channel or in other channels. To do this, an additional IRREG_GEOM input section(Figure 6.14) can be created manually and stored in a separate file, which might be called irregular_xsects_copy.inp. The file can also be used to include cross-sections which are not included in the network file.

All files which contain IRREG_GEOM input sections that you wish to use for a model run must be listed in the INP_FILES input section (Chapter 5).


Irregular Cross-section Files(*.txt)

A cross-section file is written for every cross-section drawn by the user. The file consists of a table of area, width, wetted perimeter, hydraulic radius, x centroid, and z centroid values for each unique elevation in the cross-section(Figure 6.15).


Using Irregular Cross-Sections with DSM2-Hydro

This section describes how DSM2-Hydro uses irregular cross-sections. Some of the problems which can cause a model run to fail are negative dConveyance, interpolated negative dConveyance, and convergence.

Cross-section Interpolation

Cross-sections have to be interpolated by Hydro for every computational point in the model grid before they can be used by FourPt. Interpolated cross-sections are also known as virtual cross-sections (Figure 6.16). The number of computational points in each channel depends on the actual value of delta X, which depends on the channel length and the requested value of delta X.


Actual vs. Requested Deltax

The scalar input variable deltax (Chapter 5) is called the requested value of deltax ( Xr). The actual value of deltax used by hydro ( Xa) in each channel depends on Xr and the channel length. The following equation is used to calculate Xa:

Xa = length/(2 * int(length/ Xr) (Note: the int function truncates)

Rectangular cross-sections are used in channels which do not have irregular cross-sections. To limit the use of rectangular cross-sections, Hydro moves and copies cross-sections (Note: even with the use of irregular cross-sections, it is still necessary to define at least two rectangular cross-sections for every channel in the model grid). The following rules apply to the moving and copying of cross-sections:


Rules for Copying, Moving, and Interpolating Cross-sections

1. Any channel with one or more irregular cross-sections will not use rectangular cross- sections (Figure 6.17). A channel with no irregular cross-sections will only use rectangular cross-sections for interpolation. It is possible to assign two or more different rectangular cross-sections to a channel, but this is not typically done.

2. For each node: If the distance from the node to the nearest cross-section is within 5 percent of the channel length, then the cross-section will be moved to the end of the channelwhich is adjacent to the node(Figure 6.18). This is done to prevent interpola tion from adjacent channels.

3. Cross-sections can only be interpolated across nodes if the node is connected to 2 channels (Figure 6.19).

4. If a channel hasone or more irregular cross-sections which cannot be moved (rule 2) and no cross-sections are available for interpolation in the adjacent channel (rule 3), the cross-section(s) nearest to the nodes will be copied to end of the channel adjacent the node. A moved cross-section can be used by an adjacent channel for interpolation; a copied cross-section cannot.


Interpolation occurs in three stages. The first two stages occur while Hydro is processing input data. The purpose of the first two stages is to create a lookup table (Figure 6.20) that is used to reduce the number of interpolations that occur while FourPt is running. The three stages are:

1. A list of all unique elevations is made for each channel. Cross-section properties are interpolated in the vertical direction for every elevation in this list. If necessary, cross-sections are extrapolated in the vertical direction using the levee_slope value that is specified in the SCALAR input section (Chapter 5).

2. Cross-section properties and bottom elevations are interpolated in the horizontal direction to create virtual cross-sections.

3. During a model run, cross-section properties are interpolated in the vertical direction for the specified water surface elevation value.


To create a virtual cross-section for each computational point, the nearest two cross-sections on either side are interpolated. Cross-sections from adjacent channels are used if there are two channels connected to the adjacent node. Cross-sections that are interpolated or are copies of other cross-sections are never used for interpolation.

For a listing of virtual cross-sections, change the value of printlevel in the SCALAR input section to 5, change the length of the run to 1 hour, and run Hydro (Chapter 5). (Note: When printlevel is set to 5, Hydro will produce a large output file that could fill your hard disk. For this reason, it is best to avoid running Hydro for more than 1 hour with printlevel set to 5). An ascii file will be written which contains a listing of all cross-section properties in all virtual cross-sections.


Problems to Avoid when Using Irregular Cross-sections with DSM2


If Hydro fails to converge in a channel, the run will fail. Hydro will not converge if there are large changes in cross-sectional area between virtual cross-sections that are in the same channel. To avoid convergence problems, make sure that for every channel, the ratio of the largest virtual cross-sectional area to the smallest is less than 2.0. Running Hydro with printlevel set to 5 produces a list of all channels that may have convergence problems.


Negative dConveyance

A Hydro run will fail if the water level in any virtual cross-section enters a portion of the cross-section that has negative dConveyance. dConveyance is the derivative of conveyance with respect to height. dConveyance can be negative if a line segment has a very small slope (close to horizontal), which causes a large change in wetted perimeter with respect to elevation. It is the user's responsibility to eliminate negative dConveyance in portions of cross-sections which are in the anticipated water surface elevation range.

To detect negative dConveyance, set printlevel to 5 or greater (Chapter 5), include a line in the IO_FILES input section to write output to an ascii file of TYPE none, and run Hydro. The ascii file will contain the list of interpolated layers with negative dConveyance.

If any cross-sections have negative dConveyance in the range of -5<Z<15 ft, they will be identified by this list. It is acceptable to have negative dConveyance only if the water level will never enter the portion of the cross-section that has negative dConveyance. If it is necessary to eliminate negative dConveyance, look at the magnitude of the negative dConveyance. The magnitudes of dConveyance for each layer are listed in the cond 0 and cond 1 columns. If it is very large, then a change must be made. Negative dConveyance is adjusted in two ways:

1. Change the slope of a line segment by adding, moving, or removing points.

2. Adjusting bottom elevations and/or changing the slopes of line segments if the problem is caused by interpolated negative dConveyance.


Interpolated negative dConveyance

The CSDP will identify layers between -5 and +15 ft(MSL) in all virtual (interpolated) cross-sections that have negative dConveyance (a layer is a row of data in the cross-section property table). The virtual cross-sections that Hydro uses may contain negative dConveyance at elevations between -5 and +15 ft even if the two cross-sections used in the interpolation do not. Before cross-sections are interpolated (Figure 6.23a), the bottom elevation is subtracted from all the elevations in the cross-sections, which converts the elevations to heights. The bottoms of the cross-sections are now at the same height (zero). If there is a big difference in bottom elevations, the interpolated cross-section could have negative dConveyance between -5 and +15 (Figure 6.23b).

The best solution to this problem is to adjust the bottom elevations in one or both of the cross-sections so that they are not so far apart (Figure 6.24a). The resulting interpolated cross-section (Figure 6.24b) would not have negative dConveyance in the range of -5 ft to 15 ft. Large changes in bottom elevation within a channel could indicate that one or more of the cross-sections may not be representative.

To detect interpolated negative dConveyance, it is necessary to run Hydro with the scalar variable printlevel set to 5 or greater (Chapter 5).

Goto: 1998 Annual Report
Goto: Annual Reports

[ Back | Home ]

Copyright 2000. California Department of Water Resources. All rights reserved.
Webmaster: Tawnly Pranger
The URL is
Last modified: June 22, 2000 .

Comments or Questions
Webmaster email to