Skip to content

Instantly share code, notes, and snippets.

@gautamp8
Created July 24, 2024 15:29
Show Gist options
  • Save gautamp8/fc5fc512183f71094a990c4a5d6b41bf to your computer and use it in GitHub Desktop.
Save gautamp8/fc5fc512183f71094a990c4a5d6b41bf to your computer and use it in GitHub Desktop.

Final Set of Parameters and Schemas

Daily MRV (Monitoring, Reporting, and Verification)

Parameters to be collected daily:

{
  "device_id": "string",
  "timestamp": "datetime",
  "electricity_consumption_mwh": "float",  // Amount of electricity used (MWh)
  "thermal_efficiency": "float",  // Efficiency of the device (fraction)
  "energy_use_for_cooking_tj": "float"  // Energy used for cooking (TJ)
}

Device Registration Schema

Parameters to be collected statically or that are not updated frequently:

{
  "device_id": "string",
  "installation_date": "datetime",
  "device_type": "string",  // Type of device (e.g., electric stove)
  "rated_efficiency": "float",  // Rated efficiency of the device (fraction)
  "baseline_device_type": "string",  // Type of baseline device (e.g., three-stone fire)
  "baseline_fuel_type": "string",  // Type of baseline fuel (e.g., wood)
  "baseline_energy_consumption_mj_per_meal": "float",  // Baseline energy consumption (MJ/meal/person)
  "project_energy_consumption_mj_per_meal": "float"  // Project energy consumption (MJ/meal/person)
}

Additional Monitoring Parameters

Additional parameters collected less frequently:

{
  "baseline_emission_factor": "float",  // Baseline emissions factor (tCO2e/TJ)
  "non_renewability_status": "float",  // Non-renewability status of biomass fuel (fraction)
  "net_calorific_value_baseline_fuel": "float",  // Net calorific value of baseline fuel (TJ/tonne)
  "emission_factor_baseline_fuel": "float",  // Emission factor of baseline fuel (tCO2e/tonne)
  "efficiency_baseline_devices": "float",  // Efficiency of baseline devices (fraction)
  "grid_emission_factor": "float",  // Emissions factor of the electricity system (tCO2e/MWh)
  "transmission_distribution_losses": "float",  // Transmission and distribution losses (fraction)
  "last_updated": "datetime"  // Timestamp of the last update
}

Calculations Using Collected Parameters

Baseline Emissions Calculation

Formula: [ BE_y = \sum \left( EG_{p,d,y} \times \frac{SC_b}{SC_p} \times 0.0036 \times EF_{b,input} \right) ]

Calculation Steps:

  1. Convert electricity consumption to useful energy in TJ: [ EG_{p,d,y} = \text{electricity_consumption_mwh} \times 0.0036 ]
  2. Calculate baseline emissions: [ BE_y = \sum \left( EG_{p,d,y} \times \frac{baseline_energy_consumption_mj_per_meal}{project_energy_consumption_mj_per_meal} \times EF_{b,input} \right) ]

Project Emissions Calculation

Formula: [ PE_y = \sum \left( EG_{p,d,y} \times EF_{el,y} \times (1 + TDL_{j,y}) \right) ]

Calculation Steps:

  1. Convert electricity consumption to useful energy in TJ: [ EG_{p,d,y} = \text{electricity_consumption_mwh} \times 0.0036 ]
  2. Calculate project emissions: [ PE_y = \sum \left( EG_{p,d,y} \times grid_emission_factor \times (1 + transmission_distribution_losses) \right) ]

Emission Reductions Calculation

Formula: [ ER_y = BE_y - PE_y - LE_y ]

Calculation Steps:

  1. Calculate emission reductions: [ ER_y = BE_y - PE_y ]
  2. Include leakage emissions if applicable: [ ER_y = BE_y - PE_y - LE_y ]

Final Monitoring Report Schema

Monitoring Report Schema:

{
  "report_id": "string",
  "monitoring_period_start": "datetime",
  "monitoring_period_end": "datetime",
  "devices": [
    {
      "device_id": "string",
      "installation_date": "datetime",
      "electricity_consumption_mwh": "float",
      "thermal_efficiency": "float",
      "energy_use_for_cooking_tj": "float",
      "baseline_emission_factor": "float",
      "project_emission_factor": "float",
      "baseline_emissions": "float",
      "project_emissions": "float",
      "emission_reductions": "float"
    }
  ],
  "aggregated_totals": {
    "total_devices": "integer",
    "total_baseline_emissions": "float",
    "total_project_emissions": "float",
    "total_emission_reductions": "float"
  }
}

Example Calculation with Specific Data

Assumptions:

  • Daily MRV collected data for 30 days for a single device.
  • Aggregated monthly data for simplicity.

Device Data Example:

{
  "device_id": "device123",
  "installation_date": "2024-01-01T00:00:00Z",
  "electricity_consumption_mwh": 0.6789,
  "thermal_efficiency": 0.9235,
  "energy_use_for_cooking_tj": 0.00245,  // Derived from daily data
  "baseline_emission_factor": 93.75,
  "project_emission_factor": 0.412,
  "baseline_emissions": 1.554,
  "project_emissions": 0.3088,
  "emission_reductions": 1.2452
}

Aggregated Totals Example:

{
  "total_devices": 100,
  "total_baseline_emissions": 155.4,
  "total_project_emissions": 30.88,
  "total_emission_reductions": 124.52
}
@gautamp8
Copy link
Author

gautamp8 commented Aug 9, 2024

Specific energy consumption approach

Daily MRV data

{
  "device_id": "string",
  "date": "YYYY-MM-DD",
  "EG_p_d_y": "float" // Amount of electricity used by the project device in kWh
}

Static Parameters Schema (not updated daily, but may be updated periodically)

{
  "device_id": "string",
  "SC_b": "float", // Specific consumption of baseline stove (e.g., kWh/meal or kWh/liter of water boiled)
  "SC_p": "float", // Specific consumption of project stove (same unit as SC_b)
  "EF_b_input": "float", // Baseline emission factor (tCO2e/TJ)
  "TDL_j_y": "float", // Average technical transmission and distribution losses
  "EF_el_y": "float", // Grid emission factor (tCO2e/MWh)
  "n_p_d_y": "float" // Energy efficiency of project device,
  "pph": "int" // Number of persons in device household
  "baseline_device_fuel_mix": [
    {
      "fuel_type": "string",
      "amount": "float", // Amount of fuel used in tonnes
      "percentage": "float",  // Proportion of cooking on this fuel/device
      "NCV_b_i": "float", // Net Calorific Value of baseline fuel (TJ/tonne)
      "EF_b_i_CO2": "float", // CO2 emission factor of baseline fuel (tCO2/TJ)
      "EF_b_i_non_CO2": "float", // Non-CO2 emission factor of baseline fuel (tCO2e/TJ)
      "fNRB_i_y": "float" // Fraction of non-renewable biomass (if applicable),
      "efficiency": "float" // Efficiency of the device used with this fuel
    }
  ],
  "valid_from": "YYYY-MM-DD",
  "valid_to": "YYYY-MM-DD"
}

Calculate daily emission reductions for each device

  1. Baseline Emission Factor (EF_b_input):
$$EF_{b,input} = \frac{\sum_k \left(\sum_{i,j} P_{b,i,j} \times (EF_{b,i,CO2} \times fNRB_{i,y} + EF_{b,i,non-CO2}) \times NCV_{b,i}\right)_k}{\sum_k \left(\sum_{i,j} P_{b,i,j} \times NCV_{b,i}\right)_k}$$

Where:
P_b,i,j, EF_b,i,CO2, fNRB_i,y, EF_b,i,non-CO2, and NCV_b,i are taken from the "baseline_device_fuel_mix" array in the static parameters schema.

  1. Specific Consumption for Baseline (SC_b):
$$SC_b = \sum_j (u_j \times SC_{b,j})$$

Where:
u_j is the "percentage" and SC_b,j is derived from the "amount" divided by (pph × days in monitoring period) for each fuel type in the "baseline_device_fuel_mix" array.

  1. Baseline Emissions (BE_y):
$$BE_y = \sum_d EG_{p,d,y} \times \frac{SC_b}{SC_p} \times 0.0036 \times EF_{b,input}$$

Where:
EG_p,d,y is from the daily MRV data, and other parameters are from the static parameters schema.

  1. Project Emissions (PE_y):
$$PE_y = \sum_d EG_{p,d,y} \times EF_{el,y} \times (1 + TDL_{j,y})$$

Where:
EG_p,d,y is from the daily MRV data, and EF_el,y and TDL_j,y are from the static parameters schema.

  1. Emission Reductions (ER_y):

ER_y = BE_y - PE_y

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment