emissions

This module consists of code that computes Scope 2 emissions given an electricity consumption profile.

Functions to calculate emissions from electricity consumption data.

electric_emission_cost.emissions.calculate_grid_emissions(carbon_intensity, consumption_data, net_demand_varname, emission_units=<Unit('kilogram / megawatt_hour')>, consumption_units=<Unit('kilowatt')>, resolution='15m', ei_varname='co2_eq_kg_per_MWh')[source]

Calculates the emissions for the given consumption information and carbon intensity of electricity generation structure as DataFrames.

Parameters:
  • carbon_intensity (DataFrame) – Pandas DataFrame with kg of CO2 per kWh by hour and month

  • consumption_data (DataFrame) – Baseline electrical or gas usage data as a Pandas DataFrame

  • emissions_units (pint.Unit) – Units for the emissions data. Default is kg / kWh

  • consumption_units (pint.Unit) – Units for the electricity consumption data. Default is kW

  • resolution (str) – granularity of each timestep in string form with default value of “15m”

Returns:

total emissions due to grid electricity generation in kilograms CO2

Return type:

pint.Quantity

electric_emission_cost.emissions.calculate_grid_emissions_cvx(carbon_intensity, consumption_data, emission_units=<Unit('kilogram / megawatt_hour')>, consumption_units=<Unit('kilowatt')>, resolution='15m')[source]

Calculates the emissions for the given consumption information as a cvxpy object carbon intensity of electricity generation structure as a DataFrame.

Parameters:
  • carbon_intensity (array) – numpy array with kg of CO2 per kWh

  • consumption_data (Variable) – Baseline electrical or gas usage data as a CVXPY Variable

  • emissions_units (pint.Unit) – Units for the emissions data. Default is kg / kWh

  • consumption_units (pint.Unit) – Units for the electricity consumption data. Default is kW

  • resolution (str) – granularity of each timestep in string form with default value of “15m”

Returns:

cvxpy Expression representing emissions in kg of CO2 for the given consumption_data and carbon_intensity

Return type:

Expression

electric_emission_cost.emissions.get_carbon_intensity(start_dt, end_dt, emissions_data, emissions_units=<Unit('kilogram / megawatt_hour')>, resolution='15m', ei_varname='co2_eq_kg_per_MWh')[source]

Computes the emissions (as kilograms of CO2) of a horizon of data

Parameters:
  • start_dt (datetime.datetime or numpy.datetime64) – Start datetime to gather rate information

  • end_dt (datetime.datetime or numpy.datetime64) – End datetime to gather rate information

  • emissions_data (DataFrame) – Electric grid emissions information. Only one of datetime_local and month/day/hour are required.

    datetime_local

    local datetime to estimate the marginal emissions

    month

    month for which the emissions data was averaged

    day

    day for which the emissions data was averaged

    hour

    hour for which the emissions data was averaged

    co2_eq_kg_per_MWh

    emissions in kg of CO2 per MWh of grid electricity

  • emissions_units (pint.Unit) – Units for the emissions data. Default is kg / MWh

  • resolution (str) – a string of the form [int][str] giving the temporal resolution on which charges are assessed. The str portion corresponds to numpy timedelta64 types. For example ‘15m’ specifying demand charges that are applied to 15-minute intervals of electricity consumption

Returns:

emissions from start_dt to end_dt in kg CO2 / kWh

Return type:

pint.Quantity