cdmAmsIIIf-methodology.RmdAMS-III.F covers project activities that avoid methane emissions from
organic waste by implementing controlled aerobic composting. This
vignette demonstrates how cdmAmsIIIf operationalises the
methodology with tidyverse data structures and composable helpers.
library(cdmAmsIIIf)
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_iiif_dataset(n_sites = 2, n_periods = 2, seed = 2024)
str(simulated, max.level = 1)
#> List of 4
#> $ baseline : tibble [4 × 7] (S3: tbl_df/tbl/data.frame)
#> $ project : tibble [4 × 11] (S3: tbl_df/tbl/data.frame)
#> $ leakage : tibble [4 × 9] (S3: tbl_df/tbl/data.frame)
#> $ applicability: tibble [2 × 11] (S3: tbl_df/tbl/data.frame)
feedstock <- check_applicability_feedstock_management_iiif(simulated$applicability, group_cols = "site_id")
practices <- check_applicability_composting_practices_iiif(simulated$applicability, group_cols = "site_id")
monitoring <- check_applicability_monitoring_framework_iiif(simulated$applicability, group_cols = "site_id")
applicability <- feedstock %>%
left_join(practices, by = "site_id") %>%
left_join(monitoring, by = "site_id")
applicability
#> # A tibble: 2 × 4
#> site_id feedstock_applicable composting_practices_app…¹ monitoring_framework…²
#> <chr> <lgl> <lgl> <lgl>
#> 1 ST1 TRUE FALSE TRUE
#> 2 ST2 TRUE FALSE FALSE
#> # ℹ abbreviated names: ¹composting_practices_applicable,
#> # ²monitoring_framework_applicable
baseline <- calculate_baseline_methane_emissions_iiif(
simulated$baseline,
group_cols = "site_id",
oxidation_factor_col = "baseline_oxidation_fraction"
)
project <- calculate_project_emissions_iiif(
simulated$project,
group_cols = "site_id",
compost_oxidation_col = "compost_oxidation_fraction"
)
leakage <- calculate_leakage_emissions_iiif(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 ST1 2145. 346. 9.82
#> 2 ST2 2354. 409. 38.2
#> # ℹ abbreviated names: ¹project_emissions_tco2e, ²leakage_emissions_tco2e
reductions <- estimate_emission_reductions_ams_iiif(
baseline_data = simulated$baseline,
project_data = simulated$project,
leakage_data = simulated$leakage,
group_cols = "site_id",
baseline_args = list(oxidation_factor_col = "baseline_oxidation_fraction"),
project_args = list(compost_oxidation_col = "compost_oxidation_fraction")
)
reductions
#> # A tibble: 2 × 5
#> site_id baseline_emissions_tco2e project_emissions_tc…¹ leakage_emissions_tc…²
#> <chr> <dbl> <dbl> <dbl>
#> 1 ST1 2145. 346. 9.82
#> 2 ST2 2354. 409. 38.2
#> # ℹ abbreviated names: ¹project_emissions_tco2e, ²leakage_emissions_tco2e
#> # ℹ 1 more variable: net_emission_reductions_tco2e <dbl>
baseline_period <- calculate_baseline_methane_emissions_iiif(
simulated$baseline,
group_cols = c("site_id", "period"),
oxidation_factor_col = "baseline_oxidation_fraction"
)
project_period <- calculate_project_emissions_iiif(
simulated$project,
group_cols = c("site_id", "period"),
compost_oxidation_col = "compost_oxidation_fraction"
)
leakage_period <- calculate_leakage_emissions_iiif(
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_iiif(
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 ST1 2 2145. 346.
#> 2 ST2 2 2354. 409.
#> # ℹ 1 more variable: leakage_emissions_tco2e <dbl>The helpers and workflow wrapper simplify reproducing AMS-III.F calculations with tidy inputs while providing traceable applicability evidence.