cdmAmsIIIh-methodology.RmdAMS-III.H covers project activities that recover and utilise methane
from anaerobic wastewater treatment. This vignette demonstrates how
cdmAmsIIIh operationalises the methodology with tidyverse
data structures and composable helpers.
library(cdmAmsIIIh)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
simulated <- simulate_ams_iiih_dataset(n_sites = 2, n_periods = 2, seed = 2025)
str(simulated, max.level = 1)
#> List of 4
#> $ baseline : tibble [4 × 8] (S3: tbl_df/tbl/data.frame)
#> $ project : tibble [4 × 14] (S3: tbl_df/tbl/data.frame)
#> $ leakage : tibble [4 × 10] (S3: tbl_df/tbl/data.frame)
#> $ applicability: tibble [2 × 14] (S3: tbl_df/tbl/data.frame)
wastewater <- check_applicability_wastewater_characteristics_iiih(simulated$applicability, group_cols = "site_id")
recovery <- check_applicability_recovery_system_iiih(simulated$applicability, group_cols = "site_id")
monitoring <- check_applicability_monitoring_framework_iiih(simulated$applicability, group_cols = "site_id")
applicability <- wastewater %>%
left_join(recovery, by = "site_id") %>%
left_join(monitoring, by = "site_id")
applicability
#> # A tibble: 2 × 4
#> site_id wastewater_applicable recovery_applicable monitoring_applicable
#> <chr> <lgl> <lgl> <lgl>
#> 1 WW1 FALSE FALSE FALSE
#> 2 WW2 TRUE FALSE FALSE
baseline <- calculate_baseline_methane_emissions_iiih(
simulated$baseline,
group_cols = "site_id",
days_col = "days_in_period"
)
project <- calculate_project_emissions_iiih(
simulated$project,
group_cols = "site_id",
days_col = "days_in_period"
)
leakage <- calculate_leakage_emissions_iiih(simulated$leakage, group_cols = "site_id")
dplyr::bind_cols(baseline, project[-1], leakage[-1])
#> # A tibble: 2 × 4
#> site_id baseline_emissions_tco2e project_emissions_tc…¹ leakage_emissions_tc…²
#> <chr> <dbl> <dbl> <dbl>
#> 1 WW1 5121. 1333. 209.
#> 2 WW2 4093. 1246. 302.
#> # ℹ abbreviated names: ¹project_emissions_tco2e, ²leakage_emissions_tco2e
reductions <- estimate_emission_reductions_ams_iiih(
baseline_data = simulated$baseline,
project_data = simulated$project,
leakage_data = simulated$leakage,
group_cols = "site_id",
baseline_args = list(days_col = "days_in_period"),
project_args = list(days_col = "days_in_period")
)
reductions
#> # A tibble: 2 × 5
#> site_id baseline_emissions_tco2e project_emissions_tc…¹ leakage_emissions_tc…²
#> <chr> <dbl> <dbl> <dbl>
#> 1 WW1 5121. 1333. 209.
#> 2 WW2 4093. 1246. 302.
#> # ℹ abbreviated names: ¹project_emissions_tco2e, ²leakage_emissions_tco2e
#> # ℹ 1 more variable: net_emission_reductions_tco2e <dbl>
baseline_period <- calculate_baseline_methane_emissions_iiih(
simulated$baseline,
group_cols = c("site_id", "period"),
days_col = "days_in_period"
)
project_period <- calculate_project_emissions_iiih(
simulated$project,
group_cols = c("site_id", "period"),
days_col = "days_in_period"
)
leakage_period <- calculate_leakage_emissions_iiih(
simulated$leakage,
group_cols = c("site_id", "period")
)
period_results <- baseline_period %>%
left_join(project_period, by = c("site_id", "period")) %>%
left_join(leakage_period, by = c("site_id", "period")) %>%
mutate(monitoring_period = period)
aggregate_monitoring_periods_iiih(
period_results,
group_cols = "site_id",
monitoring_col = "monitoring_period"
)
#> # A tibble: 2 × 5
#> site_id monitoring_periods baseline_emissions_tco2e project_emissions_tco2e
#> <chr> <int> <dbl> <dbl>
#> 1 WW1 2 5121. 1333.
#> 2 WW2 2 4093. 1246.
#> # ℹ 1 more variable: leakage_emissions_tco2e <dbl>The helpers and workflow wrapper simplify reproducing AMS-III.H calculations with tidy inputs while providing traceable applicability evidence.