Skip to content
/ r2q Public

R Package with Functions and Exchange for Project R2Q

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

KWB-R/r2q

Repository files navigation

R-CMD-check pkgdown codecov Project Status CRAN_Status_Badge R-Universe_Status_Badge

r2q

The R package is used to define a tolerable pollutant input into small surface waters via rainwater runoff. It assigns a maximal connectable urban area to the surface water. For planning areas, different scenarios regarding the connection of surfaces to the separate sewer system and runoff water treatment can be calculated.

Installation

For details on how to install KWB-R packages checkout our installation tutorial.

### Optionally: specify GitHub Personal Access Token (GITHUB_PAT)
### See here why this might be important for you:
### https://kwb-r.github.io/kwb.pkgbuild/articles/install.html#set-your-github_pat

# Sys.setenv(GITHUB_PAT = "mysecret_access_token")

# Install package "remotes" from CRAN
if (! require("remotes")) {
  install.packages("remotes", repos = "https://cloud.r-project.org")
}

# Install KWB package 'r2q' from GitHub
remotes::install_github("KWB-R/r2q")

Example

Example for using the Excel input mask
path <- file.path(system.file(package = "r2q"), "extdata", "Example")
fileName <- "Herne_Baukau.xlsx"

# checkout the example excel file (only works on windows with excel installed)
shell.exec(file.path(path, fileName))

# load Example -----------------------------------------------------------
siteData <- r2q::load_site_data(
  data.dir = path, 
  filename = fileName
)

c_river <- r2q::load_background_data(
  data.dir = path,
  filename = fileName, 
  default_for_na = TRUE
)

# load package data ---------------------------------------------------------
c_storm <- r2q::get_stormwaterRunoff(
  runoff_effective_mix = list(
    siteData$landuse$Mix_flow_connected[c(2,1,3,4)], 
    siteData$landuse$Mix_flow_connectable[c(2,1,3,4)]),
  mix_names = c("is", "pot"))

c_threshold <- r2q::get_thresholds(LAWA_type = siteData$LAWA_type$Value)

# yearly rain event
rain <- r2q::get_rain(
  area_catch = siteData$area_catch$Value, 
  river_cross_section = siteData$river_cross_section$Value,
  river_length = siteData$river_length$Value, 
  river_mean_flow = siteData$Q_mean$Value,
  x_coordinate = siteData$x_coordinate$Value,
  y_coordinate = siteData$y_coordinate$Value
)

# combine data ---------------------------------------------------------
c_table <- r2q::combine_concentration_tables(
  threshold_table = c_threshold, 
  storm_table = c_storm, 
  background_table = c_river
)

# process -----------------------------------------------------------------
r2q_h <- r2q::hydrology_assessment(site_data = siteData, q_rain = rain[2])
c_type <- "average" # --> median or "worstcase" -> 95th Quantile

# which substance poses a high risk?
checked <- r2q::check_all_substances(
  c_table = c_table, 
  c_type = c_type)

# Assessment of one substance
  r2q::immission_assessment(
    site_data = siteData, 
    c_table = c_table, 
    q_rain = rain[2], 
    t_rain = rain[1] * 60, substance = "Zink_geloest", 
    hazard_list = checked)

# Assessment of all substances of potentially high risk
r2q_out <- r2q::assess_all_hazards(
  hazard_list = checked, 
  site_data = siteData, 
  c_table = c_table, 
  q_rain = rain[2], t_rain = rain[1] * 60, 
  c_type = c_type)

# plot the results
r2q::plot_hazards(hazards = checked) # substances that might pose a high risk

r2q::plot_connectable_urban_area(
  r2q_substance = r2q_out, 
  r2q_hydrology = r2q_h, 
  site_data = siteData, 
  x_type = "percent", 
  language = "de"
)

# detailed planning (excel sheet: "planning_area_details") ------------------
planningData <- r2q::load_planning_details(
  data.dir = path, 
  filename = fileName,
  scenario_name = "planning_area_details" # excel sheet name of planning details
)

pl_out <- r2q::planning_area_discharge(
  planning_data = planningData, 
  q_rain = rain[2], 
  t_rain = rain[1] * 60, 
  y_rain = siteData$rain_year$Value, 
  thresholdTable = c_threshold)

# comparison with tolerable discharge
isPlan <- data.frame(
  "loadPlan_is" = pl_out$sum)
isPlan$substance <- rownames(isPlan)
df_compare <- merge(
  x = isPlan, 
  y = as.data.frame(lapply(r2q_out$general, unlist)), 
  by = "substance", 
  all.y = TRUE)
df_compare

Documentation

Release: https://kwb-r.github.io/r2q

Development: https://kwb-r.github.io/r2q/dev

Documentation

Release: https://kwb-r.github.io/r2q

Development: https://kwb-r.github.io/r2q/dev

About

R Package with Functions and Exchange for Project R2Q

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages