cdmAmsIIIe-methodology.RmdAMS-III.E covers project activities that avoid methane production
from the decay of biomass by subjecting the material to combustion,
gasification, or mechanical-thermal treatment. This vignette
demonstrates how cdmAmsIIIe operationalises the methodology
with tidyverse data structures and composable helpers.
library(cdmAmsIIIe)
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_iiie_dataset(n_plants = 2, n_periods = 2, seed = 2024)
str(simulated, max.level = 1)
#> List of 4
#> $ baseline : tibble [4 × 6] (S3: tbl_df/tbl/data.frame)
#> $ project : tibble [4 × 8] (S3: tbl_df/tbl/data.frame)
#> $ leakage : tibble [4 × 7] (S3: tbl_df/tbl/data.frame)
#> $ applicability: tibble [2 × 8] (S3: tbl_df/tbl/data.frame)
feedstock <- check_applicability_feedstock_characteristics_iiie(simulated$applicability, group_cols = "plant_id")
control <- check_applicability_biomass_control_iiie(simulated$applicability, group_cols = "plant_id")
monitoring <- check_applicability_monitoring_practices_iiie(simulated$applicability, group_cols = "plant_id")
applicability <- feedstock %>%
left_join(control, by = "plant_id") %>%
left_join(monitoring, by = "plant_id")
applicability
#> # A tibble: 2 × 4
#> plant_id feedstock_applicable biomass_control_applica…¹ monitoring_practices…²
#> <chr> <lgl> <lgl> <lgl>
#> 1 PL1 TRUE TRUE TRUE
#> 2 PL2 TRUE TRUE TRUE
#> # ℹ abbreviated names: ¹biomass_control_applicable,
#> # ²monitoring_practices_applicable
baseline <- calculate_baseline_methane_emissions_iiie(simulated$baseline, group_cols = "plant_id")
project <- calculate_project_emissions_iiie(simulated$project, group_cols = "plant_id")
leakage <- calculate_leakage_emissions_iiie(simulated$leakage, group_cols = "plant_id")
dplyr::bind_cols(baseline, project[-1], leakage[-1])
#> # A tibble: 2 × 4
#> plant_id baseline_emissions_tc…¹ project_emissions_tc…² leakage_emissions_tc…³
#> <chr> <dbl> <dbl> <dbl>
#> 1 PL1 1683. 208. 116.
#> 2 PL2 2027. 326. 66.1
#> # ℹ abbreviated names: ¹baseline_emissions_tco2e, ²project_emissions_tco2e,
#> # ³leakage_emissions_tco2e
reductions <- estimate_emission_reductions_ams_iiie(
baseline_data = simulated$baseline,
project_data = simulated$project,
leakage_data = simulated$leakage,
group_cols = "plant_id"
)
reductions
#> # A tibble: 2 × 5
#> plant_id baseline_emissions_tc…¹ project_emissions_tc…² leakage_emissions_tc…³
#> <chr> <dbl> <dbl> <dbl>
#> 1 PL1 1683. 208. 116.
#> 2 PL2 2027. 326. 66.1
#> # ℹ abbreviated names: ¹baseline_emissions_tco2e, ²project_emissions_tco2e,
#> # ³leakage_emissions_tco2e
#> # ℹ 1 more variable: net_emission_reductions_tco2e <dbl>
period_results <- simulated$baseline %>%
mutate(
baseline_emissions_tco2e = calculate_baseline_methane_emissions_iiie(
data = ., group_cols = NULL
)$baseline_emissions_tco2e / n(),
project_emissions_tco2e = calculate_project_emissions_iiie(
data = simulated$project, group_cols = NULL
)$project_emissions_tco2e / n(),
leakage_emissions_tco2e = calculate_leakage_emissions_iiie(
data = simulated$leakage, group_cols = NULL
)$leakage_emissions_tco2e / n()
)
aggregate_monitoring_periods_iiie(period_results, group_cols = "plant_id", monitoring_col = "period")
#> # A tibble: 2 × 5
#> plant_id monitoring_periods baseline_emissions_tco2e project_emissions_tco2e
#> <chr> <int> <dbl> <dbl>
#> 1 PL1 2 1855. 267.
#> 2 PL2 2 1855. 267.
#> # ℹ 1 more variable: leakage_emissions_tco2e <dbl>The helpers and workflow wrapper simplify reproducing AMS-III.E calculations with tidy inputs while providing traceable applicability evidence.