README.md

The DSS-R interface project. (dssrip)

The use of the dssrip package is not endorsed by the Hydrologic Engineering Center (HEC) and the Hydrologic Engineering Center cannot guarantee the results of using this package. Do not expect support or assistance with the use of this package, and there are no plans for future updates to this package.

dssrip is a package of R functions to read data from HEC-DSS file by making calls to the Java methods exposed in HEC-DSSVue's scripting capability.

Provided under MIT license without warranty.

see also dssrip2 for a newer implementation that hides more of the Java API in a more R friendly format

Install Instructions:

R packages required

If you haven't already, install the rJava, plyr, reshape2, stringr, xts, broom, and rjson packages that are required by the dssrip package's code. In addition, remotes (previously devtools) is recommended to install directly from github.

DSS libraries

As of the 0.4 version of dssrip, the package will download it's own dependencies during the installation process (or the first time it is run, if manually installed).

To make this work, the following options need to be set prior to installation: - dss_override_location: where do you want the dependencies to go. This directory should exist and contain two sub-directories, "jar" and "lib", otherwise the dependency download via curl will fail. - dss_config_filename: location of a .json file spelling out required dependencies and JVM location, see example in config directory of this repository.

I make this work with the following in my .Rprofile:

# this line tells dssrip where to store / find the dependencies, you must be able to load a .dll from this location.
options(dss_override_location="c:\\projects\\dssrip\\monolith")
# this points to a config file that isn't the default used by the package.  I recommend doing this manual step.
options(dss_config_filename="~\\dssrip.config")
# This config is the current prefered method of using dssrip
options(dss_default_config="monolith-win-x86_64")
# required if default config is not a "tested" configuration.
options(dss_allowed_states="untested") 
options(dssrip_debug=T)

Installing the package

After configuring as above, to install dssrip, use the remotes package's install_github function.

remotes::install_github("eheisman/dssrip", INSTALL_opts = "--no-multiarch", ref="main")

The '--no-multiarch' parameter is required to force it to install only the current architecture. If you do not have the options set to point to a version of the javaHeclib.dll file with the same architecture as the version of R that you are running, the install will fail. If you need to use both 64-bit and 32-bit R, you will have to install it once for each version.

Deprecated: .Rprofile settings required for using DSSVue as dependencies.

Two settings need to be applied in your .Rprofile file to install and load dssrip correctly. Without setting these, it falls back to the settings in the default jar_config.json file which may not work for your machine. The install process for R packages happens in a clean environment, so setting them in your script prior to running install may not set them in that environment.

Setting the environment variable JAVA_HOME helps the rJava package that dssrip depends on find the correct Java executables. For compatibility reasons, it should be pointed to the location of the Java Runtime included with the DSS libraries you are using.

An example .Rprofile for this configuration ends up looking like this:

if(R.Version()$arch=="x86_64"){
  # use 64-bit .jar and .dll
  options(dss_override_location="c:\\programs\\HEC-DSSVue-v3.0.00.212\\")
  Sys.setenv(JAVA_HOME=paste0(options("dss_override_location"), "java"))
} else {
  # use 32-bit .jar and .dll (old dssrip, no longer needed)
}

Note: for DSS installed elsewhere than Program Files

Set the following in your .Rprofile, or run before you install and/or load dssrip:

  options(dss_override_location="c:\\programs\\HEC-DSSVue-v3.0.00.212\\")

dssrip now automatically detects if the file separator character is needed on the end of this path, but including it is a safe option.

R options to modify the process to load DSS dependencies for dssrip

Other options that can be used to help the package load correctly by pointing to the correct DSS .jar and library files:

Usage:

Load dssrip as a library with require(dssrip) or library(dssrip).

myFile = opendss(dssFilename) to open a DSS file or to create a new one.

From the returned hecdss object, either accompanying functions can be used to read data, or DSSVue's Jython API can be called. See Chapter 8 of the DSS-Vue manual for a detailed list of Jython API calls.

Several convenience functions for reading timeseries and paried data containers have been added, a brief summary presented below:

getPaths - useful for getting the list of paths in a DSS file and searching through these paths by wildcards or regex strings.

getFullTSC - returns an xts object with the requested data.

getColumnsByName - read a column from a PairedDataContainer.

jar_config.json file:

The following is an example of the jar_config.json file required to point dssrip at a different copy of the DSS libraries.

{
  "configs": [
    {
      "name": "dssvue3-win64",
      "state": "tested",
      "notes": "this is the best supported configuration",
      "platform": "x86_64-w64-mingw32",
      "path.sep": "\\",
      "dss_location": "C:\\Programs\\HEC-DSSVue-v3.0.00.212",
      "jars": ["jar\\hec.jar", "jar\\rma.jar", "jar\\lookup.jar", "jar\\hec-dssvue-v3.0.jar", "jar\\help\\dssvueHelp.jar"],
      "libs": ["lib"],
      "lib.ext": "dll",
      "JAVA_HOME": "java"
    }
  ],
  "default_config":"dssvue3-win64"
}

Fields under the configs blocks:

default_config: if multiple match, use the one with this name by default.

Known Issues:

Hydroutils

The plotting and misc hydrology functions of this package has been moved to their own package, hydroutils.



eheisman/dssrip documentation built on Feb. 10, 2024, 2:40 p.m.