HEC-DSS

HEC-DSS is a database system that was designed to efficiently store and retrieve scientific data that is typically sequential. Such data types include, but are not limited to, time series data, paired data, spatial-oriented gridded data, textual data, and others. The system was designed to make it easy for users and application programs to retrieve and store data.

HEC-DSS data is stored in blocks (called records) within a file, and each record is identified by a unique name called a pathname. The pathname is formulated in a way that makes it easy to group related data. Software from HEC has the ability to read from and write to HEC-DSS files. This capability facilitates data exchange among applications. For example, you could use HEC-ResSim to generate the time series data input for HEC-FIA. A pathname may consist of up to 391 characters and is, by convention, separated into six parts, which may be up to sixty-four characters each. Pathnames are automatically translated into all upper case characters. They are separated into six parts (delimited by slashes "/") labeled "A" through "F," as follows: /A/B/C/D/E/F/. The table below provides an example naming convention for regular-interval time series. A typical regular-interval time series might be:

/RED RIVER/BEND MARINA/FLOW/01JAN1995/1DAY/OBS/

HEC-DSS Pathname Parts

Part

Description

A

Project, river, or basin name

B

Location

C

Data parameter (e.g., FLOW, PRECIP)

D

Starting date of block, in a 9 character military format (ddmmyyyy)

E

Time interval

F

Additional user-defined descriptive information

CWMS Database

The CWMS database uses a similar pathname concept, but uses a set of identifiers rather than the ambiguous A through F parts. The identifiers are separated using periods instead of slashes. The following are the six parameters used as identifiers:

  • Location – physical location where data is collected
  • Type – indicates whether the reading is instantaneous, total (cumulative), maximum, minimum, average, or constant
  • Parameter – indicates the type of gage, such as precipitation or temperature. A hardwired list of parameter IDs are available in the CWMS database
  • Interval – specifies the interval between readings, or how often readings are taken (1 hour, 1 day, etc.)
  • Duration – indicates how long it takes to record a data point; an instantaneous interval requires a duration of zero
  • Version – designates the data stream with which the time series is associated

Comparing Pathname Structure

The pathnames between the CWMS database and HEC-DSS file are relatively similar with a some deviation between them. Below is an example of two files of the same data but one is stored in the CWMS database and the other in a HEC-DSS file. 

HEC-DSS pathname: //Bush/Elev/01Dec2022/15Minute/USGS-rev/
CWMS Database pathname: Bush.Elev.Inst.15Minutes.0.USGS-rev

In this example, the B-part and location are the same with "Bush". The C-part and parameter are the same with "Elev". The E-part and Interval correspond with "15minutes". The F-part and version coincide with both being "USGS-rev". The differences are present with the A-part and D-part of the HEC-DSS file and the type and duration of the CWMS database.