Tidywater incorporates published water chemistry and empirical models in a standard format. The modular functions allow for building custom, comprehensive drinking water treatment processes. Functions are designed to work in a tidyverse workflow.
# Install tidywater from CRAN:
install.packages("tidywater")
# Alternatively, install the development version from GitHub:
# install.packages("devtools")
::install_github("BrownandCaldwell-Public/tidywater") devtools
In this first example, acid-base chemistry and TOC removal models are demonstrated. This example uses tidywater base functions to model a single water quality scenario.
library(tidywater)
library(tidyverse)
## Use base tidywater functions to model water quality for a single scenario.
<- define_water(ph = 8, alk = 90, tds = 50, toc = 3, doc = 2.8, uv254 = 0.08) %>%
base_coagulation chemdose_ph(alum = 30) %>%
chemdose_toc(alum = 30)
To model multiple water quality scenarios, use tidywater’s helper functions (x_chain or x_once) to apply the models to a dataframe.
## x_chain functions apply models to a list of "waters", and output a list of "waters" so that
## the data can be piped into the next tidywater model.
<- water_df %>%
coagulation define_water_chain(output_water = "raw") %>%
mutate(alum = 30) %>%
chemdose_ph_chain(input_water = "raw", output_water = "phchange") %>%
chemdose_toc_chain(input_water = "phchange", output_water = "coag")
## To get out individual parameters, use `pluck_water`
<- coagulation %>%
coagulation pluck_water(input_waters = c("raw", "coag"), parameter = c("ph", "doc"))
Note that these functions use a “water” class. The “water” class is
the foundation of the package; it provides a mechanism for linking
models in any order while maintaining water quality information. The
define_water
function takes water quality inputs, but
define_water_chain
may be used to convert a dataframe to a
list of “waters”.
For more detailed examples on tidywater functions and how to use
“water” class data, please see the tidywater vignettes:
browseVignettes("tidywater")
This project is maintained by volunteers and is provided without warranties or guarantees of any kind.
Use at your own risk. For official support, please contact Brown and Caldwell.
Please read our CONTRIBUTING.md and SECURITY.md before submitting issues or pull requests.