Introduction
This vignette demonstrates how cdmAcm0008
operationalises the CDM large-scale methodology ACM0008
Consolidated methodology for coal mine methane projects. The
package translates the methodology’s numbered equations into
tidyverse-friendly helpers, enabling analysts to reproduce baseline,
project, leakage, and net emission reduction estimates for methane
capture, utilisation, and oxidation systems.
Applicability Checks
The package exposes helpers to test key applicability conditions.
Simulated Dataset
We provide a simulation utility built with tidyverse conventions to
generate representative monitoring data.
monitoring <- simulate_acm0008_dataset(periods = 2, observations_per_period = 8, seed = 456)
knitr::kable(head(monitoring))
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| P01 |
2025 |
1 |
13 |
1 |
480.7104 |
90 |
0.4290182 |
0.9871161 |
4.215238 |
0.7382984 |
| P01 |
2025 |
1 |
5 |
2 |
502.1766 |
90 |
0.4114541 |
0.9551299 |
3.469615 |
0.6849305 |
| P01 |
2025 |
1 |
3 |
3 |
557.9854 |
90 |
0.4436208 |
0.9655561 |
3.643902 |
0.6034589 |
| P01 |
2025 |
1 |
6 |
4 |
533.7801 |
90 |
0.4036098 |
0.9863811 |
4.624942 |
0.6232039 |
| P01 |
2025 |
1 |
21 |
5 |
575.4044 |
90 |
0.3297266 |
0.9892088 |
4.478498 |
0.6307406 |
| P01 |
2025 |
1 |
28 |
6 |
551.5279 |
90 |
0.3529537 |
0.9842680 |
5.180571 |
0.6494586 |
Equation Walkthrough
Equation-level helpers align with the methodology’s numbering.
period_one <- dplyr::filter(monitoring, period == "P01")
volume <- calculate_methane_volume_acm0008(period_one$flow_rate_m3_per_h, period_one$operating_hours)
baseline <- calculate_baseline_emissions_acm0008(volume, period_one$methane_fraction)
project <- calculate_project_emissions_acm0008(volume, period_one$methane_fraction, period_one$oxidation_efficiency)
leakage <- calculate_leakage_emissions_acm0008(period_one$electricity_use_mwh, period_one$grid_emission_factor_t_per_mwh)
net <- calculate_net_emission_reductions_acm0008(baseline, project, leakage)
tibble::tibble(
observation = period_one$observation,
baseline,
project,
leakage,
net
)
#> # A tibble: 8 × 5
#> observation baseline project leakage net
#> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 1 372. 4.79 3.11 364.
#> 2 2 373. 16.7 2.38 354.
#> 3 3 447. 15.4 2.20 429.
#> 4 4 389. 5.29 2.88 381.
#> 5 5 342. 3.69 2.82 336.
#> 6 6 351. 5.53 3.36 342.
#> 7 7 378. 5.43 2.65 370.
#> 8 8 372. 16.0 2.95 353.
Monitoring Period Aggregation
period_summary <- aggregate_monitoring_periods_acm0008(monitoring)
knitr::kable(period_summary)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| P01 |
532.9157 |
720 |
0.3956607 |
0.9762876 |
34.13802 |
0.6554359 |
383699.3 |
3024.370 |
72.85274 |
22.36003 |
2929.157 |
| P02 |
506.1975 |
720 |
0.4079785 |
0.9512821 |
38.43943 |
0.6635422 |
364462.2 |
2987.023 |
150.57966 |
25.51303 |
2810.930 |
totals <- estimate_emission_reductions_acm0008(monitoring)
knitr::kable(totals)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| 748161.5 |
6011.393 |
223.4324 |
47.87306 |
5740.088 |
Function Reference
reference <- tibble::tribble(
~Function, ~Signature, ~Purpose,
"check_applicability_mine_type", "(mine_type, requires_drainage, allowed_types)", "Validate coal mine classification and drainage availability.",
"calculate_baseline_emissions_acm0008", "(recovered_volume_m3, methane_fraction, methane_density_t_per_m3, gwp_ch4)", "Translate Equation 2 for baseline emissions.",
"estimate_emission_reductions_acm0008", "(monitoring_data)", "Summarise monitoring data into total emission reductions."
)
knitr::kable(reference)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| check_applicability_mine_type |
(mine_type, requires_drainage, allowed_types) |
Validate coal mine classification and drainage
availability. |
| calculate_baseline_emissions_acm0008 |
(recovered_volume_m3, methane_fraction,
methane_density_t_per_m3, gwp_ch4) |
Translate Equation 2 for baseline emissions. |
| estimate_emission_reductions_acm0008 |
(monitoring_data) |
Summarise monitoring data into total emission
reductions. |
Workflow Overview
workflow <- tibble::tribble(
~Step, ~Description,
"1", "Confirm applicability via mine type, methane content, and utilisation pathway checks.",
"2", "Collect monitoring data on methane flows, composition, oxidation efficiency, and electricity use.",
"3", "Apply equation helpers to compute baseline, project, and leakage emissions.",
"4", "Aggregate emissions by monitoring period and estimate total reductions."
)
knitr::kable(workflow)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
| 1 |
Confirm applicability via mine type, methane content,
and utilisation pathway checks. |
| 2 |
Collect monitoring data on methane flows, composition,
oxidation efficiency, and electricity use. |
| 3 |
Apply equation helpers to compute baseline, project,
and leakage emissions. |
| 4 |
Aggregate emissions by monitoring period and estimate
total reductions. |