cdmAmsIIIg-methodology.RmdAMS-III.G covers project activities that recover and destroy landfill
methane. This vignette demonstrates how cdmAmsIIIg
operationalises the methodology with tidyverse data structures and
composable helpers.
library(cdmAmsIIIg)
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_iiig_dataset(n_sites = 2, n_periods = 2, seed = 2025)
str(simulated, max.level = 1)
#> List of 4
#> $ baseline : tibble [4 × 7] (S3: tbl_df/tbl/data.frame)
#> $ project : tibble [4 × 12] (S3: tbl_df/tbl/data.frame)
#> $ leakage : tibble [4 × 9] (S3: tbl_df/tbl/data.frame)
#> $ applicability: tibble [2 × 10] (S3: tbl_df/tbl/data.frame)
landfill <- check_applicability_landfill_characteristics_iiig(simulated$applicability, group_cols = "site_id")
gas <- check_applicability_gas_management_iiig(simulated$applicability, group_cols = "site_id")
monitoring <- check_applicability_monitoring_framework_iiig(simulated$applicability, group_cols = "site_id")
applicability <- landfill %>%
left_join(gas, by = "site_id") %>%
left_join(monitoring, by = "site_id")
applicability
#> # A tibble: 2 × 4
#> site_id landfill_applicable gas_management_applicable monitoring_applicable
#> <chr> <lgl> <lgl> <lgl>
#> 1 LF1 TRUE FALSE TRUE
#> 2 LF2 TRUE FALSE TRUE
baseline <- calculate_baseline_methane_emissions_iiig(
simulated$baseline,
group_cols = "site_id",
days_col = "days_in_period"
)
project <- calculate_project_emissions_iiig(
simulated$project,
group_cols = "site_id",
days_col = "days_in_period"
)
leakage <- calculate_leakage_emissions_iiig(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 LF1 1056018. 332216. 155.
#> 2 LF2 957942. 372444. 180.
#> # ℹ abbreviated names: ¹project_emissions_tco2e, ²leakage_emissions_tco2e
reductions <- estimate_emission_reductions_ams_iiig(
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 LF1 1056018. 332216. 155.
#> 2 LF2 957942. 372444. 180.
#> # ℹ abbreviated names: ¹project_emissions_tco2e, ²leakage_emissions_tco2e
#> # ℹ 1 more variable: net_emission_reductions_tco2e <dbl>
baseline_period <- calculate_baseline_methane_emissions_iiig(
simulated$baseline,
group_cols = c("site_id", "period"),
days_col = "days_in_period"
)
project_period <- calculate_project_emissions_iiig(
simulated$project,
group_cols = c("site_id", "period"),
days_col = "days_in_period"
)
leakage_period <- calculate_leakage_emissions_iiig(
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_iiig(
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 LF1 2 1056018. 332216.
#> 2 LF2 2 957942. 372444.
#> # ℹ 1 more variable: leakage_emissions_tco2e <dbl>The helpers and workflow wrapper simplify reproducing AMS-III.G calculations with tidy inputs while providing traceable applicability evidence.