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 -