Sectors#

To run sector coupled studies, the sector wildcard must be assigned to G. After doing so, the following configuration options are exposed to the user.

Note

Only single-period studies are currently supported when running sector studies.

Carbon Limits#

  # docs-co2
  co2:
    sequestration_potential: 0
    policy: "config/policy_constraints/sector_co2_limits.csv"

Unit

Values

Description

co2

Options on carbon dioxide tracking for sector studies

– sequestration_potential

MtCO2/a

float

CO2 sequestration potential. (Not Implemented)

– policy

str

Path to emmison limit policy. Note, policy overrides the power sector emission policy configuration

Natural Gas Options#

  # docs-ng
  natural_gas:
    imports:
      min: 0.99
      max: 1.01
    exports:
      min: 0.99
      max: 1.01
    cyclic_storage: true
    standing_loss: 0
    marginal_cost_multiplier: 1
    existing_pipeline_multiplier: 1
  methane:
    upstream_leakage_rate: 0.02 # per unit 
    downstream_leakage_rate: 0.02 # per unit 
    gwp: 0 

Unit

Values

Description

natural_gas

Options when implementing natural gas networks

– imports

Limits on imports compared to historical year

— min

per_unit

float {>=0}

Minimum import requirememnt compared to historical year.

— max

per_unit

float {>=0} or ‘inf’

Maximum allowable imports compared to historical year.

– exports

Limits on exports compared to historical year

— min

per_unit

float {>=0}

Minimum export requirememnt compared to historical year.

— max

per_unit

float {>=0} or ‘inf’

Maximum allowable exports compared to historical year.

– cyclic_storage

bool {true, false}

Apply cyclic storage constraints on linepack and underground storage

– standing_loss

per_unit

float {0 <=, >= 1}

Leakage rate from pipelines. These leaks do NOT account towards emissions, just enforces gas production to replinish losses with cyclic constraints.

– marginal_cost_multiplier

per_unit

float {>=0}

Multiplier on the marginal cost of importing/exporting natural gas.

– existing_pipeline_multiplier

per_unit

float {>=0}

Multiplier on the existing pipeline capacity. See issue PyPSA/pypsa-usa#487

methane

Options of methane emission accounting attached to natural gas networks

– upstream_leakage_rate

per_unit

float {0 <=, >= 1}

Upstream per_unit leakage rate of natural gas. Applied to gas processing facilities.

– downstream_leakage_rate

per_unit

float {0 <=, >= 1}

Downstream per_unit leakage rate of natural gas. Applied to all end-use technologies that use natural gas.

– gwp

float

Global warming potential of methane. GWP of 1 represents same carbon intensity as burned natural gas.

Heating Sector#

  # docs-heating
  heating:
    heat_pump_sink_T: 55.

Unit

Values

Description

heating

Options when implementing heating network

– heat_pump_sink_T

C

float

The temperature heat sink used in heat pumps based on DTU / large area radiators. The value is conservatively high to cover hot water and space heating in poorly-insulated buildings

– equations

str

Set of COP equations to use. (Not implemented)

Service Sector#

  # docs-service
  service_sector:
    dynamic_costs: True
    split_res_com: True # false to be implemented 
    split_urban_rural: False
    water_heating: 
      split_space_water: true
      simple_storage: true
      n_hours: 4
    split_space_water_heating: True
    brownfield: True
    scale_exising_stock: True
    gas_connection:
      rural: 1 # to be implemented
      urban: 1 # to be implemented
    technologies:
      space_heating:
        elec_furnace: true
        gas_furnace: true
        oil_furnace: true
        heat_pump: true
        air_con: true
      water_heating: 
        elec_water_tank: true 
        gas_water_tank: true
        oil_water_tank: false
      standing_losses: # per-unit
        space: 0.05
        water: 0.01
    loads: # to be implemented 
      heating: true
      cooling: true
    demand_response: 
      shift: 0
      marginal_cost:
        electricity: 5
        space-heat: 5
        cool: 5
        heat: 5

Unit

Values

Description

service_sector

Options when implementing the service sector (Residential and Commercial)

– dynamic_costs

bool {true, false}

Apply sector specific time varrying natural gas and heating fuel oil costs.

– split_res_com

bool {true, false}

Model the residential and commercial network seperatly, or aggregate into a single service sector. (Only False implemented)

– split_urban_rural

bool {true, false}

Model the urban and rural areas seperatly within each sector, or aggregate into a single region. If aggregated, constraints on GSHP capacity are implemented based on population.

– split_space_water_heating

bool {true, false}

Model space heat and water heat seperatly, or aggregate together. If aggregated, only space-heat technologyies are represented.

– brownfield

bool {true, false}

Include brownfield end-use capacity

– scale_exising_stock

bool {true, false}

Scales exisitng stock to equal capacity. If not the existing stock may not be enough to meet historical load. Needed as existing stock values are survay based..

– gas_connection

Option on amount of area connected to the gas network. 1 represnets 100% of buildings connected, 0 represents 0% connected.

– – urban

per_unit

float {0 <=, >= 1}

Urban population connected to gas network.

– – rural

per_unit

float {0 <=, >= 1}

Rural population connected to gas network.

– technologies

Energy conversion technologies to model.

– – space_heating

Space heating technologies to model

– – – elec_furnace

bool {true, false}

Include electric furnace heaters as extendable

– – – gas_furnace

bool {true, false}

Include natural gas furnces as extendable

– – – oil_furnace

bool {true, false}

Include heating oil furnaces as extendable

– – – heat_pump

bool {true, false}

Include heat pumps as extendable. Both ASHPs and GSHPs are iuncluded. ASHP are used in urban areas, while GSHP are used in rural areas.

– – – air_con

bool {true, false}

Include air conditiners as extendable if modelling cooling load

– – water_heating

Water heating technologies to model

– – – elec_water_tank

bool {true, false}

Include electric hot water storage tanks as extendable

– – – gas_water_tank

bool {true, false}

Include natural gas hot water storage tanks as extendable

– – – oil_water_tank

bool {true, false}

Include heating oil hot water storage tanks as extendable

– – standing_losses

Standing losses to apply to space and water storages

– – – space

per_unit

float {0 <=, >= 1}

Hourly loss of space heat stores

– – – water

per_unit

float {0 <=, >= 1}

Hourly loss of water heat stores

– loads

Loads to include. Electricity is always modelled.

– – heating

bool {true, false}

Include heating loads.

– – cooling

bool {true, false}

Include cooling loads. Heating must be included to also include cooling

– demnand_response

Demand response options for the service sector.

– – shift

percentage

float {0 <=, >= 100} or ‘inf’

Allowable load to be shifted per snapshot. Set to 0 to turn off demand response. Set to ‘inf’ to not enforce capacity limits.

– – marginal_cost

$/MWh

float {0 <=}

Cost to store one unit of energy for one hour.

– – by_carrier

bool {true, false}

Run demand response at a per-carrier level.

Note

If running demand response at a per-carrier level, put each carrier as a key. For example:

demand_response:
  by_carrier: True
  space-heat:
    shift: 20
    marginal_cost: 16
  elec:
    shift: 30
    marginal_cost: 25
  cool:
    shift: 10
    marginal_cost: 30

Transport Sector#

  # docs-transport
  transport_sector:
    brownfield: True # false to be implemented
    dynamic_costs: True # false to be implemented 
    ev_policy: "config/policy_constraints/ev_policy.csv"
    must_run_evs: True
    modes: # false to be implemented 
      vehicle: true
      rail: true
      air: true
      boat: true
    demand_response: 
      shift: 0
      marginal_cost: 10

Unit

Values

Description

transport_sector

Options when implementing the transport sector

– brownfield

bool {true, false}

Include brownfield end-use capacity for all modelled modes of operation.

– dynamic_costs

bool {true, false}

Apply sector specific time varrying gasoline costs

– must_run_evs

bool {true, false}

If EV capacity factors match the load profile

– modes

Modes of transportation to include. (Only True implemented)

– – vehicle

bool {true, false}

Include light-duty, medium-duty, heavy-duty, and bus road transportation.

– – rail

bool {true, false}

Include passenger and freight rail

– – air

bool {true, false}

Include passenger air travel

– – boat

bool {true, false}

Include domestic marine shipping.

– demnand_response

Demand response options for the service sector.

– – shift

percentage

float {0 <=, >= 100} or ‘inf’

Allowable load to be shifted per snapshot. Set to 0 to turn off demand response. Set to ‘inf’ to not enforce capacity limits.

– – marginal_cost

$/MWh

float {0 <=}

Cost to store one unit of energy for one hour.

Industrial Sector#

  # docs-industrial
  industrial_sector: 
    brownfield: True # false to be implemented
    dynamic_costs: True # false to be implemented 
    technologies: # false to be implemented
      gas_furnace: true
      coal_furnace: true
      heat_pump: true
    min_fossil_generation: 66 # percent
    demand_response: 
      shift: 0
      marginal_cost:
        electricity: 5
        heat: 5

Unit

Values

Description

industrial_sector

Options when implementing the industrial sector

– brownfield

bool {true, false}

Include brownfield end-use capacity.

– dynamic_costs

bool {true, false}

Apply sector specific time varrying natural gas, oil, and coal costs.

– technologies

Energy conversion technologies to model.

– – gas_furnace

bool {true, false}

Include natural gas furnaces

– – coal_furnace

bool {true, false}

Include coal boilers

– – heat_pump

bool {true, false}

Include heat pumps

– min_fossil_generation

percentage

float {0 <=, >= 100}

Minimum generation from fossil sources to meet heat demand.

– demnand_response

Demand response options for the service sector.

– – shift

percentage

float {0 <=, >= 100} or ‘inf’

Allowable load to be shifted per snapshot. Set to 0 to turn off demand response. Set to ‘inf’ to not enforce capacity limits.

– – marginal_cost

$/MWh

float {0 <=}

Cost to store one unit of energy for one hour.

– – by_carrier

bool {true, false}

Run demand response at a per-carrier level.

Note

If running demand response at a per-carrier level, put each carrier as a key. For example:

demand_response:
  by_carrier: True
  elec:
    shift: 30
    marginal_cost: 25
  heat:
    shift: 10
    marginal_cost: 30