cdmAcm0012-methodology.RmdACM0012 covers projects that recover waste heat, waste gas, or waste
pressure from industrial processes to generate electricity and useful
thermal energy. This vignette walks through the core workflow
implemented in cdmAcm0012 using the package’s simulation
helpers.
check_waste_energy_fraction_acm0012(0.82)
#> [1] TRUE
check_baseline_continuation_acm0012(7800, 7500)
#> [1] TRUE
check_metering_uncertainty_acm0012(0.012)
#> [1] TRUE
set.seed(321)
simulated <- simulate_acm0012_dataset(4, observations_per_period = 6)
knitr::kable(head(simulated))
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")| period | electricity_export_mwh | baseline_grid_ef_t_per_mwh | thermal_export_gj | baseline_thermal_ef_t_per_gj | flare_gas_displacement_emissions | electricity_import_mwh | project_grid_ef_t_per_mwh | auxiliary_fuel_tj | auxiliary_ef_t_per_tj | methane_leakage_nm3 | methane_density_t_per_nm3 | gwp_ch4 | leakage_energy_mwh | leakage_ef_t_per_mwh | waste_energy_fraction | measurement_uncertainty | baseline_operating_hours | project_operating_hours |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Period 01 | 105.45884 | 0.7896794 | 168.4104 | 0.0546420 | 1.7527450 | 7.656197 | 0.7732458 | 0.0700051 | 54.16653 | 50.09604 | 0.000716 | 28 | 5.670198 | 0.0767485 | 0.9198984 | 0.0075736 | 7708.055 | 7558.812 |
| Period 01 | 76.45554 | 0.8238000 | 115.3928 | 0.0564798 | 1.7793326 | 5.535790 | 0.7684096 | 0.0742873 | 56.31428 | 57.09237 | 0.000716 | 28 | 5.066726 | 0.0800608 | 0.8533768 | 0.0144827 | 7829.714 | 7721.864 |
| Period 01 | 81.66418 | 0.7267628 | 117.2586 | 0.0569776 | 1.5071978 | 5.646323 | 0.6680869 | 0.0698034 | 56.37672 | 53.83208 | 0.000716 | 28 | 3.865821 | 0.0928680 | 0.9192459 | 0.0053283 | 7695.195 | 7644.076 |
| Period 01 | 83.56421 | 0.8367006 | 117.7727 | 0.0542954 | 1.2016310 | 5.259838 | 0.8012129 | 0.0771657 | 56.29246 | 40.40041 | 0.000716 | 28 | 3.987114 | 0.0696061 | 0.7109739 | 0.0144146 | 7813.742 | 7802.383 |
| Period 01 | 83.51247 | 0.7751869 | 133.7665 | 0.0573604 | 0.9786038 | 7.208625 | 0.8153837 | 0.0549745 | 54.44644 | 45.63477 | 0.000716 | 28 | 6.115218 | 0.0838580 | 0.7483148 | 0.0056194 | 7558.142 | 7677.093 |
| Period 01 | 88.21821 | 0.8010126 | 148.0213 | 0.0606241 | 1.1325188 | 7.604772 | 0.7231187 | 0.0661267 | 56.89477 | 49.13836 | 0.000716 | 28 | 4.555797 | 0.0992758 | 0.7162159 | 0.0192334 | 7737.399 | 7838.145 |
baseline_electricity <- calculate_baseline_electricity_emissions_acm0012(
simulated$electricity_export_mwh,
simulated$baseline_grid_ef_t_per_mwh
)
baseline_thermal <- calculate_baseline_thermal_emissions_acm0012(
simulated$thermal_export_gj,
simulated$baseline_thermal_ef_t_per_gj
)
baseline_total <- calculate_baseline_emissions_acm0012(
baseline_electricity,
baseline_thermal,
simulated$flare_gas_displacement_emissions
)
project_electricity <- calculate_project_electricity_emissions_acm0012(
simulated$electricity_import_mwh,
simulated$project_grid_ef_t_per_mwh
)
auxiliary <- calculate_auxiliary_fuel_emissions_acm0012(
simulated$auxiliary_fuel_tj,
simulated$auxiliary_ef_t_per_tj
)
methane <- calculate_methane_leakage_emissions_acm0012(
simulated$methane_leakage_nm3,
simulated$methane_density_t_per_nm3,
simulated$gwp_ch4
)
project_total <- calculate_project_emissions_acm0012(project_electricity, auxiliary, methane)
leakage <- calculate_leakage_emissions_acm0012(
simulated$leakage_energy_mwh,
simulated$leakage_ef_t_per_mwh
)
reductions <- calculate_emission_reductions_acm0012(baseline_total, project_total, leakage)
knitr::kable(
tibble(
period = simulated$period,
baseline_total,
project_total,
leakage,
reductions
)
)
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")| period | baseline_total | project_total | leakage | reductions |
|---|---|---|---|---|
| Period 01 | 94.23370 | 10.716381 | 0.4351794 | 83.08214 |
| Period 01 | 71.28076 | 9.581780 | 0.4056461 | 61.29334 |
| Period 01 | 67.53880 | 8.786748 | 0.3590112 | 58.39304 |
| Period 01 | 77.51438 | 9.368044 | 0.2775276 | 67.86880 |
| Period 01 | 73.38928 | 9.785850 | 0.5128099 | 63.09062 |
| Period 01 | 80.77007 | 10.246541 | 0.4522802 | 70.07125 |
| Period 02 | 80.13323 | 10.626114 | 0.5041803 | 69.00294 |
| Period 02 | 81.62793 | 9.330416 | 0.3034332 | 71.99408 |
| Period 02 | 84.03027 | 10.070033 | 0.2112488 | 73.74899 |
| Period 02 | 78.06600 | 10.376202 | 0.3929806 | 67.29682 |
| Period 02 | 84.68817 | 11.426928 | 0.3661462 | 72.89509 |
| Period 02 | 94.15371 | 12.388530 | 0.5004237 | 81.26476 |
| Period 03 | 75.84463 | 11.619440 | 0.3333761 | 63.89181 |
| Period 03 | 109.67567 | 11.433816 | 0.2369604 | 98.00489 |
| Period 03 | 66.93831 | 12.903077 | 0.3864608 | 53.64878 |
| Period 03 | 69.56747 | 11.542042 | 0.2475798 | 57.77785 |
| Period 03 | 79.48787 | 8.676737 | 0.4236649 | 70.38747 |
| Period 03 | 80.02933 | 9.973588 | 0.3175392 | 69.73820 |
| Period 04 | 84.81178 | 9.458643 | 0.4196921 | 74.93344 |
| Period 04 | 83.96631 | 10.040531 | 0.4213461 | 73.50443 |
| Period 04 | 92.32329 | 9.345562 | 0.5327983 | 82.44493 |
| Period 04 | 76.86294 | 10.630862 | 0.2750574 | 65.95702 |
| Period 04 | 87.49674 | 8.733463 | 0.3571990 | 78.40608 |
| Period 04 | 71.67374 | 9.935438 | 0.3588321 | 61.37947 |
period_summary <- aggregate_monitoring_periods(simulated)
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")| period | electricity_export_mwh | baseline_grid_ef_t_per_mwh | thermal_export_gj | baseline_thermal_ef_t_per_gj | flare_gas_displacement_emissions | electricity_import_mwh | project_grid_ef_t_per_mwh | auxiliary_fuel_tj | auxiliary_ef_t_per_tj | methane_leakage_nm3 | methane_density_t_per_nm3 | gwp_ch4 | leakage_energy_mwh | leakage_ef_t_per_mwh | baseline_electricity_emissions | baseline_thermal_emissions | baseline_emissions | project_electricity_emissions | auxiliary_fuel_emissions | methane_leakage_emissions | project_emissions | leakage_emissions | emission_reductions |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Period 01 | 518.8734 | 0.7921904 | 800.6223 | 0.0567299 | 8.352029 | 38.91155 | 0.7582429 | 0.4123628 | 55.74853 | 296.1940 | 0.000716 | 28 | 29.26087 | 0.0837362 | 410.9331 | 45.44183 | 464.7270 | 29.53731 | 23.00994 | 5.938098 | 58.48534 | 2.442454 | 403.7992 |
| Period 02 | 540.9536 | 0.8247355 | 865.9535 | 0.0548149 | 9.933872 | 42.39243 | 0.7492832 | 0.4750770 | 56.25692 | 282.1662 | 0.000716 | 28 | 29.56051 | 0.0763111 | 445.3426 | 47.42280 | 502.6993 | 31.72807 | 26.83329 | 5.656867 | 64.21822 | 2.278413 | 436.2027 |
| Period 03 | 528.5985 | 0.8054665 | 851.0410 | 0.0532733 | 8.629572 | 42.56785 | 0.7613098 | 0.4919645 | 55.97021 | 303.1591 | 0.000716 | 28 | 24.56835 | 0.0785636 | 427.5125 | 45.40118 | 481.5433 | 32.45133 | 27.61963 | 6.077733 | 66.14870 | 1.945581 | 413.4490 |
| Period 04 | 531.0028 | 0.8389882 | 780.6335 | 0.0544809 | 9.181484 | 37.70802 | 0.7507120 | 0.4377600 | 56.04471 | 264.0432 | 0.000716 | 28 | 29.61931 | 0.0800724 | 445.1943 | 42.75898 | 497.1348 | 28.30776 | 24.54320 | 5.293538 | 58.14450 | 2.364925 | 436.6254 |
estimate_emission_reductions_acm0012(simulated)
#> # A tibble: 1 × 6
#> total_electricity_export_mwh total_thermal_export_gj total_baseline_emissions
#> <dbl> <dbl> <dbl>
#> 1 2119. 3298. 1946.
#> # ℹ 3 more variables: total_project_emissions <dbl>,
#> # total_leakage_emissions <dbl>, total_emission_reductions <dbl>
reference <- tibble::tribble(
~Function, ~Signature, ~Purpose,
"check_waste_energy_fraction_acm0012", "(waste_energy_fraction, threshold = 0.75)", "Validate waste energy share",
"check_baseline_continuation_acm0012", "(baseline_operating_hours, project_operating_hours)", "Confirm baseline continuity",
"check_metering_uncertainty_acm0012", "(measurement_uncertainty)", "Ensure metering accuracy",
"simulate_acm0012_dataset", "(n_periods = 12, observations_per_period = 30, seed = NULL)", "Generate demonstration monitoring data",
"aggregate_monitoring_periods", "(monitoring_data)", "Summarise monitoring periods",
"estimate_emission_reductions_acm0012", "(monitoring_data)", "Portfolio totals"
)
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")| Function | Signature | Purpose |
|---|---|---|
| check_waste_energy_fraction_acm0012 | (waste_energy_fraction, threshold = 0.75) | Validate waste energy share |
| check_baseline_continuation_acm0012 | (baseline_operating_hours, project_operating_hours) | Confirm baseline continuity |
| check_metering_uncertainty_acm0012 | (measurement_uncertainty) | Ensure metering accuracy |
| simulate_acm0012_dataset | (n_periods = 12, observations_per_period = 30, seed = NULL) | Generate demonstration monitoring data |
| aggregate_monitoring_periods | (monitoring_data) | Summarise monitoring periods |
| estimate_emission_reductions_acm0012 | (monitoring_data) | Portfolio totals |
workflow <- tibble::tribble(
~Step, ~Description,
1, "Validate waste energy fraction, baseline continuation, and metering uncertainty.",
2, "Collect monitoring data on exported energy, auxiliary consumption, and leakage.",
3, "Translate monitoring data into baseline, project, and leakage emissions.",
4, "Aggregate monitoring periods and compute emission reductions.",
5, "Summarise totals for reporting and verification."
)
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")| Step | Description |
|---|---|
| 1 | Validate waste energy fraction, baseline continuation, and metering uncertainty. |
| 2 | Collect monitoring data on exported energy, auxiliary consumption, and leakage. |
| 3 | Translate monitoring data into baseline, project, and leakage emissions. |
| 4 | Aggregate monitoring periods and compute emission reductions. |
| 5 | Summarise totals for reporting and verification. |