HEC-DSS can store information about the location of a site, such as the latitude, longitude and elevation. This data is stored in a "location" record which is part of the "DataContainer" class, the base class for most of the container classes used by HEC-DSS.
For time-series and paired data location information is stored, retrieved and copied automatically by HEC-DSS. For other types of data, such as arrays or text, location information is not stored automatically, but can be retrieved and stored by the following functions in the HecDataManager class:

  • public int zlocationRetrieve (DataContainer dataContainer)
  • public int zlocationStore (DataContainer dataContainer)

A location record's pathname has the same A and B parts as the dataset's pathname and a C part of "Location info". The D, E and F parts are null. When either zlocationRetrieve or zlocationStore is called, the dataset's pathname can be used, as those functions will modify it to match the location conventions. A location pathname appears as follows
/Part A/Part B/Location Info////
Where Part A and Part B will be replaced with the parts from the dataset pathname.
Location information is stored in a DataContainer and are public variables that are directly accesses in the container (i.e., there are no "get" or "set" methods, you just access them through the container. The location information that may be stored via DataContainer variables as follows:
public double xOrdinate - Longitude, Easting or decimal degrees (negative for Western Hemisphere)
public double yOrdinate - Latitude, Northing or decimal degrees
public double zOrdinate – Elevation
public int coordinateSystem – int representing coordinate system:
0 - no coordinates set
1 – Latitude / Longitude
2 - State Plane, FIPS
3 - State Plane, ADS
4 – UTM
5 - Local (other)
public int coordinateID - UTM zone #, or FIPS SPCS # ADS SPCS #
public int horizontalUnits – int representing the horizontal units:
0 - unset
1 – Feet
2 - Meters
3 - Decimal Degrees
4 – Degrees / Minutes / Seconds
5 - Local (other)
public int horizontalDatum – int representing the horizontal datum:
0 - unset
1 – NAD83
2 - NAD27
3 - WGS84
4 – WGS72
5 - Local (other)
public int verticalUnits – int representing the vertical units:
0 - unset
1 – feet
2 - meters
public int verticalDatum – int representing the vertical datum:
0 - unset
1 – NAVD88
2 – NGVD29
3 - Local (other)
public String locationTimezone – The (Java) time zone name at the location (not the data). "America/New York" is preferred, but "EST" may be acceptable. Daylight savings time is a component of a time zone, not a time zone itself, so "EDT" would be rejected by Java (although you can save anything here.)
public String supplementalInfo – Any additional information that describes the location. When stored, supplementalInfo will be null terminated. You can separate segments within supplementalInfo using a new line character (\n), or you can use an XML format, or you can use a "Keyword:Item;" format, where the keyword is separated from the item by a colon ':', and the item is terminated by a semi-colon ';'. Keyword1:Item1;Keyword2:Item2;Keyword3:Item3;
For example:
Offset:1.2;Shift:3.4;Datum:5.6;Transform:LogLog;