The HEC-DSS Importer is opened from Data → New Data → Import from HEC-DSS.

This utility copies records out of an existing HEC-DSS file — the interchange format shared with HEC-RAS, HEC-HMS, HEC-SSP and other HEC software. Records can be filtered, plotted, and tabulated before any is imported.

There are two steps as described below.

Step 1 — Name

NameThis field is required and becomes the dataset name displayed in the Project Tree.
DescriptionThis field is optional.

Step 2 — Records: selecting the file

There are two ways of selecting a DSS file for import.

The Browse... button opens a file picker, or you can drag a `.dss` file onto the field. Only `.dss` files are accepted.

Opening a DSS file requires the Neptune desktop app — the browser build cannot reach the local filesystem and says so: "Opening a DSS file requires the Neptune desktop app."

Neptune reads the file's catalog and lists its records. Records that differ only by their D-part — the date-block boundary — are condensed into one row per series, matching HEC's condensed catalog. The condensed pathname shows a blank D-part (`/A/B/C//E/F/`) and the D column shows the block span. Importing a condensed record brings in every block.

Step 2 — Filtering and selection

Pathname Part Filters gives one box per part, A through F. Each is a case-insensitive substring match, and all non-blank filters must match. The special filter `(none)` matches records whose part is empty. The record count reads "{shown} of {total}". Columns sort on header click.

The record list and the selection list are separate:

In the record list — Click to select. Shift+click for a range, Ctrl+click to toggle, Ctrl+A for all. Then Add Records to Selection (n) moves the highlighted rows into Selected Records.

In Selected Records — Remove Selected (n) drops highlighted entries; Clear Selections empties the list. Plot and Tabulate open the selected records without importing them — the values are read straight from the DSS file for the preview, so nothing is written until the Import Data button is clicked.

Each record's Type column reads Timeseries Data or Paired Data.

Importing, and the Confirm Overwrite prompt

Before anything is written, Neptune compares each selected record against what the project already holds. A record counts as already imported only when its whole pathname — parts A through F — matches a DSS-sourced dataset in this project. A record differing in any part is a different record.

For each conflict, you will be asked to make an overwrite decision for the conflict with Yes, Yes to All, No, No to All, Cancel.

Every prompt is answered before the first record is written, so Cancel leaves the project untouched. Answering Yes replaces the existing dataset's values in place — it keeps its id, its name, and its position in the tree, so analyses referencing it keep working and pick up the new values.

If the import fails: records are registered one at a time, so a failure partway through leaves the earlier records saved. Neptune refreshes the project tree, reports the error in an Import Failed dialog, and leaves the wizard open so the run can be retried or narrowed.

Naming

Each imported dataset is named `<Name>-<A part>-<B part>-<C part>`, blank parts omitted. Including the location parts is what keeps two gages' annual-peak records apart — both have a blank B-part and the same C-part, so the C-part alone would collide. If the name is taken, a number is appended (`…2`, `…3`). An overwrite keeps the existing dataset's name.

What is stored

Values are copied into the project's `.neptune` file. *Nothing is written back to the source `.dss` file, and nothing is written beside the project.

Records group in the Project Tree by their C-part, canonicalized — a time-series C-part through the parameter list (`FLOW` → Discharge), a paired-data C-part through the curve-type list (`ELEVATION-STORAGE` → Elevation-Storage). Source path plus record pathname are kept as the re-import key.

A record whose unit Neptune cannot read is refused rather than guessed at. For a paired record the ordinate unit is the exception — an unreadable spelling there leaves the unit absent instead of failing, since that axis may be dimensionless.