diff --git a/.Rbuildignore b/.Rbuildignore
index a2f6c1f..52231cb 100644
--- a/.Rbuildignore
+++ b/.Rbuildignore
@@ -11,3 +11,7 @@
^\.github$
^vignettes/articles$
^Results$
+^rfaR-book$
+^rfaR-book/
+^05-function-reference\.qmd$
+^rfaR_Testing_DLS114\.Rmd$
diff --git a/R/data.R b/R/data.R
index 917e8ad..a01560d 100644
--- a/R/data.R
+++ b/R/data.R
@@ -442,3 +442,48 @@
#' example_stratified[sample(nrow(example_stratified), 5), ]
"example_stratified"
+# REJECTION SAMPLING EXAMPLE DATA
+#' Rejection Sampling - Example Data
+#'
+#' Hydrologic Loading (stage-frequency) data that can be used in the PMF-stage
+#' rejection sampling process.
+#'
+#' @format A data frame with 89 rows and 2 columns:
+#' \describe{
+#' \item{aep}{Annual Exceedance Probabilities}
+#' \item{stage}{Expected stages corresponding to AEPs}
+#' }
+#'
+#' @seealso [rfaR::rejection_sampling_stage()]
+#' @examples
+#' head(ex_rs_stage_loading)
+"ex_rs_stage_loading"
+
+#' HMS-Scaled May 1955 Data
+#'
+#' Example data used in package tests for scaled hydrograph routing.
+#'
+#' @format A data frame.
+#'
+#' @keywords datasets
+"hms_scaled_may1955"
+
+
+#' JMD RFA Median Results
+#'
+#' Example median results data for reservoir frequency analysis.
+#'
+#' @format A data frame.
+#'
+#' @keywords datasets
+"jmd_rfa_median"
+
+
+#' JMD RFA Expected Tabular Results
+#'
+#' Example expected tabular results data for reservoir frequency analysis.
+#'
+#' @format A data frame.
+#'
+#' @keywords datasets
+"jmd_rfa_expected_tabular"
diff --git a/R/rejection_sampling.R b/R/rejection_sampling.R
index 7065870..c53103e 100644
--- a/R/rejection_sampling.R
+++ b/R/rejection_sampling.R
@@ -98,7 +98,7 @@ pmf_stage_lognormal <- function(
implied_p95 <- pmf_shift + qlnorm(0.95, mu, sigma)
(implied_p05 - pmf_low)^2 + (implied_p95 - pmf_high)^2
}
- pmf_sigma <- optimise(sigma_obj, interval = c(1e-6, 10))$minimum
+ pmf_sigma <- stats::optimise(sigma_obj, interval = c(1e-6, 10))$minimum
} else {
# --- Mode 1: sigma supplied ---
if (is.null(pmf_sigma)) {
@@ -152,22 +152,20 @@ pmf_stage_lognormal <- function(
#' supplied with \code{aep}. Mutually exclusive with \code{stage_freq_df}.
#' @param n_samples Integer. Number of samples to draw. Defaults to \code{1e7}.
#'
-#' @return A data frame of thinned accepted samples with columns for z-score
+#' @return A data frame of thinned accepted samples with columns for aep, z-score (`z_aep`),
#' and stage, suitable for plotting a probabilistically bounded stage-frequency
#' curve. Output is produced by \code{thin_samples()}.
#'
#' @seealso \code{\link{pmf_stage_lognormal}}
#'
#' @examples
-#' \dontrun{
-#' pmf_ln <- pmf_stage_lognormal(pmf_shift = 239, pmf_mean = 241.9, pmf_sigma = 0.5)
#'
+#' pmf_ln <- pmf_stage_lognormal(pmf_shift = 239, pmf_mean = 241.9, pmf_sigma = 0.5)
#' result <- rejection_sampling_stage(
#' pmf_stage_LN = pmf_ln,
-#' stage_freq_df = my_stage_freq_df,
-#' n_samples = 1e7
+#' stage_freq_df = ex_rs_stage_loading,
+#' n_samples = 1e5
#' )
-#' }
#'
#' @export
rejection_sampling_stage <- function(
@@ -251,12 +249,20 @@ rejection_sampling_stage <- function(
stage_sorted <- sort(stage_draws)
# Assign Weibull pp
- weibull_aep <- 1 - seq_len(n_samples) / (n_samples + 1)
+ weibull_aep <- 1 - (seq_len(n_samples) / (n_samples + 1))
# Convert to z_aep
z_sorted <- qnorm(1 - weibull_aep)
# Thin for plotting purposes
- probabilistic_bounded <- thin_samples(n_samples, z_sorted, stage_sorted)
+ probabilistic_bounded_z <- thin_samples(n_samples, z_sorted, stage_sorted)
+
+ # Return the aep, z_aep, and stage
+ out_aep <- 1 - pnorm(probabilistic_bounded_z$z_aep)
+ probabilistic_bounded <- data.frame(
+ aep = out_aep,
+ z_aep = probabilistic_bounded_z$z_aep,
+ stage = probabilistic_bounded_z$stage
+ )
return(probabilistic_bounded)
}
diff --git a/_pkgdown.yml b/_pkgdown.yml
index f44f34c..9f46270 100644
--- a/_pkgdown.yml
+++ b/_pkgdown.yml
@@ -7,8 +7,8 @@ home:
title: "rfaR — Reservoir Frequency Analysis"
description: "Stratified Monte Carlo stage-frequency analysis for dam & levee safety applications"
links:
- - text: USACE Risk Management Center
- href: https://www.rmc.usace.army.mil/Software/RMC-RFA/
+ - text: USACE Risk Management Center
+ href: https://www.rmc.usace.army.mil/Software/RMC-RFA/
navbar:
structure:
left: [intro, reference, articles, news]
@@ -16,57 +16,59 @@ navbar:
articles:
text: Articles
menu:
- - text: Validation
- href: articles/index.html
- - text: Technical Reference
- href: articles/rfaR-Realization-Conceptual.html
+ - text: Validation
+ href: articles/index.html
+ - text: Technical Reference
+ href: articles/rfaR-Realization-Conceptual.html
reference:
-- title: "Execute Reservoir Frequency Analysis"
- desc: "Top-level function that uses primary modules to conduct reservoir-frequency analysis"
- contents:
- - rfa_simulate
-- title: "Primary Reservoir Frequency Analysis Modules"
- desc: "Core functions for reservoir frequency analysis"
- contents:
- - stratified_sampler
- - flow_frequency_sampler
- - flow_frequency_sampler_expected
- - hydrograph_setup
- - scale_hydrograph
- - mod_puls_routing
- - stage_frequency_curve
-- title: "Additional Utilities"
- desc: "Supporting utility functions"
- contents:
- - bootstrap_vfc
- - qp3
- - aep2stage
- - stage2aep
- - interpolate_aep_matrix
- - interpolate_stage_matrix
- - power_function
- - theme_rfar_conceptual
- - pmf_stage_lognormal
- - rejection_sampling_stage
-- title: "Datasets"
- desc: "Example datasets included with rfaR"
- contents:
- - starts_with("jmd_")
- - starts_with("cc_")
- - example_stratified
+ - title: "Execute Reservoir Frequency Analysis"
+ desc: "Top-level function that uses primary modules to conduct reservoir-frequency analysis"
+ contents:
+ - rfa_simulate
+ - title: "Primary Reservoir Frequency Analysis Modules"
+ desc: "Core functions for reservoir frequency analysis"
+ contents:
+ - stratified_sampler
+ - flow_frequency_sampler
+ - flow_frequency_sampler_expected
+ - hydrograph_setup
+ - scale_hydrograph
+ - mod_puls_routing
+ - stage_frequency_curve
+ - title: "Additional Utilities"
+ desc: "Supporting utility functions"
+ contents:
+ - bootstrap_vfc
+ - qp3
+ - aep2stage
+ - stage2aep
+ - interpolate_aep_matrix
+ - interpolate_stage_matrix
+ - power_function
+ - theme_rfar_conceptual
+ - pmf_stage_lognormal
+ - rejection_sampling_stage
+ - title: "Datasets"
+ desc: "Example datasets included with rfaR"
+ contents:
+ - starts_with("jmd_")
+ - starts_with("cc_")
+ - example_stratified
+ - ex_rs_stage_loading
+ - hms_scaled_may1955
articles:
-- title: Validation
- navbar: Validation
- contents:
- - validation-hydrograph_sampling
- - validation-hydrograph_scaling
- - validation-mod_puls_routing
- - validation-seasonality_sampling
- - validation-starting_stage
- - validation-stratified_sampler
- - validation-vfc_parameter_sets
-- title: Technical Reference
- navbar: Technical Reference
- contents:
- - rfaR-Realization-Conceptual
- - project-setup
+ - title: Validation
+ navbar: Validation
+ contents:
+ - validation-hydrograph_sampling
+ - validation-hydrograph_scaling
+ - validation-mod_puls_routing
+ - validation-seasonality_sampling
+ - validation-starting_stage
+ - validation-stratified_sampler
+ - validation-vfc_parameter_sets
+ - title: Technical Reference
+ navbar: Technical Reference
+ contents:
+ - rfaR-Realization-Conceptual
+ - project-setup
diff --git a/data-raw/DATASET.R b/data-raw/DATASET.R
index 5803422..01a57b1 100644
--- a/data-raw/DATASET.R
+++ b/data-raw/DATASET.R
@@ -9,7 +9,9 @@ cc_inflowhydro <- read.csv("data-raw/cherry_cricket/cherry_cricket_inflow.csv")
cc_init_elev <- 5565
# Mod-Puls Routing Results from HMS - starting elev = 5565
-cc_hms_results <- read.csv("data-raw/cherry_cricket/cherry_cricket_hms_results.csv")
+cc_hms_results <- read.csv(
+ "data-raw/cherry_cricket/cherry_cricket_hms_results.csv"
+)
# Save to package
usethis::use_data(cc_resmodel, overwrite = TRUE)
@@ -27,14 +29,18 @@ jmd_por_inflow <- read.csv("data-raw/JMD/discharge_gage/jmd_por_inflow.csv")
usethis::use_data(jmd_por_inflow, overwrite = TRUE)
# JMD - EMPIRICAL FREQUENCY ====================================================
-jmd_empirical_stage_wy1980_pt <- read.csv("data-raw/JMD/empirical_freq/empirical_stage_wy1980-2024_PT.csv")
+jmd_empirical_stage_wy1980_pt <- read.csv(
+ "data-raw/JMD/empirical_freq/empirical_stage_wy1980-2024_PT.csv"
+)
usethis::use_data(jmd_empirical_stage_wy1980_pt, overwrite = TRUE)
# JMD - HYDROGRAPHS ============================================================
jmd_hydro_apr1999 <- read.csv("data-raw/JMD/hydrographs/April_1999.csv")
jmd_hydro_jun1921 <- read.csv("data-raw/JMD/hydrographs/June_1921.csv")
jmd_hydro_jun1965 <- read.csv("data-raw/JMD/hydrographs/June_1965_HMS.csv")
-jmd_hydro_jun1965_15min <- read.csv("data-raw/JMD/hydrographs/June_1965_15min.csv")
+jmd_hydro_jun1965_15min <- read.csv(
+ "data-raw/JMD/hydrographs/June_1965_15min.csv"
+)
jmd_hydro_may1955 <- read.csv("data-raw/JMD/hydrographs/May_1955.csv")
jmd_hydro_pmf <- read.csv("data-raw/JMD/hydrographs/PMF.csv")
jmd_hydro_sdf <- read.csv("data-raw/JMD/hydrographs/SDF.csv")
@@ -52,11 +58,15 @@ jmd_seasonality <- read.csv("data-raw/JMD/seasonality/seasonality_full_por.csv")
usethis::use_data(jmd_seasonality, overwrite = TRUE)
# JMD - STAGE DURATION =========================================================
-jmd_stage_duration <- read.csv("data-raw/JMD/stage_duration/stage_duration_monthly_1980-2024.csv")
+jmd_stage_duration <- read.csv(
+ "data-raw/JMD/stage_duration/stage_duration_monthly_1980-2024.csv"
+)
usethis::use_data(jmd_stage_duration, overwrite = TRUE)
# JOHN MARTIN DAM - STAGE GAGE =================================================
-jmd_wy1980_stage <- read.csv("data-raw/JMD/stage_gage/jmd_wy1980-2024_stage.csv")
+jmd_wy1980_stage <- read.csv(
+ "data-raw/JMD/stage_gage/jmd_wy1980-2024_stage.csv"
+)
usethis::use_data(jmd_wy1980_stage, overwrite = TRUE)
# JMD - VOLUME FREQUENCY CURVE =================================================
@@ -81,13 +91,23 @@ jmd_rfa_full <- read.csv("data-raw/JMD/rfa_results/jmd_rfa_full.csv")
usethis::use_data(jmd_rfa_full, overwrite = TRUE)
# JMD - RFA EXPECTED TABULAR RESULTS ===========================================
-jmd_rfa_expected_tabular <- read.csv("data-raw/JMD/rfa_results/jmd_rfa_expected_tabular_result.csv")
+jmd_rfa_expected_tabular <- read.csv(
+ "data-raw/JMD/rfa_results/jmd_rfa_expected_tabular_result.csv"
+)
usethis::use_data(jmd_rfa_expected_tabular, overwrite = TRUE)
# STRATIFIED SAMPLING EXAMPLE BINS =============================================
-example_stratified <- read.csv("data-raw/stratified_sampling/stratified_bins_example.csv")
+example_stratified <- read.csv(
+ "data-raw/stratified_sampling/stratified_bins_example.csv"
+)
usethis::use_data(example_stratified, overwrite = TRUE)
# MOD-PULS VALIDATION - JMD MAY 1955 ===========================================
-hms_scaled_may1955 <- read.csv("data-raw/JMD/hms_routing/ModPuls_Validation_May1955.csv")
+hms_scaled_may1955 <- read.csv(
+ "data-raw/JMD/hms_routing/ModPuls_Validation_May1955.csv"
+)
usethis::use_data(hms_scaled_may1955, overwrite = TRUE)
+
+# REJECTION SAMPLING EXAMPLE DATA ==============================================
+ex_rs_stage_loading <- read.csv("data-raw/rs/ES_15day.csv")
+usethis::use_data(ex_rs_stage_loading, overwrite = TRUE)
diff --git a/data-raw/rs/ES_15day.csv b/data-raw/rs/ES_15day.csv
new file mode 100644
index 0000000..34b50a9
--- /dev/null
+++ b/data-raw/rs/ES_15day.csv
@@ -0,0 +1,90 @@
+aep,stage
+9.80E-01,1570.38
+9.70E-01,1573.56
+9.60E-01,1575.17
+9.50E-01,1576.35
+9.40E-01,1577.64
+9.30E-01,1579.00
+9.20E-01,1583.62
+9.10E-01,1588.97
+9.00E-01,1591.42
+8.00E-01,1598.24
+7.00E-01,1602.63
+6.00E-01,1607.04
+5.00E-01,1609.45
+4.00E-01,1610.99
+3.00E-01,1612.54
+2.00E-01,1614.56
+1.00E-01,1617.67
+9.00E-02,1618.05
+8.00E-02,1618.43
+7.00E-02,1618.81
+6.00E-02,1619.20
+5.00E-02,1619.57
+4.00E-02,1619.94
+3.00E-02,1620.31
+2.00E-02,1620.75
+9.99E-03,1621.42
+8.99E-03,1621.49
+7.99E-03,1621.56
+6.99E-03,1621.62
+5.99E-03,1621.69
+4.99E-03,1621.76
+4.00E-03,1621.83
+3.00E-03,1622.74
+2.00E-03,1624.44
+9.99E-04,1628.36
+8.99E-04,1629.12
+7.99E-04,1630.01
+6.99E-04,1631.00
+6.00E-04,1632.19
+5.00E-04,1633.65
+4.00E-04,1635.58
+3.00E-04,1638.20
+2.00E-04,1642.47
+1.00E-04,1650.02
+9.00E-05,1651.27
+8.00E-05,1652.62
+7.00E-05,1654.38
+6.00E-05,1656.18
+5.00E-05,1657.71
+4.00E-05,1660.58
+3.00E-05,1663.91
+2.00E-05,1667.78
+1.00E-05,1672.69
+9.01E-06,1673.40
+8.01E-06,1674.32
+7.01E-06,1675.45
+6.01E-06,1676.68
+5.01E-06,1678.01
+4.01E-06,1679.45
+3.00E-06,1681.62
+2.00E-06,1683.14
+1.00E-06,1683.14
+9.02E-07,1683.14
+8.02E-07,1683.14
+7.02E-07,1683.14
+6.01E-07,1683.14
+5.01E-07,1683.14
+4.01E-07,1683.14
+3.01E-07,1683.14
+2.01E-07,1683.14
+1.00E-07,1683.14
+9.03E-08,1683.14
+8.03E-08,1683.14
+7.02E-08,1683.14
+6.02E-08,1683.14
+5.02E-08,1683.14
+4.02E-08,1683.14
+3.01E-08,1683.14
+2.01E-08,1683.14
+1.00E-08,1683.14
+9.04E-09,1683.14
+8.04E-09,1683.14
+7.03E-09,1683.14
+6.03E-09,1683.14
+5.02E-09,1683.14
+4.02E-09,1683.14
+3.02E-09,1683.14
+2.01E-09,1683.14
+1.01E-09,1683.14
diff --git a/data/cc_hms_results.rda b/data/cc_hms_results.rda
index 12efea1..827a2f3 100644
Binary files a/data/cc_hms_results.rda and b/data/cc_hms_results.rda differ
diff --git a/data/cc_inflowhydro.rda b/data/cc_inflowhydro.rda
index 6ea272c..de45eb1 100644
Binary files a/data/cc_inflowhydro.rda and b/data/cc_inflowhydro.rda differ
diff --git a/data/cc_init_elev.rda b/data/cc_init_elev.rda
index 2182be4..7087d21 100644
Binary files a/data/cc_init_elev.rda and b/data/cc_init_elev.rda differ
diff --git a/data/cc_resmodel.rda b/data/cc_resmodel.rda
index b540309..cd3b456 100644
Binary files a/data/cc_resmodel.rda and b/data/cc_resmodel.rda differ
diff --git a/data/ex_rs_stage_loading.rda b/data/ex_rs_stage_loading.rda
new file mode 100644
index 0000000..6cef7e5
Binary files /dev/null and b/data/ex_rs_stage_loading.rda differ
diff --git a/data/example_stratified.rda b/data/example_stratified.rda
index a5fd24c..9c5b600 100644
Binary files a/data/example_stratified.rda and b/data/example_stratified.rda differ
diff --git a/data/hms_scaled_may1955.rda b/data/hms_scaled_may1955.rda
new file mode 100644
index 0000000..0672d1c
Binary files /dev/null and b/data/hms_scaled_may1955.rda differ
diff --git a/data/jmd_bf_parameter_sets.rda b/data/jmd_bf_parameter_sets.rda
index 6dd9cbe..0633169 100644
Binary files a/data/jmd_bf_parameter_sets.rda and b/data/jmd_bf_parameter_sets.rda differ
diff --git a/data/jmd_empirical_stage_wy1980_pt.rda b/data/jmd_empirical_stage_wy1980_pt.rda
index cac7f07..63f7f42 100644
Binary files a/data/jmd_empirical_stage_wy1980_pt.rda and b/data/jmd_empirical_stage_wy1980_pt.rda differ
diff --git a/data/jmd_hydro_apr1999.rda b/data/jmd_hydro_apr1999.rda
index ee545a0..85a1cfe 100644
Binary files a/data/jmd_hydro_apr1999.rda and b/data/jmd_hydro_apr1999.rda differ
diff --git a/data/jmd_hydro_jun1921.rda b/data/jmd_hydro_jun1921.rda
index 05dc58f..93f1824 100644
Binary files a/data/jmd_hydro_jun1921.rda and b/data/jmd_hydro_jun1921.rda differ
diff --git a/data/jmd_hydro_jun1965.rda b/data/jmd_hydro_jun1965.rda
index 32c1888..41f429d 100644
Binary files a/data/jmd_hydro_jun1965.rda and b/data/jmd_hydro_jun1965.rda differ
diff --git a/data/jmd_hydro_jun1965_15min.rda b/data/jmd_hydro_jun1965_15min.rda
index b501895..11880a5 100644
Binary files a/data/jmd_hydro_jun1965_15min.rda and b/data/jmd_hydro_jun1965_15min.rda differ
diff --git a/data/jmd_hydro_may1955.rda b/data/jmd_hydro_may1955.rda
index b3aa06b..6104eb3 100644
Binary files a/data/jmd_hydro_may1955.rda and b/data/jmd_hydro_may1955.rda differ
diff --git a/data/jmd_hydro_pmf.rda b/data/jmd_hydro_pmf.rda
index 35d7930..19b7a62 100644
Binary files a/data/jmd_hydro_pmf.rda and b/data/jmd_hydro_pmf.rda differ
diff --git a/data/jmd_hydro_sdf.rda b/data/jmd_hydro_sdf.rda
index b735d80..02d2ed4 100644
Binary files a/data/jmd_hydro_sdf.rda and b/data/jmd_hydro_sdf.rda differ
diff --git a/data/jmd_por_inflow.rda b/data/jmd_por_inflow.rda
index c0970bb..2f81d7c 100644
Binary files a/data/jmd_por_inflow.rda and b/data/jmd_por_inflow.rda differ
diff --git a/data/jmd_resmodel.rda b/data/jmd_resmodel.rda
index ae5cbfe..e11e551 100644
Binary files a/data/jmd_resmodel.rda and b/data/jmd_resmodel.rda differ
diff --git a/data/jmd_rfa_expected.rda b/data/jmd_rfa_expected.rda
index 668646c..54d9e77 100644
Binary files a/data/jmd_rfa_expected.rda and b/data/jmd_rfa_expected.rda differ
diff --git a/data/jmd_rfa_expected_tabular.rda b/data/jmd_rfa_expected_tabular.rda
new file mode 100644
index 0000000..5a07574
Binary files /dev/null and b/data/jmd_rfa_expected_tabular.rda differ
diff --git a/data/jmd_rfa_full.rda b/data/jmd_rfa_full.rda
index be33d11..fa9158d 100644
Binary files a/data/jmd_rfa_full.rda and b/data/jmd_rfa_full.rda differ
diff --git a/data/jmd_rfa_median.rda b/data/jmd_rfa_median.rda
new file mode 100644
index 0000000..74f8dd7
Binary files /dev/null and b/data/jmd_rfa_median.rda differ
diff --git a/data/jmd_seasonality.rda b/data/jmd_seasonality.rda
index 0a00fbd..8f14985 100644
Binary files a/data/jmd_seasonality.rda and b/data/jmd_seasonality.rda differ
diff --git a/data/jmd_stage_duration.rda b/data/jmd_stage_duration.rda
index a8f8fde..ab6d382 100644
Binary files a/data/jmd_stage_duration.rda and b/data/jmd_stage_duration.rda differ
diff --git a/data/jmd_vfc.rda b/data/jmd_vfc.rda
index 77b2056..1963677 100644
Binary files a/data/jmd_vfc.rda and b/data/jmd_vfc.rda differ
diff --git a/data/jmd_vfc_parameters.rda b/data/jmd_vfc_parameters.rda
index 4a3fb82..2c25b8a 100644
Binary files a/data/jmd_vfc_parameters.rda and b/data/jmd_vfc_parameters.rda differ
diff --git a/data/jmd_wy1980_stage.rda b/data/jmd_wy1980_stage.rda
index ca769ba..247dfa6 100644
Binary files a/data/jmd_wy1980_stage.rda and b/data/jmd_wy1980_stage.rda differ
diff --git a/docs/404.html b/docs/404.html
deleted file mode 100644
index 2b720f6..0000000
--- a/docs/404.html
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
-
-
-
-Page not found (404) • rfaR
-
-
-
-
-
-
-
- Skip to contents
-
-
-
-
-
-
-Content not found. Please use links in the navbar.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/404.md b/docs/404.md
deleted file mode 100644
index 5107f89..0000000
--- a/docs/404.md
+++ /dev/null
@@ -1,3 +0,0 @@
-Content not found. Please use links in the navbar.
-
-# Page not found (404)
diff --git a/docs/CONTRIBUTING.html b/docs/CONTRIBUTING.html
index 58180ec..7f31b33 100644
--- a/docs/CONTRIBUTING.html
+++ b/docs/CONTRIBUTING.html
@@ -1,9 +1,9 @@
-Contributing to rfaR • rfaR
+Contributing to rfaR • rfaR
Skip to contents
-