Introduction

ACM0012 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.

Applicability Checks

Simulated Dataset

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

Equation Walkthrough

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

Monitoring Period Aggregation

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

Meta-Function

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>

Function Reference

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 Overview

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.