Cross Section Viewer


Construction Reference Plane

Construction reference planes (CRPs) represent artificial surfaces that can be used as an elevation datum. They provide an alternative to sea level against which to reference elevations. CRPs are represented by a series of vertical inflection points at specific river miles along the river.

Several of the analytical tools within the Cross Section Viewer software use CRPs as a uniform upper elevation for constraining cross section area calculations. For example, the first and last elevations of a single cross section may be different and require a uniform reference elevations for calculating a profile area. Moreover these two end point elevation might also be different between surveys. By extending cross sections up to an artificial, unchanging datum above the channel, a consistent upper extent can be established allowing for calculations to only differ by the channel bathymetry.

To view Construction Reference Planes (CRP), select Data from the main menu and then Construction Reference Planes.

CRP screenshot

The Edit menu allows you to add, edit and delete CRPs.

Add a New CRP

  1. Open the CRP table by clicking Data and then Construction Reference Planes from the main Cross Section Viewer menu.
  2. Click Add from the Edit menu.
  3. Provide a unique Name for the CRP (it must be different from existing CRPs in the current database).
  4. Optionally you can provide some remarks to describe the CRP.
  5. Click OK to save the CRP.

With the new CRP in the database you can proceed to import inflection points into this CRP. See the importing and exporting section for instructions.

Edit a CRP

  1. Open the CRP table by clicking Data and then Construction Reference Planes from the main Cross Section Viewer menu.
  2. Select the desired CRP and either:
    1. Double click the CRP
    2. Right click and choose Edit
    3. Choose Edit from the Edit menu.

The window that appears shows the inflection points for the selected CRP. You cannot change the inflection points on this screen, but you can edit the name and click Save and Close to commit your changes and this data can be edited in Microsoft Access.

The main feature of this CRP properties view is to show the elevations of all the inflection points by river mile. You can calculate the elevation of any desired river mile value using the river mile data entry box at the bottom of the screen. Click on the box and enter a numeric value then press tab to move off the data entry box. Alternatively you can use the up and down arrows to seek the desired river mile. As the river mile value changes, the elevation will be interpolated and show in the CRP elevation box as well as a red crosshairs on the main plot. This calculation uses simple interpolation between the two closest CRP inflection points to determine the desired elevation. Note that you can’t calculate a CRP elevation beyond the most upstream or downstream CRP inflection points.

CRP screenshot


Data Management Mode

By default the lists that display the Selections and Long Profiles are filtered to only show those items that were created by the current user. In an organizational setting, where a Cross Section Viewer database is shared among several users this means that Selections and Long Profiles are essentially private and inaccessible by other users.

Administrators can override this default behaviour and access the Selections and Long Profiles for all users by entering Data Management Mode. This option is available from the bottom of the Edit menu:

data management mode

Clicking this menu item brings up a password data entry form where Administrators should enter the password to unlock data management mode. The password can be obtained from the Cross Section Viewer development team.


Once the correct password has been entered the lists showing the Selections and Long Profiles will contain the entire contents of the database, and not just the current user. From here, the administrator can edit or delete any item, not just those that they created.



Adjust Horizontal Stations

The horizontal adjustment tool helps users shift the underlying survey data for individual cross sections. This is sometimes useful if data have been imported into a database that posseses some kind of systematic offset. A good example is where cross sections - typically for older surveys - might have incorrect lateral alignment in the river, despite having high relative accuracy between stations. The horizontal adjustment tool can be used to shift these cross sections laterally into a more correct position, while maintaining the internal station distances of each surveyed point. See the video demonstration at the bottom of this page.

1. Backup Your Data

Warning! This process changed the underlying survey data stored in the Cross Section Viewer database. The changes are permanent and cannot be undone. It is strongly recommended that you back-up your database before using the horizontal adjustment tool.

2. Select a Survey

  1. Open the Cross Section Viewer and choose Surveys from under the Data menu.
  2. Select the desired survey from the table that possesses the cross sections that you want to adjust. The horizontal adjustment tool only operates on a single survey at a time.
  3. You will need to confirm your choose of survey and then, once again, choose to proceed. These redundant steps are to safeguard your data and ensure that users only change data that they truly intend to adjust.


3. Horizontal Adjustments

Horizontal adjustments are actually performed on a single cross section at a time. Follow these steps to perform a single horizontal adjustment. Be sure to read the keyboard shortcuts section below to help speed up your workflow when adjusting multiple cross sections.

horizontal adjustments

  1. Select the upstream and downstream river mile range (#1) that contains the cross sections that you want to adjust. This doesn’t change any data. It merely filters the cross section lsit below to the appropriate river miles.
  2. Select the cross section from the dropdown (#2) that you want to adjust. Note that CTRL + Up Down Arrow Keys also changes this selection.
  3. Change the Current Adjustment value to adjust the cross section left or right. Decreasing the adjustment moves the cross section left while increasing it moves it right. Correspondingly, negative adjustments denote a shift left from the original cross section location. There are three ways to enter the adjustment value:
    1. Type the value into the white area of the current adjustment.
    2. Use the up/down arrows beside the current adjustment.
    3. Use the left/right arrow keys on your keyboard.
  4. Note that the size of the adjustment when using either the up/down adjustment arrows, or the up/down keyboard arrow keys, is controled by the increment value (#4). You can change the increment value by either:
    1. Type the value into the white area of the increment.
    2. Use the up/down arrows beside the increment.
    3. Use the up/down arrow keys on your keyboard.
  5. Click the Save button (#6) to permanently store the adjustment for the current cross section.
  6. Click the Reset button (#6) to discard the current adjustment and restore the current cross section to its original location.
  7. Click the History button (#6) to apply the last stored adjustment to the current cross section. Note that this doesn’t actually save the adjustment for the current cross section until the save button is actually clicked. This can be useful if an entire survey has approximately the same, systematic adjustment. Clicking the history button quickly gets a cross section in the approximately correct zone before allowing you to fine tune the adjustment.

Keyboard Shortcuts

The follow keyboard shortcuts are available to help speed up the workflow:

Video Demonstration


Import HEC Geometry SDF File

The Cross Section Viewer software is capable of importing cross section elevations and reference planes from the US Corps of Army Engineers (USACE) Hydrologic Engineering Center’s River analysis system (HEC-RAS) software.

Both .SDF and .HDF5 HEC geometry files are supported by the Cross Section Viewer:

  1. Choose Surveys from the Data menu. The gridview of existing surveys will appear.
  2. Choose either the SDF or HDF5 import item from under Edit > Import menu.
  3. Browse to the desired HEC file and then the following form will appear that summarizes the contents of the file:

import sdf screenshot

  1. Select the units from the dropdown at the top of the form. This is especially important if the units of the HEC file do not match that of the cross section viewer database into which the data are being imported.
  2. Check the box if you want the HEC bank stations to be imported as reference stations.
  3. Check the box if you want the HEC water surfaces to be imported into the cross section viewer. Check the box beside each of the HEC water profiles that you want to import. The HEC profile name will be appended to the name specified in the Prefix textbox. This is set up this way so that repeat use of the same HEC profile names does not cause unique name conflicts in the Cross Section viewer, because each reference stage must have a unique name.
  4. Check the box and specify a selection name if you want the import routine to automatically create a Selection for the cross sections contained in the HEC file. This is recommended because it makes it easy to quickly identify the data included in the HEC file within the various Cross Section Viewer tools.
  5. Check the box if you want the cross section elevations to be imported into a new survey. Only in rare cases will you want to uncheck this box, but it does allow for importing water surface profiles without also bringing in the cross section data at the same time. If you check the box you must provide a unique survey name that does not already exist in the current database. You can optionally include a survey date and remarks.

Click Start to begin the import progress. A screen will appear showing the progress on the various processes involved. Should anything go wrong with the import, the cross section viewer database will be reverted to its original state.

hec progress


Import HEC Geometry HDF5 File



Importing And Exporting

Importing new data into the Cross Section Viewer is possible using a series of templates. The process involves three high level steps. First, users generate a new, empty template for the particular type of information that they wish to import. Second, they populate the template with their data, typically using a cut and paste. Third, they import the populated template into their Cross Section Viewer database.

create new databse template

The main benefit of using templates in this way is that the new data are forced to conform to the structure of the template database. By the time that the template is imported back into the main Cross Section Viewer database, all the new data are already validated because they fit into the template structure. The templates are simple Microsoft Access databases. They are easy to use, exchange between collaborators and archive for a permanent record of what was imported.

The Cross Section Viewer allows for the import of the following types of information:

The video below demonstrates how to prepare data in Excel so that it possesses the correct columns before putting it in an import template that can then be read by the cross section viewer software.

Exporting Data

There are two ways to export data from the Cross Section Viewer. First, each of the analytical plots on the Tools menu include the ability to export both the raw data driving the plot as well as the plot itself. See the section for each respective tool for export instructions. Second, each of the main lookup tables can be exported when viewing their contents from under the Data menu:

export menu

Select from the Data menu the relevant lookup table that you want to export. Once the table appears click the Export item from the Edit menu. The file produced is a comma separated value (CSV) flat text file of the current contents of the lookup table in question.

export menu


Importing Survey Data

Survey data can be imported into either a new or existing survey. See the section on Importing Data for an introduction into the overall workflow. Importing survey data works the same way. This process is expanded here for the special case of importing survey data because it is so central to the operation of the cross section viewer software.

1. Create empty survey data template

To import survey data, click on Data main menu item and then choose Surveys. The gridview showing all existing surveys will appear. Next select Create Empty Survey Data Template... from the Edit > Import menu. Specify a file path for the new, empty template.

import menu

At this step, you need to choose one of the three ways that you intend to define cross sections in the template. The default selected item is the method used in the currently open cross section viewer database. See the section on creating new databases if you are unsure which option to choose.

import create empty survey data screenshot

Click OK and the import template will be generated and saved.

2. Populating the Import Template.

Open the import template using Microsoft Access. The SurveyPoints table should be the only table in the database, open it and then use the built-in features of Microsoft Access to import your survey data into this single table. Typically this can be done using cut and paste from some other software. Or you can use the Access import feature to get information into this table.

The fields present will be dependent on which cross section identification method you specified above.

See the section on creating databases for the units of the elevation and station fields.

import template

3. Importing the Data

When you have finished inserting survey data into the template, and before you import the data, it’s a very good idea to double check all the values. This can be done using Microsoft Access SQL Queries to validate the range of values in each field, and also the completeness of the database.

Also, you should backup both the cross section viewer database as well as the import template that contains the new survey data.

To import the contents of the populated template, choose the Import Populated Template from the Edit > Import menu. Browse to the populated Microsoft Access template file that you edited in the previous step.

populated template

Choose whether you want to import the contents of the template into a new survey or an existing survey. i.e. the survey includes a cross section at a location that was not included in any previous surveys. If you choose to import into an existing survey then you should ensure that the new survey data represent cross sections that are not already present in the cross section viewer for the selected survey. In other words, don’t import data for the same cross section into the same survey twice!

The following warning will appear if the import routine finds a cross section in the populated template that is not already defined in the cross section viewer database. This warning will appear regardless of cross section identification process being used, albeit with either the ID, river mile or display distance shown as the distinguishing column.

new cross sections

Review the cross sections in the list. If you click Continue new cross section definitions will be added to the cross section viewer database as part of the import process. If you click Cancel then the import process will be aborted and no changes will be made to the cross section viewer database.

new cross sections


Data Menu Items

The Data Menu is the starting point for viewing the data contained within the open database. There are views for most of the different types of data stored in the database, as well as tools for importing and exporting the various types of data.

data menu screenshot

Note that whenever looking at a particular data view, the Edit menu will appear containing contextual tools for manipulating the specific data being viewed. i.e. when viewing the list of surveys, the Edit menu shows tools for adding, editing and deleting surveys within the database.

data edit menu

In This Section

Each distinct type of data stored in the Cross Section Viewer has a separate data management page:


Long Profiles

Long profiles are intended to capture representative cross sections elevations for use by other tools within the software. Each long profile consists of a set of inflection points down the channel. Each inflection point is identified by a river mile, a station (i.e. transverse position across the channel) and an absolute elevation.

Long profiles can capture a variety of inflection points along a cross section. Their most common use is to capture the deepest point of each cross section, referred to as the thalweg.

The list of long profiles stored in the current cross section database is accessible via the Data menu of the main window.

Long Profile

The list showing the long profiles possesses an edit menu for creating new long profiles, editing the name and remarks of existing long profiles and also exporting data (see below).

Long Profile

Creating A New Long Profile

The following properties are required to create a new long profile:

Long Profile

Exporting Long Profile Data

The inflection points for each long profile can be exported to comma separated value (CSV) text file using the menu option under the Edit menu. The resultant file contains the following columns:

All units correspond with those specified during the creation of the cross section database.

Long Profile


Reference Stages and Stations

The Cross Section Viewer includes four types of reference positions to assist with the various tools in the software. The first two are described here, while the latter two are described in other sections:

Both Reference stages and stations refer to fixed distances at a specific, monumented cross section. Stages refer to elevations and can be thought of as horizontal planes at a cross section location. Stations can be thought of as vertical lines.

reference stage screenshot

Each stage and station belongs to a type. This container or parent type enables the user to group these reference distances into organizational concepts. For example, stages can refer to seasonal flows (e.g. “Mean August Flow”) and stations into width constraints (e.g. “navigational channel”). Within each of these types, the database can store a stage or station for each cross section location. Stages can only possess one entry per cross section, while stations can possess multiple entries. Typically, there are two entries for each cross section and the one with the lowest station value is considered the left bank item, while the one with the highest value is the right bank.

reference stations and stages

Reference Stage Types

To view Reference Stage Types, select Data from the main menu and then Reference Stage Types. You can add, edit and delete types using either by righting the desired item or using the Edit menu. See the section on importing and exporting data for instructions on how to bring in new elevations for a specific reference stage.

reference stage screenshot2

Reference Station Types

To view Reference Station Types, select Data from the main menu and then Reference Station Types. You can add, edit and delete types using either by righting the desired item or using the Edit menu. See the section on importing and exporting data for instructions on how to bring in new positions for a specific reference station type.

reference stage screenshot2


River Bends

The cross section viewer maintains a list of river bend locations. These bends are only used in the map viewer and are not part of any analysis tool.

Each river bend is defined by a name and decimal latitude and longitude in degrees. To view and edit properties of an individual river bend, select Data then River Bends, then double click on river bend of interest.

river_bend screenshot

river_bend screenshot



Selections represent a collection of cross section locations and are central to many of the tools within the Cross Section Viewer software. Users create selections to help isolate a set of cross sections on which they want to perform analysis. Some examples of selections are:

Users can create, edit and delete an unlimited number of selections. They can also merge two selections together to form a new one. The main list of selections is accessed by choosing Selections from the Data main menu item.


New Selection

To create a new selection click Selections from the Data menu on the main form. A grid showing the current selections in the database will appear. Next choose New... from the Edit menu.

Creating Selections

Provide the following information:

Cross Section Filters

Selections are created by identifying the cross sections that satisfy one or more filters. Each filter describes a single criteria for a single cross section attribute. The available attributes are:

Each of these filters - with the exception of river miles - operates on a particular survey. In other words, when the software is attempting to determine if a particular cross section meets the cross section filter criteria, the value from a particular survey is used. On the contrary, river miles are simply based on the finite location of the cross section itself and is not influenced by any particular survey.


When choosing an attribute to use as a filter you must also choose one of the filter rules listed below. Note that Outside* and **Between do not “booked end” the criteria and so do not include values equal to the user input value 1 and value 2.

Users can add, edit and delete filters using the relevant buttons. Multiple cross section filters are combined using AND logic. In other words for a cross section to be included in the selection it must meet ALL the listed filters. OR logic can be implemented by creating, then merging, separate selections.

Once the selection has been created the list of cross sections included in the selection are displayed on the right of the main selection gridview.

Merging Selections

Two existing selections can be merged to generate a new, third, selection. This can be useful if you want to build a complete selection in multiple parts and then combine the parts together once you have confirmed that each filter works the way you intended.

With the selections grid view visible, choose Merge... from the Edit menu on the main menu. Check the boxes beside the two existing selections that you want to merge. Provide a unique title and description for the new selection and then click OK. The resultant selection will be highlighted back in the main selection grid view and the cross sections that it contains listed on the right.


Deleting Selections

To delete Selections, highlight the Selection to be deleted, and then choose Delete from the Edit menu. You will be prompted to confirm that the delete should be performed. Deleting selections is permanent and cannot be undone. Note that deleting a selection does not delete the underlying survey data. It merely deletes the custom list of cross section locations.


Remove Cross Section from Selection

Individual cross sections can be removed from a selection. Highlight the selection in the main gridview and then highlight the cross section in the list of cross sections on the right. The highlighted cross section can be removed either from the main Edit menu or simply by pressing the Delete key. A message will appear to confirm that the deletion is intentional.

remove xs


An individual selection can be exported by first highlighting the desired selection in the main gridview and then choosing Export from the Edit menu. A list of the cross sections contained in the selection is exported to XML format. This is a text file in a special format that can be exchanged between collaborators and imported into another cross section viewer database (see next section).

remove xs


Selections generated by the export feature (see previous section) can be imported into any cross section viewer database. Choose Import from the Edit menu and then select an existing XSX file previously generated by the software. A screen will appear showing properties for the selection stored in the XSX file: title, who created it, description, the date that it was created and the number of cross sections that it contains. Click OK to proceed and import the selection. Note that the title must be unique and not already exist in the current cross section viewer database.

Importing Selections


Survey Groups

Survey groups collect together two or more surveys so that they can be used as if they are a single survey. This can be helpful if individual surveys capture different sections of a river. Grouping them together provides a single survey group that can be used within the Cross Section Viewer analytical tools while maintaining the data as separate surveys. Survey groups are optional and only necessary when you want to merge individual surveys together for the purpose of analysis. Survey Groups are maintained via the Data menu:


Each survey group possesses a unique name as well as a description. The list of survey groups shows the number of surveys within each survey group as well as information about its creation and the last time it was updated. See the video demonstration at the bottom of this page.


Adding a Survey Group

  1. Click the Add button on the Edit menu.
  2. Provide a unique Name that is distinct from all other survey groups.
  3. Provide an optional description.
  4. Add two or more surveys to the survey group by clicking the green plus button.
  5. Click OK to save the survey group.



Survey Priority

Each survey group can only contain a single representation of each cross section. When two or more surveys within a survey group possess the same cross section then the survey with the highest priority take precedence. The precedence is represented in the software by the order of the surveys in the list. The survey at the top of the list has the highest priority. For example, in the screenshot above, should both the 2008 and 2011 August surveys both possess the same cross sections, then only those from the 2008 survey will be used, because the 2008 takes precedence over the 2011 August survey.

Editing Survey Groups

Use the Edit menu item or right click on a particular survey group to edit its properties. It is possible to add or remove surveys from a survey group and these changes are reflected immediately in the Cross Section Viewer analytical tools.


Deleting Survey Groups

Use the Delete menu item under the Edit menu or right click on a particular survey group to edit its properties. You will be prompted to confirm the deletion before the action takes effect. Deleting a survey group does not affect the underlying surveys or their data. That is, if you delete a survey group, the surveys that are a part of that group remain unaffected and their survey data persists in the database.

Using Survey Groups

Survey groups are available for use within the Cross Section Viewer software wherever surveys are shown. In the example below, a test survey group is listed below all the regular surveys in the regular cross section plot.

In Use

Video Demonstration


Surveys and Cross Sections

The two most fundamental types of data stored in the Cross Section Viewer database are surveys and cross sections. A cross section is a single transect of surveyed points across a river. The word cross section or transect are used interchangeably within the software. Essentially a cross section is a single line across a river, typically perpendicular to flow. Within the software, cross sections are considered permanent, monumented transects that are surveyed repeatedly. Each cross section is identified by a database ID and a river mile. The database ID can be user defined or assigned by the software. The river mile is always user defined and represents a positive distance upstream from a user defined position (typically but not necessarily river mile zero, where the river terminates at the confluence with another water body).

A survey is a collection of cross sections that were collected as a single initiative. This might represent one field season’s worth of data, or smaller campaigns perhaps strategically related to some kind of flow. The most common use of surveys is to think of them as a single visit to each monumented cross section. Repeat surveys would then represent repeat visits to each cross section. In practice, surveys don’t always include every cross section.

Most analytical tools within the software are based on either a single survey or comparing two surveys together, so it’s important for users to develop a consistent strategy for organizing their survey data.


To view a list of surveys in the current database, select Data then Surveys. A list of surveys is displayed showing the river mile of the most downstream and upstream cross section surveyed as well as the total number of cross sections included in the survey.

surveys screenshot

To add survey, select Edit > Add and enter Name and Remark fields. Each survey must possess a unique name within the current database. Names can be anywhere between 1 and 255 characters long.

add survey screenshot

To edit survey properties, select (double-click, or right click and Edit) on the survey of interest. Edit the desired fields and then click Save.

surveys screenshot

Cross Sections

It is important to understand the distinction between a cross section definition and a cross section survey. These two concepts crop up throughout the software and, for the sake of saving space in the software user interface, are not always labeled consistently.

A cross section definition represents a fixed location along a river, analgous to a monumented transect location. This location does not change over time. It is identified by a database ID and a river mile. Sometimes these definitions are monumented with concrete structures, signs or other markers. Often each definition possesses a pair of start and end coordinates used for navigation.

A cross section survey represents a single visit to a cross section definition and the collection of a set of survey points along the defined cross section.

Each survey can only include each cross section definition once.

To view the set of defined cross sections within the current database, select Data then Cross Sections. The table that appears contains one row for each defined cross section and a column for each survey in the database. A 1 is displayed where the particular cross section definition was captured during the survey.

You cannot add, edit or delete cross section definitions directly. Rather, cross section definitions are created while importing survey data.

cross section screenshot


Adjust Vertical Elevations

The vertical adjustment feature shifts surveyed data up or down by a user specified offset. This can be useful if data errors or datum shifts need to be applied to an entire set of survey data. This operation is performed on a single survey and adjusts all cross section surveyed points collected as part of this survey. It does not, however, alter any other surveys contained in the same database.

The vertical adjustment is defined by a series of inflection points. Each inflection point has river mile and vertical shift. the shift is positive for an upward adjustment and negative for downward. The software determines the relative adjustment at each cross section location by interpolating between these inflection points for the desired river mile. In the simplest case, two inflections points should be provided, one at the most upstream cross section with the survey and one for the downstream. Alternatively, precise elevation adjustments can be specified for each cross section location.

Adjusting vertical elevations is permanent and cannot be undone! It is strongly recommended that you make a backup of your cross section viewer database before performing this operation.

To perform a vertical adjustment for a single survey:

  1. Choose Surveys from the main Data menu.
  2. Click Adjust Survey Data Vertical Elevations... from the Edit menu.
  3. Select the survey that is to be adjusted.
  4. Either enter the river miles and vertical adjustments by hand, or load them from a comma separated value (CSV) file. The CSV file should have two columns of data for river miles and elevations, separated by a comma; one cross section per row. A header row is required with the columns RiverMile and Elevation.

Clicking OK performs the vertical adjustment and shifts each surveyed point by the specified elevation, interpolating elevation shifts for cross sections that occur between the specified river miles.

vertical adjustment screenshot


Whole River Distances

The cross section viewer maintains a list of whole river mile locations on the Missouri River. These locations are only used in the map viewer and are not part of any cross section viewer analysis tool.

map viewer

To view coordinates of whole river miles (i.e. 1, 2, 3 ….), select Data then Whole River distances. A grid appears showing the latitude and longitude (in decimal degrees) for each of the whole river miles on the Missouri River. These values are not editable within the Cross Section Viewer software and can only be adjusted by opening the underlying database using Microsoft Access.

whole_river_miles screenshot

Users can export the list of whole river mile locations by clicking the Export item within the Edit menu. A comma separated value (CSV) file is produced of all the values contained in the current database.



Compact Database

The Cross Section Viewer database file size will grow automatically to accommodate new data. However, the file size will not decrease as data are deleted. This is typical among popular database technologies and in most cases should not present any operational issues.

Over time, or in the event that large portions of data are deleted (e.g. surveys with thousands of cross sections comprising millions of survey points), the underlying Cross Section Viewer database might become fragmented with the “gaps” where data have been removed.

SQLite provides a convenient vacuum process for releasing the unused space and compacting the database file to it’s optimum file size. You can vacuum the current Cross Section Viewer database using the Compact Database menu option in the main File menu.


Note that you should be the only user of the current Cross Section Database when you perform this operation. All other users and software should disconnect and avoid using the database in question until the vacuum operation has completed. SQLite does possess sophisticated locking and queuing procedures taht will prevent file access conflicts, but it is best to have exclusive access to the database when performing this option.


Convert Database

The Convert Database feature upgrades legacy Microsoft Access cross section viewer databases to the new SQLite format. Simply browse to the existing Access database and then specify a file location for the new SQLite copy.

Convert Database

This feature will copy the contents of the existing Microsoft Access database including all cross section definitions, surveys, selections, long profiles etc. Once you launch the conversion routine, a black command line window will appear while the process is running, showing progress messages. Note that this feature can take several minutes if the original database contains a considerable volume of data.

The conversion also produces a log file describing the steps performed. This file is stored adjacent to the original database and called conversion_YYYYMMDD_HHmmSS.log.

Convert Progress


The conversion routine requires that you have Microsoft Access (or at least the free Microsoft Access Runtime installed on your computer. The conversion will use whichever version of Microsoft Access that you have on your computer and it will work with both the 32 bit (x86) or 64 bit (x64) versions.


Create New Database

Users can create new, empty databases into which they then import their cross section data. To create a new cross section database you must provide the information described below. Note that the selections made at the time of creating the database are permanent and cannot be changed once the database is created. Also, the selections made can be viewed in the Database Information form.

New Master Database

River name - The name of the river that the cross section data pertain to. This can be the name of a reach, chute, channel etc that describes, at high level, the data being stored. The river name is mandatory.

River Distance Units - the units used to measure the longitudinal separation up and downstream between cross sections.

Elevation units - the units used for the cross section stations and elevations. Both station and elevation measurements must use the same units.

River Distance Precision - the display precision for river distance measurements. The actual values are stored using 8-byte IEEE floating point number.

Elevation Precision - the display precision for station and elevation measurements. The actual values are stored using 8-byte IEEE floating point number.

Vertical datum - Choose the vertical datum used for the cross section elevations. The software currently allows for NAVD88 and NGVD29. All elevation data in a single cross section database must be on the same vertical datum.

Cross Section Identification - Select one of the options describing how cross section data will be identified in the new database. See below for an explanation.

Cross Section Identification

The cross section viewer maintains a master list of cross sections that represents the position along the river where transects are collected. All survey data is referenced to this master list. The software uses one of three ways to identify cross sections in this master list:

Unique Numerical Identifier - This is a unique ID for each cross section. The minimum allowable number is 1 and the maximum is 263-1. There are no constraints on the system of numbering, but typically numerbering starts downstream with the number 1, increasing in an upstream direction. When using IDs to identify cross sections, you must also specify the corresponding river distance (see next bullet).

River Distance - The river distance (in the units specified above) used to identify cross sections must be unique, positive values (i.e. one cross section at each river distance value). The river distance can be based on an arbitrary reference point (e.g. a confluence or structure) and does not have to refer to the outflow into the ocean or another river.

Stationing - River stations take the form of 0+00 where the first digit refers to hundreds of feet upstream of an arbitrary reference point. The second value is the number of feet upstream of the corresponding hundred foot station. For example a station of 1+2.3456 would refer to a cross section 102.3456 upstream of the reference point. When cross section stations are imported into the database they are converted to river distances in the background to support the calculation of control volumnes and longitudinal analyses.

Video Demonstration


Creating Test Databases

The test generator is used to create a new cross section database with a series of simple, generic cross section data. These simplified cross sections are useful for understanding and validating the calculations underlying other tools within the cross section viewer software.

The cross sections generated by this tool are simple trapezoids, the dimensions of which are customizable by the user. All cross sections possess a wide horizontal top and a narrow horizontal bottom, with sloping sides. These cross sections are defined by four survey points. One high point on the left end, two lower points at the same bottom elevation and then a final point on the right end of the cross section at the same elevation as the first point.

Trapezoid Specifications

Cross sections at intervals over a user-defined reach. The size of the cross sections at the top and bottom of the reach are specified by the user and then the software interpolates additional cross sections at a user-defined interval along the reach.

The tool is capable of generating multiple surveys, each with cross sections of different dimensions. As a final step, the generator also creates a selection in the output database that contains all cross sections in the database. Test cross section databases are currently only generated using feet and the NAVD88 vertical datum.

Steps To Generate Test Database

Launch the test data generator from the Tools menu in the Cross Section Viewer software.

Trapezoid Data Generator

In the test data generator form that appears enter the following:

River Dimensions

Downstream - The river mile of the most downstream cross section that will be generated in the test database. The downstream river mile must be less than the upstream river mile and valid values are from zero to 1,000.

Upstream - The river mile of the most upstream cross section that will be generated in the test database. The upstream river mile must be greater than the upstream river mile and valid values are from zero to 1,000.

CRP Elevation - This is the elevation (in feet) of a reference plane that will be generated in the test database. Nominally called a “construction reference plane” this can be any horizontal plane from which you want to calculate cross section profile areas. Typically, this plane is above the uppermost elevation of all cross sections, but that is not mandatory. The CRP elevation does not affect cross section profiles. Valid values are from 1 to 10,000ft.

XS Spacing - This is the longitudinal distance between cross sections. The test generator uses this spacing as the interval for laying out cross sections between the upstream and downstream river miles. The process of generating the cross sections starts at the downstream river mile and moves upstream. So if the distance between the downstream and upstream river miles is not evenly divisible by the spacing, the final cross section will not be precisely on the upstream river mile. Valid spacing values are from 0.1 to 100 miles.

RCL Stations

The rectified channel stations represent a pair of reference stations that are used for certain cross section measurements. The left and right stations are specified in ft from the left bank, and the same stations are used for all cross sections. Like the CRP, the RCL stations are independent of the cross sections and do not affect their size and shape. Valid RCL values are from 0 to 100 and the left station must be less than the right station.

Trapezoid Data Generator


The user can specify multiple surveys for the test database. Each survey possesses data at each of the cross section river miles defined by the upstream, downstream and spacing inputs. Surveys control the shape of cross sections. So creating multiple surveys allows the user to vary the shape of cross sections in different ways for different surveys. This can be useful for exploring the calculations in the cross section viewer and how they vary with different cross section shapes. A minimum of one survey is required.


Survey Name - Each survey must have a unique name. It’s a good idea to incorporate the cross section dimensions into the survey name (“e.g. Survey with Top 100, Bottom 80, US Depth 10, DS Depth 20”).

Channel Dimensions

The channel dimensions control the shape of cross sections for individual surveys (see illustration at top of page). The top elevation, top width and bottom width are constant for all cross sections in the survey. The bottom elevation of each cross section is controlled via the depth inputs. Users can define constant cross sections down the channel by specifying the same upstream and downstream depths, or vary cross sections between two depths. The bottom elevation for each cross section is determined by interpolating its depth based on the longitudinal position of the cross section between the upstream and downstream river mile.

Top elevation - The constant, horizontal elevation of the start and end survey points on each cross section. Values are in feet and the valid range is from 0 to 10,000.

Top width - The constant horizontal distance between the start and end survey points on each cross section. The left station is always at station zero, and so this width essentially becomes the station of the right-most survey point. Values are in feet and the valid range is from 0 to 1000 and must be greater than the bottom width.

Bottom width - The width of the horizontal base of the cross section. This base is position equidistant from the left and right ends of the cross section, so that the profile of the cross section is symmetrical about the channel centerline. Values are in feet and the valid range is from 0 to 1,000 and must be less than the top width.

Upstream depth - This is the vertical distance between the first survey point and the lowest points on the cross section, for the most upstream cross section in the survey. Values are in feet and the valid range is from 1 to 1,000 and must be less than the top width.

Downstream depth - This is the vertical distance between the first survey point and the lowest points on the cross section, for the most downstream cross section in the survey. Values are in feet and the valid range is from 1 to 1,000 and must be less than the top width.

Output Test Database

The user must specify the file path for the output test database that is generated. The user has the option to close the current database and open a connection to the new test database that is generated.


Import GCD Project

The import GCD project feature reads Geomorphic Change Detection (GCD) projects and generates a new cross section viewer database containing any GCD linear extractions.

The GCD is a separate, free software product that calculates the differences between digital elevation model (DEM) rasters. In the latest version of the GCD you can also extract elevations from DEMs or change detection results using polyline ShapeFiles and store them as linear extractions. These are comma separated value (CSV) text files stored within the GCD project folder structure. The import process reads this folder structure and discovers all the linear extractions that have been performed and imports the elevations into a new cross section viewer database. The whole process is automated and there are no inputs or decisions required. It simply creates a new cross section viewer database each time that the import is run and stores it in a folder within the GCD project called Exports. The fact that a new database is created each time the tool is run is important because it allows you to continue to evolve your GCD project and continuously generate new snapshots of the project as separate cross section databases.


See the GCD help for generating linear extractions for more information on how to generate GCD results that work with this feature.


File Menu Items

The File Menu contains commands to open cross section databases, create new ones and close the software.

File Menu

Open Database

The cross section viewer displays and manages cross section data stored in a single database. To use most of the functions in the viewer you need to first open a connection to a database containing the data that you want to work with.

Click the Open Database command and then browse to an existing cross section viewer database. If you do not yet have any databases, use the Create Database command to create a new, empty one. The cross section viewer software can only be connected to one database at a time. Opening a database closes the existing database connection.

Create Database

See the section on creating new cross section databases.

Create Test Database

See the section on creating test databases

Multi-User Access

Multiple users can use the cross section viewer software at the same time and connect to the same cross section database. Concurrent access allows users to view and make changes to a single database, even while other users are also making changes. See the relevant sections on Selections and the Data Menu for more specifics about how changes are shared between users.

Multi-user access can be useful for teams working with a single copy of a database stored on a network location that is accessible to the team members. Each user simply opens this single copy of the database as if it were on the local computer.

We do not recommend sharing the cross section database via cloud services such as One Drive, Google Drive or DropBox. It’s perfectly fine to keep the database in a cloud service and for a single user to access it there, but this should not be used as a way of simultaneously accessing a single copy of the database among several users.

Recent Databases

The Recent Databases menu item shows the file paths to the last five cross section databases used. Use this menu to quickly switch between different databases. Choosing one of the recently used file paths closes the current database connection (if one is open) and then opens the respective database.

Database Information

The database information menu item shows miscellaneous properties and summarizes the content of the currently opened cross section database. This menu item is only available when there is a currently open connection to a database.

See the section on creating new cross section databases for an explanation of the cross section mode property.

Database Information

Convert Database

See the section on converting legacy cross section databases from the old Microsoft Access format to the new SQLite format.

Import GCD Project

See the section on converting legacy cross section databases from the old Microsoft Access format to the new SQLite format.


Cross Section Area Volume

This tool computes the distribution of depths and cumulative planimetric area with depths no deeper than a given depth increment. This tool operates on a reach of cross sections, whereas the related Reach Area and Depth Tool tool performs a similar calculation but for a single cross section.

surface area / depth distribution screenshot

This tool operates on a single survey and selection. The upstream and downstream extents of the analysis are constrained to the most upstream and downstream cross sections that are part of the selected survey and selection. If the user specifies an upstream and/or downstream river mile for the analysis that does not occur on a surveyed cross section, then the analysis interpolates the area for each depth bin based on the nearest two cross sections.

surface area / depth distribution screenshot


The Compute button should be clicked to run the analysis each time that any of the inputs are changed. The exception is the Plot Type input. This can be changed on-the-fly without having to click the Compute button.


Once the plot has been created, the underlying data, or the plot image itself, can be exported from the Plot menu. Plot data are exported to plain text, comma separated value (CSV) file, while plot images are exported to portable network graphic (PNG) files.


Reach Area and Depth Distributions

The Cross Section Viewer contains two tools to visualize areas and depths. The cross section area and depth tool works on a single location along the river, while the reach tool operates on a selection of cross sections, summarizing for the desired reach.

section area screenshot

Planimetric Cross Section Areas

The analysis works on a single cross section at a time. Multiple cross sections for multiple surveys can be visualized at once, but the actual calculations are always performed for a single cross section. In other words, the results are for a single point in time and not a temporal analysis. The remainder of this explanation is therefore focused on a single cross section.

section area screenshot 2

The analysis requires the user to select a reference plane elevation. This is the vertical upper limit of the analysis and represents depth zero (0). The analysis continues in increments of the user-defined depth bin size. In each depth bin, the profile area of the cross section is calculated between the upper and lower elevations of the bin. Parts of the cross section that extend above the upper depth bin boundary are not considered. And parts that extend below the lower boundary are also not considered. This process is repeated downwards from the reference plane until the upper depth bin elevation falls below the minimum elevation of the cross section. The profile area for each depth bin is accumulated for each bin and reported in the plot.


The areas for each bin are converted to volumes by multipling the profile area in each bin by half the distance to the next cross section in both the upstream and downstream directions. So in the diagram below, the area for a particular depth bin at cross section C is multiplied by half the distance to cross section D and half the distance to cross section F. For this reason, you must have calculated cross section spacing before using this tool.


Using The Tool


Once the plot has been created, the underlying data, or the plot image itself, can be exported from the Plot menu. Plot data are exported to plain text, comma separated value (CSV) file, while plot images are exported to portable network graphic (PNG) files.

Calculation Walkthrough

The test database generator was used to generate a hypothetical river with 10 idealized cross sections each separated by 1 mile. The river travels in a straight line with surface width of 100 ft that is reduced to 80 ft at the river bed. The angle of descent has been defined as 45º.


Length (L): in this example, the length between all cross sections has been defined as 1 mile, or 5280 ft. This value is constant. Therefore, the distance between the cross section of interest, and the nearest upstream cross section is 5280 ft. Similarly, the distance between the cross section of interest, and the nearest downstream cross section is 5280 ft. The distance between the two halfway points is therefore also 5280 ft. Thus, L = 5280.

Width (W): in this example, we will begin by considering the width of cross section of interest at depth (D) of 0 (i.e. the surface). At D=0, W has previously been defined as 100 ft. The geometry of the cross section can be separated into a rectangle, of M width and two right-angle triangles of S widths. Therefore, W at D=0 is 10 + 80 + 10 = 100 ft. The maximum depth has been defined as 10 ft. Therefore, W at D=10 is 80 ft (or M).

example cross section

The width will change with depth. In this example, the trapezoid is symmetrical and the angle of descent has been defined at 45° (or pi/4 radians). The triangles can thus be represented as below where adjacent and opposite are equivalent to S and D respectively.

idealized cross section triangle

S (adjacent) changes with D (opposite) according to trigonometric principles:

S = (10-D) × tan(45º)

Within Cross Section Viewer, the depth at which the areas are calculated depends on the bin size. When the bin size is 2, the depth of the river is divided, in this example, into 5 discrete sections (0-2, 2-4, 4-6, 6-8, 8-10). The area is calculated at the halfway point between two depths – i.e. 1, 3, 5, 7, 9. Therefore, with a bin size of 2 using this idealized cross section, areas will be calculated at 1,3,5,7,9.

Sample planimetric cross section calculation at D = 3 (the second bin, when bin size = 2). First, calculate the value of S at D = 3

S = (10-D) × tan(45º)

S = (10-3) x 1

S = 7

Next, calculate the value of W given S = 7 (remember, M is constant)

W = 2 x S + M

W = 2 x 7 + 80

W = 94

Finally, calculate the area.

A = L x W

A = 5280 x 94

A = 496,320.00 ft^2

Therefore, planimetric area of cross section at depth of 3 ft = 496,320.00 ft2

To calculate volume, simply multiply the area by the height as defined by the bin size (note, not the depth). In this case, with a bin size of 2 feet, the height is 2. If the bin size were 3, the height would be 3 and so on.

V = L x W x H

V = A x W

**V = 496,320.00 x 2

V=992,640,000.00 ft^3

Therefore, the planimetric volume of cross section at depth of 3 ft = 992,640,000.00 ft3

The results:

excel result


Generate KML Files

The river miles, bend and cross section information is exported from the database to Keystone Markup Language (KML) format for display in the map viewer. You can also use these KML files in other GIS software such as Google Earth, ArcGIS and QGIS.

Generate KML Files

Features to export - Choose the type of features that you want to export. When generating a cross section KML file you can optionally include the names of the surveys in which each cross section was collected. Note that this is needed to support the popups in the map viewer, but that it does increase the size of the KML file generated.

Coordinate precision - You can control the number of decimal places used when the latitude and longitude for each feature are written to the KML file. Use -1 to write the maximum number of decimals places stored with the data in the database. Using fewer decimal places will create a smaller KML file but will degrade the accuracy of the GIS features generated.

Downstream and upstream river mile - When generating a river mile KML file you can filter the range of points using the upstream and downstream controls.


Map Viewer

The map viewer is an interactive map showing the location of the cross sections stored in the database along with several other pieces of useful reference information. This feature only applies to the original Missouri River Database.

Map viewer

Note that while the cross sections, bends and river miles shown in the map are stored in the database and managed through the cross section viewer software, the map does not currently reflect these changes. The map is based on a static snapshot of the data in the database and does not update automatically. Contact the developers to discuss how to update the information shown in the map.

Displaying Features

The map viewer currently displays an aerial satellite map together with layers for the Missouri River centerline, river bend names, river miles and surveyed cross sections.

The layers are scale dependent. When zoomed out more than a certain level only the centerline is shown. Zooming in closer makes the centerline and bends visible. And finally, when zoomed in enough the cross section layers become visible. Layer visibility can also be controlled manually by clicking on the corresponding legend box in the bottom right of the map.

Layer Visibility

Finding Features

There are several ways to find cross sections, bends and river miles in the map. The most basic is simply to click on the map and drag the cursor in the direction that you want to pan. Double clicking the map zooms in on the location clicked. The Plus/Minus control in the top left of the map also controls the zoom level.

River Miles - Click on the text box in the top left of the map and type a river mile (whole integers only) and then press enter. The map will pan to the corresponding location.

Cross Section ID - Click on the cross section box and type in the integer ID of a cross section on the Missouri River (between 1 and 11,813) and then press enter. The map will pan to the corresponding location.

Bends - You can either click on the bend dropdown list and scroll to the desired name, or you can click and then start typing the name of the bend that you want. The list will start filtering to those bend names that match the text that you have started to type.

Surveys - You can highlight the cross sections contained in particular surveys by clicking on the dropdown and picking the desired survey. The map turns grey any cross sections that were not collected as part of the desired survey.

Identifying Features

Click on any layer feature to open a popup showing information about a particular feature. Clicking on a cross section will open a popup that lists all of the surveys in which data were collected for that particular cross section.

Cross Section Selection

Base Map

The base map used is sourced from Mapbox, Licensed under Mapbox Terms of Service. Includes commercial imagery acquired and processed by DigitalGlobe; Geodatastyrelsen, FOT Orthophoto, 2014; LGV Hamburg; National Land Survey of Finland, NLS Orthophotos, 2014; Geoportal Berlin, DOP orthophotos, 2014; and other imagery derived from public sources and processed by Mapbox.


Compare Cross Section Areas Tool

Cross Section Viewer allows the user to compare how cross sections behave across surveys. This is a visual tool only, and does not perform any quantitative analysis or produce numerical results. The original intent of this feature was to illustrate the cross section filtering and truncation that is used in the longitudinal change and lateral change tools. See the cross section area calculations for more information on the methods used.

This tool simulates adjusting surveyed cross sections on a plot. The adjustments are merely visualizations. This tool does not write or store any information back to the cross section viewer database.

The compare cross section areas tool is launched from the main Tools menu.

compare cross section screenshot

compare cross section screenshot

Plot Symbology

The goal of the plot is to show both the new and old cross sections, both before and after the filtering is applied. This essentially produces four cross section lines:


Elevation Change Histogram

The elevation change histogram operates on two surveys that represent different points in time. The analysis looks at each cross section that occurs in both surveys and calculates the average elevation of stations in each survey. These average elevations are calculated by dividing the profile area of each cross section by its top width (not simply by dividing the distance between the first and last surveyed point by the net distance, which would lead to incorrect bias in the result when irregular point spacing occurs). The analysis then moves upstream from a user specified river mile distance and calculates the average elevation change at cross sections and accumulates these changes into user-defined bins.

elevation change

elevation change


The illustration below represents two surveys X and Y collected on the same river channel at different points in time. In some cases the same cross sections were collected during both survey X and Y (C, D, E and G) while each survey also possesses cross sections that were not collected during the other survey; Survey X also collected at B and F, while survey Y collected data at A and F.

First, it should be noted that the elevation change analysis is only possible within the portion of the river channel where both surveys possess data. That is from cross section B to G. Outside of this range it’s not possible to calculate the elevation change in one or other of the surveys.

The process begins by identifying all the locations where both surveys are collected (B, C, D, E and G). The surveyed transects at these locations are trimmed to the common extent so that a comparison can be made. They are also capped at the maximum elevation of their survey. The average bed change is calculated by obtaining the averge bed elevation of each survey and then subtracting the old from the new survey.


The results are then binned by weighting the contribution of each transect within the river distance bins. The process starts at the specified downstream river distance and moves upstream in increments of the specified bin size. Within each bin each transect is assigned half the distance to the next contributing transect. So in the example below, assuming the user has requested the analysis be performed from river distance 4 to 14 in increments of 2, the following contributions would apply:


The final value for each bin is the weighted average of all bed elevation changes within the corresponding river distance bin.



Export Cross Sections

You can export cross section elevation data in several plain-text formats. This tool operates on a single cross section selection and for one or more surveys.

Click on export cross sections from the tools menu in the cross section viewer. First ensure that a selection exists containing just the cross sections in question. Remember that you can copy, merge and edit existing selections to achieve the desired set of cross sections. Then switch to the Surveys tab and select one or more surveys that you want to include in the export. Hold down the CTRL key while clicking to select multiple surveys.

When multiple surveys are exported, their data appears sequentially in the output text file.

Export Cross Sections

Cross Sections - Single click on the one selection in the list that contains the cross sections that you want to export. The selection in question will be highlighted in blue.

Export Format - Choose between one of three plain-text export formats:

Comma Separated Value (CSV) Format

The following cross section fields are written to the file, separated by commas:

*Certain fields are not populated in all cross section databases and will appear in export files as null values. That is, all cross sections are exported for one survey, then a new line is inserted, and then the cross section data for the next survey is written.

Sample CSV export file


HEC Formats

The cross section viewer exports survey data in two Hydrologic Engineering Center-Hydrogolic River Analysis System (HEC-RAS) compatible formats. Both formats include a river and reach name that is editable from the cross section viewer export form. These two inputs default to the values provided when the cross section database was created.

The main difference between the two HEC-RAS formats is the inclusion or omission of the UTM easting and northing of every survey point.

HEC-RAS River, Reach, Station, X, Y, Z Format

MISSOURI RIVER,MISSOURI RIVER,250.24,1609186.5,14301207.1,618.8
MISSOURI RIVER,MISSOURI RIVER,250.24,1609183.39999999,14301213.6999999,615.5
MISSOURI RIVER,MISSOURI RIVER,250.24,1609181.89999999,14301216.1999999,613.9
MISSOURI RIVER,MISSOURI RIVER,250.24,1609178.5,14301220.3,611.9
MISSOURI RIVER,MISSOURI RIVER,250.24,1609174.39999999,14301224,610.3

HEC-RAS River, Reach, Station, Z Format



Lateral Change

This tool provides geomorphic summary information on the relationship between the shape of cross-section change relative to depth or distance from a defined location. For example, this tool can quantity statements such as “the deeper areas filled in” or “the channel degraded by lowering the sand bars rather than the thalweg.” Other uses include defining floodplain deposition level with respect to channel banks or levee breach locations.

Lateral Change


The current plot can be exported to either an image file or the underlying data as a comma separated value (CSV) text file.

Lateral Change

When using a CSV file, the output file includes the following fields:


Long Profile Viewer

Long profiles can be displayed and exported from the long profile viewer. This tool displays datasets produced by the Long Profile generator. You need to have already generated one or more long profiles before you can use the viewer.

long profile viewer


  1. Check the box beside one or more long profiles to include them in the plot(s). Use the Long Profile tool to generate additional datasets.
  2. Check the box beside one or more reference planes to include them in the plot(s). Use the [Construction Reference Plane] tool to generate additional reference planes.
  3. Enter the upstream and downstream river mile that you want to display.
  4. Select either the Stations and/or Elevations plot types to display. Elevations can either be displayed as absolute values above sea level, or as an offset from a selected reference plane.

Exporting Data

Choose Export Plot Data under the Plot menu to produce a CSV file of the data currently being displayed in the plots. Note that the upstream and downstream extent of data that is written to the file is controlled by the range controls on the form. i.e. the export will only contain data for river miles between the displayed upstream and downstream values. However, the zooming the plot (see video) does not affect the data export. If the upstream and downstream controls are set to river miles 300 to 400, but you have zoomed to 350 to 375, the export will still contain river miles 300 to 400.

You can also export a graphic of the currently displayed plot by clicking on Export Image from the Plot menu.

Video Demonstration


Longitudinal Change

The Cross Section Viewer can calculate the Longitudinal Change (either Volume or Bed Elevation) between two surveys for a range of River Miles.

longitudinal screenshot


The cumulative volume change for a given river mile represents all the volume change between two surveys summed from the upstream cross section to the given river mile. This is accomplished by computing the volume change over all control volumes, which are regions of the river bounded by two cross sections. Volume change over a control volume is computed as the average of the cross sectional area changes at the two bounding cross sections multiplied by the distance along the sailing line between the cross sections. The sum of all upstream control volume changes constitutes the longitudinal volume change at that location. Thus, the cumulative volume change is zero at the location of the most upstream cross section and equivalent to the volume change in the first control volume at the second cross section.

control volume

User Inputs

Select / input the desired parameters below:

Cross Sections: Select the desired Selection. The selection contains the Cross Sections available from the Selection filters.

Surveys: Select the New Survey from the drop down menu to contrast against the Old Survey from the drop down menu.

Station Filtering: Select the Original Cross Section Extents, Common Cross Section Extends, or Use Reference Stations from the drop down menu. Next, select Inside or Outside radio buttons.

Vertical Filtering: Select Max Cross Section Elevation at River Mile or Reference Plane.

Plot: Select desired Upstream and Downstream River Mile values.

Update Plot: When all desired inputs are selected, click the Update Plot button

longitudinal screenshot



Clicking on the Tools menu and Options opens the window that controls several high level, configuration settings for the Cross Section Viewer software.

options screenshot


Select whether or not the most recent loaded database loads on startup. If the last used database cannot be found then the software will launch with no database open.

options screenshot

Plot Colors

Customize which colours represent Construction Reference Planes (CRPs), Rectified Channel Lines (RCL), Sailing Lines, and average elevations on the main cross section plotting tool.

options screenshot


Plot Cross Sections

The Plot Cross Sections tool is the main way to visualize cross section data. Cross sections are displayed in profile view, across the river, perpendicular to flow. Multiple cross sections can be viewed simultaneously and several different types of reference lines can be included in the display.

Plot Cross Sections

The window is divided into three panes: The left pane contains the controls to select which cross sections are included in the view. The bottom pane contains summary metrics for each cross section currently being displayed. And the right pane contains the cross section plots themselves.

Cross Section Controls

Start by selecting one or more surveys for which you want to display. You can select multiple surveys by clicking the first desired item in the list and then holding down shift to click a second item. All surveys between the two items clicked will be selected. A discontinuous set of surveys can be selected by holding down the control key (CTRL) key while you click.

Pick the selection that contains the cross Selection that you want to view in the plot. If you need to create a new selection, you need to close the cross section plot tool before you can use the new selection.

Pick one or more cross sections from the bottom list using the same shift or control key technique described above. Cross section profiles will start to appear in the right pane once you have at least one survey and cross section selected.

Note that this bottom cross section list only contains the cross sections that occur within the currently selected survey(s) and selection above. If you are looking for a particular cross section and it doesn’t appear it is probably that it wasn’t surveyed in the currently selected survey(s) and/or doesn’t exist in the selection. visit the surveys and Selection tool to investigate whether this is true.

Cross Section Metrics

The bottom pane shows summary metrics for the cross sections that are currently displayed in the main plot area. cross section png


Survey vessels commonly attempt to follow monumented cross sections (using GPS and/or navigation software), but the actual path that the vessel follows differs from the intended, monumented cross section. In these situations, an offset can be recorded that captures the planimetric, 2D, Euclidean distance of the point that was actually surveyed from the position on the monumented cross section that it represents.

offset png

The Plot Options tab (see below) enables the user to filter out survey points that possess an offset greater than a specified tolerance. This can be useful if several surveyed points possess excessive offsets.

Note that this main cross section plot tool is the only tool in the cross section viewer software that uses offsets and performs this filtering. All other tools uses all surveyed points for each cross section.

Plot Export

The currently displayed plot as well as the underlying data can be exported at any time. When exporting the data, the stations and elevations for all currently displayed selections are written to a comma separate plain text ASCII file.

Plot Menu

Plot Options

The plot options tab contains several ways of controlling the cross section plot.

Plot Options


Surface Difference Plot

The surface difference plot helps visualize the changes in an individual cross section between two points in time. Parts of the cross section where the elevation has increased over time are shaded in blue, while places where the elevation has lowered are shaded in red.

Note! This feature currently only works for surveys that possess elevations at matching stations. This is true for GCD linear extractions but not necessarily with other survey data where the stations at which elevations are collected might differ between surveys. We intend to enhance this feature to handle such cases and also to report statistics summarizing the differences.




Help Menu

The Help Menu contains several items for getting help with the cross section viewer software and also updating the software itself.

Help Menu

Cross Section Viewer Online Help

Launches the online help for the software (this site) in the user’s default web browser.

Check For Updates

The Cross Section Viewer is capable of detecting when software updates are available and automatically downloading and updating the software. See the Downloads page for more information. This operation only updates the software itself and does not change any cross section viewer databases that you may have created.

About the Cross Section Viewer

The About screen shows the current version of the cross section viewer software as well as showing the contact information for getting help with the software.


Window Menu

The window menu provides several ways to quickly organize the currently open screens within the cross section viewer software.

Window Menu

Use the horizontal or verical organization to arrange windows such that you can see multiple tools at the same time. The cascade option is useful when you want to keep windows open but minimized, so that they do not clutter the screen. This option organizes the remaining non-minimized windows into a series of cascading windows for easier viewing.


Cross Section Area Calculations

Original Cross Section Areas

This method simply uses the area of each cross section, with each cross section bounded by its own highest elevation. This method is useful when the channel has migrated laterally and you want to consider the full width of the channel in both the new and old surveys.

Cross Section Areas

Common Cross Section Extents

This method constrains both cross sections to just the stations that are surveyed in both the new and old survey. Cross sections are capped at their highest elevation.

Cross Section Areas

Reference Plane

This method uses the full extent of both cross sections, but extends them vertically up to a reference plane. This upper elevation can optionally be lowered with a user-specified offset. Areas above the offset reference plane are excluded.

Cross Section Areas

Inside Reference Stations

This method constrains both surveys laterally to their common extent and within a left and right reference station. Cross sections are capped at their highest elevation.

Cross Section Areas

Outside Reference Stations

This method only considers area of both cross sections that is outside of the reference stations, but common to both cross sections. Cross sections are capped at their highest elevation.

Cross Section Areas


Cross Section Profile Area

The profile area of a cross section is performed throughout the Cross Section Viewer software by calculating the area of the polygon described by the surveyed points. This shape is always considered two-dimensional and does not account for any offset or longitudinal variation in the survey points. It simply uses station and elevation.

cross section png

D = Straight Length

A + B + C = Bed Length

E = Construction Reference Profile

F = Minimumm Elevation

G = Maximum Elevation

I = Construction Reference Plane

G - ((H/D)2) = Average Elevation

H = Cross Section Area

The offset respresents the Euclidean distance of the point that was actually surveyed from the position on the monumented cross section that it represents. It can be illustrated as below:

offset png

Typically the surveyed ends of a cross section do not occur at the same elevation and so the software always levels the top of the cross section by either:

  1. Adding a temporary survey point at one or both ends of the survey the same elevation as the highest point along the cross section.
  2. Capping the cross section at the height of a reference stage, such as the CRP or some user-defined, vertical offset from this reference stage.


LiDAR Elevation Extraction

North Arrow Research developed a separate, dedicated piece of software to perform the extraction of elevations from LiDAR generated digital elevation models (DEMs). The goal of the tool is to move along cross section lines at a specified interval and extract the elevation value from a DEM raster. The tool is written in such a way that multiple cross sections can be specified in a single ShapeFile, and multiple rasters can be specified in separate GeoTIFF or IMG raster files.

elevation extractor

Software Availability

This Elevation Extractor software is available upon request from North Arrow Research by contacting


The elevation extractor software requires the following software to be installed before it can be used:


  1. Double click the ElevationExtractor.exe file to launch the software.
  2. Click the Browse button to navigate to a ShapeFile that contains the cross section polylines. Each polyline should be a separate, single part feature. The ShapeFile must possess an integer column attribute called XSID that contains the same cross section IDs used in the Cross Section Viewer database where you ultimately want to use the elevation data. If you don’t intend to use the extracted elevations in the Cross Section Viewer then you need to create this field and populate it with arbitrary integers anyway.
  3. Transect Filtering - Select whether you want to process all transects or just a subset specified by an upstream or downstream ID.
  4. Extension - The extension is an optional distance beyond either end of each cross section polyline that will be sampled. Typically the extension is used to take cross section lines that terminate at the channel margin and elongate them by the specified extension out onto the floodplain.
  5. Interval - The distance between sample points along the extended cross section lines where elevations will be extracted from the DEM rasters. The interval is applied from the start/from point of the line geometry for each line.
  6. Line Digitization - This affects whether the lines in the ShapeFile are digitized from left to right bank or reversed. This is useful if the lines were digitized backward. It can be hard to tell which direction was used and it might be necessary to view the lines in ArcMap using an arrowhead symbology to determine the direction used.
  7. DEM Rasters - Use the Add and Remove buttons to incorporate more or less raster files into the process. At least one raster must be specified. Note that the rasters must use the same map projection as the cross section ShapeFile. And if you specify transects within a specific ID range, the cross sections should obviously overlap the particular rasters specified in the tool.


You can choose whether to output the extracted elevations as a ShapeFile, comma separated value (CSV) flat text file or both. The former is useful for visualising the extracted locations and elevations as verification for how the tool works. The latter is the most effective source for importing the elevations into the Cross Section Viewer Software.

Importing Elevations Into the Cross Section Viewer Database

The following instructions describe the workflow for getting the extracted elevations from CSV output files and into a copy of the Cross Section Viewer database. The database must already have all the cross sections defined using the same cross section IDs that were present in the cross section ShapeFile used during the elevation extraction process described above.

PARAMETERS [@SurveyID] Short;
INSERT INTO CrossSectionSurveys ( CrossSectionID, SurveyID )
SELECT ExtractedElevations.CrossSectionID, [@SurveyID] AS Expr1
FROM ExtractedElevations
GROUP BY ExtractedElevations.CrossSectionID, [@SurveyID];
PARAMETERS [@SurveyID] Short;
INSERT INTO CrossSectionSurveyPoints ( Station, Elevation, Easting, Northing )
SELECT ExtractedElevations.Station, ExtractedElevations.Elevation, ExtractedElevations.Easting, ExtractedElevations.Northing
FROM ExtractedElevations INNER JOIN CrossSectionSurveys ON ExtractedElevations.CrossSectionID = CrossSectionSurveys.CrossSectionID
WHERE (((CrossSectionSurveys.SurveyID)=[@SurveyID]));

final review

Notice how the LiDAR cross section data possess a flat surface in the wet part of the river channel. This is because the near infrared wavelength of conventional LiDAR is absorbed by water, producing no response for wet areas of the landscape. Also note that the LiDAR cross section data extend by the specified distance beyond the existing, bathymetric surveys that were constrained to the channel (except where the extended transect passed off the edge of the LiDAR DEM data extent).


In March of 2016, the Elevation Extractor tool was run on LiDAR data for the Missouri River and the results imported into the USACE Cross Section Viewer database.

The extraction was performed on 1m LiDAR DEM with a 2000ft extension and sampling distance of 4ft. The process was performed in three batches that corresponded to the way the data were provided by USACE:

Each of these batch runs included several DEM rasters. The results of each batch were output to a CSV file and these three files combined into a single copy of the Cross Section Viewer Missouri River database, provided to USACE.

A sample of the extracted elevation are shown below. The plot shows:

The images on the right show the LiDAR DEM with the original transect in blue. In several cases you can observe shallow sections or hard structures that are clearly identifiable in the extracted LiDAR elevations.



The Elevation Extraction tool was written in C# using Visual Studio 2010 Professional. The software uses ArcObjects 10.1 Service Pack 1. The binaries and source code are available from North Arrow Research upon request.


True Sailing Line Distance

This page describes the GIS workflow to extract the distances along the Missouri River sailing line for each of the USACE surveyed cross sections. These distances along the sailing line will be incorporated into the cross section viewer and used instead of river mile distances for all longitudinal calculations.


The ArcGIS Location Features Along Routes geoprocessing tool was used to identify the distance along the sailing line where each cross section intersects the sailing line. The inputs provided by USACE were:

The tools used were:


1) The river network ShapeFile was added to ArcMap. The feature representing the mainstem of the Missouri river was selected and then the “Export Data” feature of ArcMap used to export just the selected feature into its own ShapeFile. This one feature represented the entire Missouri river while the analysis only required the lower XXX miles. So the output ShapeFile was edited and the mainstem split at approximately river mile XXX. The upstream section was deleted, leaving a line representing just the lower section of the Missouri River.

2) The lower Missouri River ShapeFile was intersected with the Cross Sections ShapeFile to produce a point ShapeFile containing the locations where the cross sections meet the sailing line.


3) The Create Routes geoprocessing tool was used to prepare the lower Missouri River ShapeFile for the analysis. This tool indexes the geometry in the ShapeFile and makes it eligible for further linear referencing tasks. The inputs to the tool were as follows:


4) The Locate Features Along Routes geoprocessing tool was used to extract the distances of the cross section intersect points from the sailing line. Note that the inputs to this tool included the sailing line route (not the original sailing line ShapeFile, but the output of step 3). Also note that a search tolerance of 2ft was used to ensure that all the intersect points achieved a match with the sailing line. Using a value of zero meant that some points were omitted from the output because they didn’t reside on the sailing line precisely (despite being produced by an intersect analysis earlier in the workflow.)


5) The output of step 3 was a DBF table that can be opened in Microsoft Excel. The table contains both the cross section IDs (via the intersect points) and the distance along the sailing line. Upon review, the distances were discovered to originate from the upstream end of the lower Missouri River polyline and so each value was subtracted from the total distance of the line (obtained from the attribute table to be 2641302.39 ft) to obtain the sailing line distance from the downstream end.

6) As a validation check, 10 cross sections within the first and last mile of the lower Missouri River where selected and their distances along the sailing checked by hand using the ArcGIS measure tool. All values were verified to be correct. (Note that each vertex of the sailing line must be clicked on for the measure tool to provide identical results. The results will only match approximately if the measure tool is used from cross section point to cross section point.)

The final results of this analysis are attached at the bottom of this page.


Database Schema

The Cross Section Viewer software uses a local SQLite database to store all survey data and definitions. The figure below shows the individual tables and relationships within the database. A brief overview of each table is provided below.




Working With SQLite Databases

In 2018 the Cross Section Viewer was updated to use SQLite as the database underlying the software, instead of Microsoft Access. Should you want to interact with a Cross Section Viewer database directly (writing custom SQL queries etc) then you essentially have two options:


SQLite is natively a command line application with no user interface. However there are several free user interfaces available that provide rich user interfaces to SQLite databases. SQLite Studio is one such free user interface that possesses an excellent database browser and query functionality.

SQLite Studio does not need to be installed. You simply download the software, extract the zip archive anywhere on your system and then run it.

Microsoft Access

You can use Microsoft Access as the user interface to view and edit data stored in a SQLite database. To do this you have to set up an ODBC file source to the SQLite database and then add linked tables to an Access database that reference the SQLite database. Essentially Access becomes the user interface through which you interact with your data, but the actual data itself are stored in SQLite.

The following instructions describe the steps:

1) Download and install the 64 bit version of the SQLite ODBC Driver.

2) Open ODBC. This is a built-in piece of software that comes with all versions of Windows and allows you to connect to virtually any database format. The easiest way to open ODBC is to press the Windows key and then type “odbc”. Windows comes with both a 32 and 64 bit version and you should make sure that you select the 64 bit version of ODBC!


3) Make sure that you are on the “User DSN” tab and then click the Add... button.

4) Scroll down and choose the SQLite3 ODBC Driver.


5) Provide a meaningful name for this data source, something like “Cross Section Viewer” and then browse to the SQLite database file (*.xsdb). All other settings can be left untouched.

ODBC Config

6) Click OK to create the ODBC data source. You will return to the list of datasources with the new one selected.

7) Open Microsoft Access.

8) Create a new, blank Access database. You can save it anywhere but it makes sense to place it in the same folder as the SQLite database.

9) Click the External Data tab.

10) Click the ODBC Database button.

Access Link

11) Click the Option to Link to the datasource by creating a linked table.

12) In the Select Data Source popup that appears, switch to the Machine Data Source tab and select the ODBC data source that you created in the earlier step. Then click OK.

Access ODBC

13) A window will appear that shows all the tables in the Cross Section Viewer SQLite database. Select the ones that you are interested in, hold the Shift key to multi-select, or click the Select All button to link to all the SQLite tables.

14) Click OK.

The end result of all these steps is a very small Access database that links to the relevant tables in the SQLite database. You can query, add, edit, delete data in Access and the changes will actually occur back in the SQLite database. You can also use all of Accesses features to filter records, create new queries etc. Note that the Access database is extremely small. It doesn’t contain any actual data, but simply the links back to the SQLite database. (This is relevant if you want to email or share the Access database between colleagues or computers.)

Access Result



The Cross Section Viewer was developed by North Arrow Research Ltd. in collaboration with the Kansas City District of the U.S. Army Corps of Engineers (USACE). Dr. Philip Bailey of North Arrow Research Ltd. developed the database architecture, visual displays, and software code. Dr. John Shelley of USACE provided technical scoping, conceptual design, and testing of program features.

This software was originally conceived and built for working with a pre-existing database of survey cross sections for the Missouri River, but has since been made flexible for use on other rivers. The Kansas City District of the USACE has funded this development through the Bank Stabilization and Navigation Project, Missouri River Recovery Program, Section 204 CAP Authority, and the Regional Sediment Management program.



@import “jekyll-theme-primer”;



The Cross Section Viewer is a standalone, desktop software application. To install it you download and run the setup.exe application linked below. This will install the Cross Section Viewer in your user profile folder (not the Windows Program Files folder). Read the release notes for information on the latest features and updates.

BETA Release

Cross Section Viewer 2.0 is still in pre-release mode. If you're looking for a stable version please download version 1

Latest stable release of Cross Section Viewer 1:   Cross Section Viewer 1.2.2

  Cross Section Viewer 2.0 Beta Software Download


The following software are required and must be installed before attempting to download and install the Cross Section Viewer software.

Installation Process

Click on the link above to download the Cross Section Viewer software setup.exe file. Certain internet browsers will warn about the potential risks of downloading executable files (see below). Check that the warning refers to the cross section viewer file and then click to keep the file.


Once the setup.exe file download is complete, double click the file to run the installation routine and follow the prompts to complete the process. There are no options or choices during the installation.

Note that the Cross Section Viewer does not require Administrator privileges to install and does not place any files in the C:\Program Files folder. The entire application is stored in the user’s profile folder.

Obtaining Updates

The Cross Section Viewer software automatically checks for newer versions every time the software is launched. When a newer version is detected the user is prompted to install it.

Update Offer

Note that clicking cancel turns off the automated check permanently and the software will no longer prompt when newer versions are available.

There is also a manual “Check for Updates” feature on the Help menu in the software.

Update Menu



Average Elevation - Determined by calculating the area of the cross section and dividing it by the top width and subtracting from the top width elevation.

Bed Length - The sum of the lengths between each survey point along the cross section

Calculate and Store Cross Section Metrics – Cross Section Viewer calculates the cross section metrics to be used by tools within the software. This should be performed on any new database

Calculate Cross Section Spacing - Cross Section Viewer calculates the cross section spacing to be used by tools within the software. This should be performed on any new database

Closest Bank - L indicates that the defined station is closest to the channel margin left bank. R indicates the right bank

Construction Reference Plane (CRP) - A sloping datum on the Missouri River representing the stage, or water surface elevation met or exceeded 75% of the time during navigation season (source). In the software, any sloping datum is referred to as a CRP. It need not conform to the Missouri River definition.

Cross Section – Elevation vs. station at a transect across the river of a particular location along the river (i.e. river mile).

CRP Elevation - The elevation (in feet) of the sloping datum (called the CRP) at a given cross section.

Elevation - The vertical distance above a defined datum, typically sea level.

Lateral Change - Tool that generates plot of Bed Change vs. Depth Below Reference Plane between two Surveys with additional filtering by Selection, Reference Plane, Station, Cross Section, Plot Type. Used to describe how cross sections change with relation to depth or distance from a defined station (like a thalweg).

Long Profile - The long profile shows how a river’s gradient changes as it flows from its source to its mouth (source)

Longitudinal Change – Tool that generates plot of Cumulative Volume Change vs. River Mile for given Selection with additional filtering by Survey, Station, Vertical (Max cross section elevation) and River Mile

NAVD88 - “Is the vertical control datum of orthometric height established for vertical control surveying in the United States of America based upon the General Adjustment of the North American Datum of 1988” (source)

NGVD29 - “The Sea Level Datum of 1929 was the vertical control datum established for vertical control surveying in the United States of America by the General Adjustment of 1929. The datum was used to measure elevation (altitude) above, and depression (depth) below, mean sea level (MSL) … Since the Sea Level Datum of 1929 was a hybrid model, it was not a pure model of mean sea level, the geoid, or any other equipotential surface. Therefore, it was renamed the National Geodetic Vertical Datum of 1929 (NGVD 29) in 1973” (source)

Offset - The Euclidean distance of the point that was actually surveyed from the position on the monumented cross section that it represents*

Reference Stage – A fixed, horizontal line at a particular cross section.

Reference Station - One or more fixed vertical lines on a cross section.

River Bend - A knee or a meander in a river

River Mile - The longitudinal position of the cross section along the river

Sailing Line Distance - The high precision longitudinal position of the inflection point. Used to compute actual distance between cross sections.

Selections – A subset of available cross section locations. Also the name of the tool within the Cross Section Viewer that allows the user to create selections of cross sections based on desired attributes.

Station - The distance of the survey point from the left bank

Survey - A database record which includes information about the river survey including its name (often the date the survey was performed), extent of the survey (maximum and minimum river miles), number of cross sections, and any remarks

Survey Width - The euclidean distance between the first and last survey point

Vertical Datum - Vertical datum used for the cross section elevations (software currently allows for NAVD88 and NGVD29)

Whole River Miles - Points along the river corresponding with exact miles



The Cross Section Viewer is an interactive software application for managing and visualizing river transect data. The software uses a simple data model that allows most types of transect data to be stored and viewed. A series of interactive tools include areal, profile and longitudinal plots as well as several geomorphic calculations that would typically take a user a considerable amount of time to produce.

Cross Section Viewer



This site is the primary support resource for the cross section viewer. Use the Online Help section for instructions on how to use the software and the Technical Reference for understanding the calculations used to report the various results shown throughout the software. Errors and issues using the software should be reported to


If you use the Cross Section Viewer, please cite the following publication:

Shelley, John, and Philip Bailey. 2018. The Cross Section Viewer: A Tool for Automating Geomorphic Analysis Using Cross Section Data. ERDC/TN RSM- 18-3. Vicksburg, MS: U.S. Army Engineer Research and Development Center.


Release Notes

The notes below describe the enhancements and fixes for each release of version 2 of the Cross Section Viewer software. The release notes for version 1 are available here.

2.0.13 - 6 Oct 2018

2.0.12 - 31 Aug 2018

2.0.11 - 26 Jul 2018

2.0.10 - 12 Jul 2018

2.0.9 - 10 Jul 2018

2.0.8 - 9 Jul 2018

2.0.7 - 21 Jun 2018

2.0.6 - 18 Jun 2018

2.0.5 - 25 May 2018

2.0.4 - 17 Apr 2018

2.0.3 - 16 Apr 2018