A rewrite of dssrip
. Supports
reading and writing time series and paired data to DSS.
Read/write support for DSS grid data is planned.
Supported Operating Systems:
- Windows
- Linux
- MacOS
Supported HEC-DSSVue versions:
- HEC-DSSVue 2.0.1
You can install the {dssrip2}
directly using
remotes::install_github("mkoohafkan/dssrip2")
To build the vignettes on install, use the argument build_vignettes = TRUE
.
{dssrip2}
can connect to HEC-Monolith libraries using
dss_install_monolith()
dss_connect(monolith = TRUE)
If the option dss.monolith
is set to TRUE
,
{dssrip2}
will interpret the
dss.home
option as the HEC-Monolith directory path.
By default, {dssrip2}
will install HEC-Monolith to
%LOCALAPPDATA%
(Windows) or ~/.dssrip2/monolith
(Unix),
but this can be overridden.
dss_connect()
will retrieve the path using getOption("dss.home")
if no path is provided.
To use Monolith automatically, set the following options in your R profile:
options(dss.monolith = TRUE)
If you don't want to use the HEC-Monolith libraries, {dssrip2}
can
connect to an existing HEC-DSSVue program installation instead.
To use this option, both a 64-bit install of HEC-DSSVue and a 64-bit
JDK are required. To load DSS functionality, call
library(dssrip2)
dss_connect("path/to/HEC-DSSVue")
If the option dss.monolith
is set to FALSE
(the default),
{dssrip2}
will interpret the dss.home
option as the
HEC-DSSVue application directory path.
To use an HEC-DSSVue installation automatically, set the following option in your R profile:
options(
# replace with the install path on your machine
dss.home = "C:/Program Files/HEC/HEC-DSSVue"
)
To suppress messages from DSS, use
dss_connect(message_level = 1L)
# or after calling dss_connect()
dss_message_level(1L)
If no message level is provided, dss_message_level()
will retrieve
the level using getOption("dss.messagelevel")
. You can also set
this option in your .Rprofile
:
options(
dss.messagelevel = 1L
)
{dssrip2}
can create DSS version 6 and 7 files:
tf1 = tempfile(fileext = ".dss")
tf2 = tempfile(fileext = ".dss")
# create a DSS-7 file (default behavior)
dss_create(tf1)
# create a DSS-6 file
dss_create(tf2, version = 6)
{dssrip2}
also provides methods to convert between DSS versions:
tf3 = tempfile(fileext = ".dss")
dss_convert(tf2, tf3)
{dssrip2}
automatically detects the data type being read, so the same
function call can be used for reading time series and paired data.
exfile = system.file("extdata/example.dss", package = "dssrip2")
# time series
dss_read(exfile, "/BRANDYWINE CREEK/WILMINGTON, DE/FLOW/01JAN1946/1DAY/USGS/")
# paired data
dss_read(exfile, "/BRANDYWINE CREEK/WILMINGTON, DE/FLOW-STAGE///GENERATED DATA PAIRS/")
DSS files will usually close on their own after some period of inactivity, but it is best practice for users to explicitly close the file when they are finished:
dss_close(exfile)
# or close all files opened by dssrip2 with dss_close_all()
{dssrip2}
deduces the data type to write based on the supplied
R object, so the same function call can be used for reading time
series and paired data. However, writing DSS objects requires
additional attributes that must be explicitly supplied by the user:
tf = tempfile(fileext = ".dss")
dss_create(tf)
# time series
data(Nile)
nile = data.frame(datetime = as.Date(sprintf("%d-10-01", time(Nile))),
flow = as.vector(Nile) * 1e8)
nile = dss_add_attributes(nile, list(units = "cubic meters",
type = "PER-CUM"))
path = "//NILE RIVER/VOLUME//1YEAR/R DATASET/"
dss_write(nile, tf, path)
# paired data
data(CO2)
uptake = reshape(CO2[c("Plant", "conc", "uptake")],
direction = "wide", idvar = "conc", timevar = "Plant")
names(uptake) = gsub("uptake.", "", names(uptake))
uptake = dss_add_attributes(uptake, list(xtype = "LINEAR",
ytype = "LINEAR", xunits = "mL/L", yunits = "umol/m^2"))
path = "//PLANT CO2 UPTAKE/CONCENTRATION-UPTAKE///R DATASET/"
dss_write(uptake, tf, path)