Configuration#
run#
It is common conduct to analyse energy system optimisation models for multiple scenarios for a variety of reasons, e.g. assessing their sensitivity towards changing the temporal and/or geographical resolution or investigating how investment changes as more ambitious greenhouse-gas emission reduction targets are applied.
The run section is used for running and storing scenarios with different configurations which are not covered by wildcards. It determines the path at which resources, networks and results are stored. Therefore the user can run different configurations within the same directory.
run:
name: "Default" # use this to keep track of runs with different settings
disable_progressbar: false # set to true to disable the progressbar
shared_resources: false # set to true to share the default resources across runs
shared_cutouts: true # set to true to share the default cutout(s) across runs
validation: false # set to true to run back-casting plots
renewable:
dataset: godeeep # [atlite, godeeep]
Unit |
Values |
Description |
|
|---|---|---|---|
name |
– |
any string |
Specify a name for your run. Results will be stored under this name. |
disable_progrssbar |
bool |
{true, false} |
Switch to select whether progressbar should be disabled. |
shared_resources |
bool |
{true, false} |
Switch to select whether resources should be shared across runs. |
shared_cutouts |
bool |
{true, false} |
Switch to select whether cutouts should be shared across runs. |
validation |
bool |
{true, false} |
Switch to enable back-casting validation plotting |
scenario#
The scenario section is used for setting the wildcards and defining planning horizon settings. All configurations within this section are described in wildcards with the exception of planning_horizons and foresight.
Planning horizons determines which year(s) of future demand forecast to use for your planning model. To build a multi-investment period model set multiple planning_horizons: years. The foresight: option specifies whether perfect foresight or myopic foresight optimization model is developed. In perfect foresight, a monolithic model is developed where all planning_horizons specified are optimized at once, e.g. future horizon values of costs and demand are incorporated into decisions made in earlier planning horizons. Myopic optimization solves each planning horizon sequentially, and passes the results forward.
scenario:
interconnect: [western] #"usa|texas|western|eastern"
clusters: [33]
simpl: [75]
opts: [REM-3h]
ll: [v1.0]
sector: "" # G
planning_horizons: [2030, 2040, 2050] #(2018-2023, 2030, 2040, 2050)
foresight: 'perfect' # myopic, perfect
model_topology:
transmission_network: 'reeds' # [reeds, tamu]
topological_boundaries: 'reeds_zone' # [county, reeds_zone, state]
interface_transmission_limits: false
include: # mixed zone types not supported
# reeds_zone: []
# reeds_state: ['CA']
# reeds_ba: []
aggregate: # eligible keys: [reeds_zone, trans_reg]
# trans_grp: []
# reeds_zone: []
Unit |
Values |
Description |
|
|---|---|---|---|
planning_horizons |
int |
(2018-2023, 2030, 2040, 2050) |
Specifies the year of demand data to use. Historical values will use EIA930 data, Future years will use NREL EFS data. Specify multiple planning horizons to build a multi-horizon model. |
foresight |
str |
One of {‘perfect’,’myopic’} |
Specifies foresight option for multi-horizon optimization. |
snapshots#
Specifies the temporal range to build an energy system model for as arguments to pandas.date_range
snapshots:
start: "2019-01-01"
end: "2020-01-01"
inclusive: "left"
## For GODEEEP inputs for future scenarios, configure this
renewable_scenarios: ["rcp85cooler"] #["historical", "rcp45hotter", "rcp45cooler", "rcp85hotter", "rcp85cooler"]
# For multiple planning horizons, only specify the month and day - the year will automatically match each planning horizon (e.g., planning_horizons: [2030, 2040, 2050])
renewable_snapshots:
start_month: 1
start_day: 1
end_month: 12
end_day: 31
end_inclusive: true # if true, includes the end day; if false, stops before end day
Unit |
Values |
Description |
|
|---|---|---|---|
start |
– |
str or datetime-like; e.g. YYYY-MM-DD |
Left bound of date range |
end |
– |
str or datetime-like; e.g. YYYY-MM-DD |
Right bound of date range |
inclusive |
– |
One of {‘neither’, ‘both’, ‘left’, ‘right’} |
Make the time interval closed to the |
atlite#
Define and specify the atlite.Cutout used for calculating renewable potentials and time-series. All options except for features are directly used as cutout parameters
atlite:
default_cutout: era5_2019
nprocesses: 8
show_progress: false # false saves time
cutouts:
era5_2019:
module: era5 # in priority order
time: ['2019', '2019']
interconnects:
western:
x: [-126, -99]
y: [27, 50]
dx: 0.3
dy: 0.3
eastern:
x: [-109, -65]
y: [23, 50]
dx: 0.3
dy: 0.3
texas:
x: [-110, -90]
y: [24, 37]
dx: 0.3
dy: 0.3
usa:
x: [-126, -65]
y: [23, 50]
dx: 0.3
dy: 0.3
lines:
types: #Temp values, replaced.
115.: "Al/St 240/40 2-bundle 220.0"
138.: "Al/St 240/40 2-bundle 220.0"
161.: "Al/St 240/40 2-bundle 220.0"
230.: "Al/St 240/40 2-bundle 220.0"
345.: "Al/St 240/40 4-bundle 380.0"
500.: "Al/St 560/50 4-bundle 750.0"
765.: "Al/St 560/50 4-bundle 750.0"
Unit |
Values |
Description |
|
|---|---|---|---|
default_cutout |
– |
str |
Defines a default cutout. |
nprocesses |
– |
int |
Number of parallel processes in cutout preparation |
show_progress |
bool |
true/false |
Whether progressbar for atlite conversion processes should be shown. False saves time. |
cutouts |
|||
– {name} |
– |
Convention is to name cutouts like |
Name of the cutout netcdf file. The user may specify multiple cutouts under configuration |
– – module |
– |
Subset of {‘era5’,’sarah’} |
Source of the reanalysis weather dataset (e.g. ERA5 or SARAH-2) |
– – x |
° |
Float interval within [-180, 180] |
Range of longitudes to download weather data for. If not defined, it defaults to the spatial bounds of all bus shapes. |
– – y |
° |
Float interval within [-90, 90] |
Range of latitudes to download weather data for. If not defined, it defaults to the spatial bounds of all bus shapes. |
– – dx |
° |
Larger than 0.25 |
Grid resolution for longitude |
– – dy |
° |
Larger than 0.25 |
Grid resolution for latitude |
– – time |
Time interval within [‘1979’, ‘2018’] (with valid pandas date time strings) |
Time span to download weather data for. If not defined, it defaults to the time interval spanned by the snapshots. |
|
– – features |
String or list of strings with valid cutout features (‘inlfux’, ‘wind’). |
When freshly building a cutout, retrieve data only for those features. If not defined, it defaults to all available features. |
electricity#
Specifies the types of generators that are included in the network, which are extendable, and the CO2 base for which the optimized reduction is relative to.
electricity:
conventional_carriers: [nuclear, oil, OCGT, CCGT, coal, geothermal, biomass, waste] # Choose the conventional plant types to include in network
renewable_carriers: [onwind, offwind_floating, solar, hydro] # Choose the renewable plant types to include in network
retirement: economic # "economic" or "technical"
SAFE_reservemargin: 0.14
regional_Co2_limits: 'config/policy_constraints/regional_Co2_limits.csv'
technology_capacity_targets: 'config/policy_constraints/technology_capacity_targets.csv'
portfolio_standards: 'config/policy_constraints/portfolio_standards.csv'
SAFE_regional_reservemargins: 'config/policy_constraints/SAFE_regional_prm.csv'
transmission_interface_limits: 'config/policy_constraints/transmission_interface_limits.csv'
operational_reserve:
activate: false
epsilon_load: 0.02
epsilon_vres: 0.02
contingency: 4000
erm: # Energy Reserve Margin - used when ERM opt is enabled
all: 0.15 # 15% reserve margin for all regions (default)
extendable_carriers:
Generator: [solar, onwind, offwind_floating, OCGT, CCGT, CCGT-95CCS, coal, nuclear, hydrogen_ct] #include CCGT-CCS
StorageUnit: [4hr_battery_storage, 8hr_battery_storage] # [Xhr-battery-storage (2-10 hours)]
Store: []
Link: []
demand:
profile: efs # efs, eia
scenario:
efs_case: reference # reference, medium, high
efs_speed: moderate # slow, moderate, rapid
aeo: reference
demand_response:
shift: 0
marginal_cost: 999999
imports:
enable: false
costs: wholesale # wholesale|carrier|float
co2_emissions: 0.428
capacity_limit: true
volume_limit: inf # 0 > x > 100 | 'inf'
balancing_period: month # day|week|month|year
exports:
enable: false
costs: wholesale # wholesale|carrier|float
capacity_limit: true
volume_limit: inf # 0 > x > 100 | 'inf'
balancing_period: month # day|week|month|year
Unit |
Values |
Description |
|
|---|---|---|---|
conventional_carriers |
– |
Any subset of {nuclear, oil, OCGT, CCGT, coal, geothermal, biomass} |
List of conventional power plants to include in the model from |
renewable_carriers |
– |
Any subset of {solar, onwind, offwind-ac, offwind-dc, hydro} |
List of renewable generators to include in the model. |
retirement |
– |
One of |
Sets the retirement method for converntional generators. If |
operational_reserve: |
Settings for reserve requirements following GenX |
||
activate |
bool |
true or false |
Whether to take operational reserve requirements into account during optimisation |
epsilon_load |
– |
float |
share of total load |
epsilon_vres |
– |
float |
share of total renewable supply |
contingency |
MW |
float |
fixed reserve capacity |
erm: |
Energy Reserve Margin settings (used when ERM opt is enabled). Ensures sufficient firm capacity to meet demand plus reserve margin at every timestep. |
||
<region> |
– |
float |
Reserve margin as a fraction (e.g., 0.15 for 15%). Use |
extendable_carriers: |
|||
Generator |
– |
Any extendable carrier |
Defines existing or non-existing conventional and renewable power plants to be extendable during the optimization. Conventional generators can only be built/expanded where already existent today. If a listed conventional carrier is not included in the |
Storage Unit |
– |
Any subset of { |
Adds extendable storage units (battery and/or hydrogen) at every node/bus after clustering without capacity limits and with zero initial capacity. |
Store |
– |
Any subset of { |
Adds extendable storage units (battery and/or hydrogen) at every node/bus after clustering without capacity limits and with zero initial capacity. |
Links |
– |
Any subset of {} |
Adds extendable linksat every connection where there are lines or HVDC links without capacity limits and with zero initial capacity. Hydrogen pipelines require hydrogen storage to be modelled as |
demand: |
|||
profile |
– |
One of { |
Datasource for electrical load data. |
scenario: |
|||
-efs_case |
– |
One of { |
(UNDER DEVELOPMENT) Extracts EFS data according to level of adoption |
-efs_speed |
– |
One of { |
(UNDER DEVELOPMENT) Extracts EFS data according to speed of electrification |
-aeo |
– |
One of the AEO scenarios here |
(UNDER DEVELOPMENT) Scales future demand according to the AEO scenario |
demand_response: |
Settings to activate and configure demand response |
||
-shift |
per_unit |
float {0 <=, >= 1} 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 |
imports: |
Configure electric imports from regions outside of model scope |
||
-enable |
|
Enable electric imports |
|
-costs |
$/MWh |
|
Cost of electric imports from regions outside of model scope. |
-co2_emissions |
CO2/MWh |
|
CO2 emissions of electric imports from regions outside of model scope. |
-capacity_limit |
|
Enable capacity limit for electric imports from regions outside of model scope |
|
-volume_limit |
percent |
float {0 <=, >= 100} or ‘inf’ |
Volume limit for electric imports from regions outside of model scope (in % of total demand). Set to |
-balancing_period |
|
Balancing period for electric imports from regions outside of model scope. |
|
exports: |
Configure electric exports to regions outside of model scope |
||
-enable |
|
Enable electric exports |
|
-costs |
$/MWh |
|
Cost of electric imports from regions outside of model scope. |
-capacity_limit |
|
Enable capacity limit for electric exports to regions outside of model scope |
|
-volume_limit |
percent |
float {0 <=, >= 100} or ‘inf’ |
Volume limit for electric exports to regions outside of model scope (in % of total demand). Set to |
-balancing_period |
|
Balancing period for electric exports to regions outside of model scope. |
renewable#
solar#
solar:
cutout: era5
resource:
method: pv
panel: CSi
orientation: latitude_optimal # will lead into optimal
capacity_per_sqkm: 4.6 # From 1.7 to 4.6 addresses issue #361 - TODO revisit this assumption
correction_factor: 1 # 0.854337
corine:
grid_codes: [20, 30, 60, 90, 100] #see above for codes
natura: true
cec: true
potential: conservative # simple or conservative
clip_p_max_pu: 1.e-2
extendable: true
Unit |
Values |
Description |
|
|---|---|---|---|
cutout |
– |
|
Specifies the directory where the relevant weather data ist stored that is specified at atlite/cutouts configuration. Both sarah and era5 work. |
resource |
|||
method |
– |
Must be ‘pv’ |
A superordinate technology type. |
panel |
– |
One of {‘Csi’, ‘CdTe’, ‘KANENA’} as defined in atlite |
Specifies the solar panel technology and its characteristic attributes. |
orientation |
|||
slope |
° |
Realistically any angle in [0., 90.] |
Specifies the tilt angle (or slope) of the solar panel. A slope of zero corresponds to the face of the panel aiming directly overhead. A positive tilt angle steers the panel towards the equator. |
azimuth |
° |
Any angle in [0., 360.] |
Specifies the azimuth orientation of the solar panel. South corresponds to 180.°. |
capacity_per_sqkm |
\(MW/km^2\) |
float |
Allowable density of solar panel placement. |
correction_factor |
– |
float |
A correction factor for the capacity factor (availability) time series. |
corine |
– |
Any subset of the Copornicus Land Cover code list (see assumptions). |
Specifies areas according to Land Cover codes which are generally eligible for wind turbine placement. |
natura |
bool |
{true, false} |
Switch to exclude Protected Planet natural protection areas. Area is excluded if |
potential |
– |
One of {‘simple’, ‘conservative’} |
Method to compute the maximal installable potential for a node |
clip_p_max_pu |
p.u. |
float |
To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero. |
excluder_resolution |
m |
float |
Resolution on which to perform geographical elibility analysis. |
onwind#
onwind:
cutout: era5
resource:
method: wind
turbine: Vestas_V112_3MW
add_cutout_windspeed: true
capacity_per_sqkm: 3 # conservative, ScholzPhd Tab 4.3.1: 10MW/km^2
correction_factor: 1 # 0.93
corine:
#all keys labeled corrine are actually copernicus codes. Using the name corrine bc using the pypsa-eur convention: https://land.copernicus.eu/global/sites/cgls.vito.be/files/products/CGLOPS1_PUM_LC100m-V3_I3.4.pdf
grid_codes: [20, 30, 40, 60, 100, 111, 112, 113, 114, 115]
distance: 10 #buffer from distance_grid_codes that are to be excluded
distance_grid_codes: [50]
natura: true
cec: true
potential: conservative # simple or conservative
clip_p_max_pu: 1.e-2
extendable: true
Unit |
Values |
Description |
|
|---|---|---|---|
cutout |
– |
Should be a folder listed in the configuration |
Specifies the directory where the relevant weather data ist stored. |
resource |
|||
method |
– |
Must be ‘wind’ |
A superordinate technology type. |
turbine |
– |
One of turbine types included in (atlite)[PyPSA/atlite] |
Specifies the turbine type and its characteristic power curve. |
capacity_per_sqkm |
\(MW/km^2\) |
float |
Allowable density of wind turbine placement. |
corine |
|||
grid codes |
– |
Any subset of the Copornicus Land Cover code list (see assumptions). |
Specifies areas according to Land Cover codes which are generally eligible for wind turbine placement. |
distance |
m |
float |
Distance to keep from areas specified in |
distance_grid_codes |
– |
Any subset of the Copornicus Land Cover code list (see assumptions). |
Specifies areas according to Land Cover codes which are generally eligible for wind turbine placement. |
natura |
bool |
{true, false} |
Switch to exclude Protected Planet natural protection areas. Area is excluded if |
potential |
– |
One of {‘simple’, ‘conservative’} |
Method to compute the maximal installable potential for a node |
clip_p_max_pu |
p.u. |
float |
To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero. |
correction_factor |
– |
float |
Correction factor for capacity factor time series. |
Offshore wind#
offwind:
cutout: era5
resource:
method: wind
turbine: NREL_ReferenceTurbine_2020ATB_5.5MW
# add_cutout_windspeed: true
capacity_per_sqkm: 3 # 2021–2022 Transmission Plan, CAISO
correction_factor: 1 # 0.8855 # proxy for wake losses, from 10.1016/j.energy.2018.08.153
corine:
grid_codes: [80, 200] #page 28 of https://land.copernicus.eu/global/sites/cgls.vito.be/files/products/CGLOPS1_PUM_LC100m-V3_I3.4.pdf
natura: true
boem_screen: False
max_depth: 60 # meters, ref https://www.nrel.gov/docs/fy16osti/66599.pdf
min_shore_distance: 22000 # meters
max_shore_distance: 65000 # meters
potential: conservative # simple or conservative
clip_p_max_pu: 1.e-2
extendable: true
offwind_floating:
cutout: era5
resource:
method: wind
turbine: NREL_ReferenceTurbine_2020ATB_15MW_offshore
add_cutout_windspeed: true
capacity_per_sqkm: 3 # 2021–2022 Transmission Plan, CAISO
correction_factor: 1 # 0.8855 # proxy for wake losses, from 10.1016/j.energy.2018.08.153
corine:
grid_codes: [80, 200] #page 28 of https://land.copernicus.eu/global/sites/cgls.vito.be/files/products/CGLOPS1_PUM_LC100m-V3_I3.4.pdf
natura: true
boem_screen: true
min_depth: 60 # meters, ref https://www.nrel.gov/docs/fy16osti/66599.pdf
max_depth: 1300 # meters, ref https://www.nrel.gov/docs/fy22osti/83650.pdf
min_shore_distance: 22000 # meters
max_shore_distance: 65000 # meters
potential: conservative # simple or conservative
clip_p_max_pu: 1.e-2
extendable: true
lines#
lines:
s_max_pu: 0.7
s_nom_max: .inf
max_extension: 20000 #MW
length_factor: 1.25
Unit |
Values |
Description |
|
|---|---|---|---|
types |
– |
Values should specify a line type in PyPSA. Keys should specify the corresponding voltage level (e.g. 220., 300. and 380. kV) |
Specifies line types to assume for the different voltage levels of the TAMU Network. |
s_max_pu |
– |
Value in [0.,1.] |
Correction factor for line capacities (s_nom) to approximate \(N-1\) security and reserve capacity for reactive power flows |
s_nom_max |
MW |
float |
Global upper limit for the maximum capacity of each extendable line. |
max_extension |
MW |
float |
Upper limit for the extended capacity of each extendable line. |
length_factor |
– |
float |
Correction factor to account for the fact that buses are not connected by lines through air-line distance. Only used in TAMU network. |
links#
links:
p_max_pu: 1.0
p_nom_max: .inf
max_extension: 20000 #MW
Unit |
Values |
Description |
|
|---|---|---|---|
p_max_pu |
– |
Value in [0.,1.] |
Correction factor for link capacities |
p_nom_max |
MW |
float |
Global upper limit for the maximum capacity of each extendable DC link. |
max_extension |
MW |
float |
Upper limit for the extended capacity of each extendable line. |
co2#
The co2 section specifies whether the model may use underground storage to sequester captured CO2 or not. In case underground storage is specified, each node (composing the network) has a specific storage potential and a cost associated with it. The storage potential (in tonnes) is calculated by aggregating all the underlying storage potentials of the U.S. counties encompassed in the node’s geographical area. Counties that are only partially covered by the node’s geographical area have their potential fractionated accordingly. The storage cost (in $/tonne) is calculated by weighting the potential with the cost of each county encompassed. The dataset containing information about underground CO2 storage potentials and costs at a county level (and used in PyPSA-USA) was provided by Edna Calzado at The University of Texas (Austin), which was derived from the Roads to Removal project (https://roads2removal.org). To get an illustration, enabling underground co2 storage for a sector-less network will render its topography similar to this, while for a sector-based network will render its topography similar to this. As a reference, disabling underground co2 storage (i.e. no CCTS), a sector-less network has a topography similar to this, while a sector-based network has a topography similar to this.
In addition, the section specifies whether the model may transport captured CO2 between nodes or not. In case transportation is specified, a network of CO2 pipelines is built based on the electricity grid layout represented in PyPSA-USA to determine where/how to build pipelines to connect nodes. To get an illustration, enabling co2 transport for a sector-less network will render its topography similar to this, while for a sector-based network will render its topography similar to this.
co2:
storage: false # [false, true]
network:
enable: false # [false, true]
capital_cost: 2736000 # in USD/12-inch diameter/mile
marginal_cost: 4 # in USD/tCO2
lifetime: 40 # in years
discount_rate: 0.07
Unit |
Values |
Description |
|
|---|---|---|---|
storage |
bool |
true or false |
Specifies whether the model may use underground storage to sequester captured CO2 or not. The default value is |
network |
– |
Specifies whether the model may transport captured CO2 between nodes or not. In case transportation is specified, a network of CO2 pipelines is built based on the costs, discount rate, as well as the lifetime stipulated in this subsection. |
|
– enable |
bool |
true or false |
Enable ( |
– capital_cost |
int |
$/mile |
Capital cost of building one mile long CO2 pipeline. The default value is |
– marginal_cost |
int |
$/t |
Marginal cost of transporting one tonne of captured CO2. The default value is |
– lifetime |
int |
year |
Lifetime of a CO2 pipeline. The default value is |
– discount_rate |
float |
% |
Discount rate of the capital cost of building a network of CO2 pipelines. The default value is |
dac#
The dac section specifies whether the model should use Direct Air Capture (DAC) or not to capture emitted CO2. DAC may operate in a multitude of scenarios depending on different granularities (or scopes) and whether the model is based on sectors or not.
For a sector-less model:
When
granularityis set tonode, each node (composing the network) has a specific “air atmosphere” into which all the processes belonging to the node emit CO2. For each node, DAC is built to capture CO2 from its “air atmosphere”. To get an illustration, settinggranularitytonodewill render the topography of a sector-less network similar to this.When
granularityis set tostate, each U.S. state (represented in the network) has a specific “air atmosphere” into which all the processes of the nodes belonging to the state emit CO2. For each node, DAC is built to capture CO2 from the state “air atmosphere” it belongs to. To get an illustration, settinggranularitytostatewill render the topography of a sector-less network similar to this.When
granularityis set tonation, the model only has one single “air atmosphere” into which all the processes of all the nodes emit CO2. For each node, DAC is built to capture CO2 from this “air atmosphere”. To get an illustration, settinggranularitytonationwill render the topography of a sector-less network similar to this.
For a sector-based model:
When
granularityis set tonode, each sector/node pair has a specific “air atmosphere” into which all the processes belonging to the sector/node pair emit CO2. For each sector/node pair, DAC is built to capture CO2 from its “air atmosphere”. To get an illustration, settinggranularitytonodewill render the topography of a sector-based network similar to this.When
granularityis set tostate, each sector/U.S. state pair has a specific “air atmosphere” into which all the processes of the nodes belonging to the state emit CO2. For each sector/node pair, DAC is built to capture CO2 from the sector/state pair’s “air atmosphere” it belongs to. To get an illustration, settinggranularitytostatewill render the topography of a sector-based network similar to this.Given that a
granularityset tonationdoes not make sense in a sector-based model, it defaults tonodein this case.
dac:
enable: false # [false, true]
granularity: "node" # ["node", "state", "nation"]
capital_cost: 6000000 # in USD/tCO2/h
electricity_input: 2.5 # in MWh/tCO2
lifetime: 20 # in years
discount_rate: 0.07
Unit |
Values |
Description |
|
|---|---|---|---|
enable |
bool |
true or false |
Specifies whether the model may use Direct Air Capture (DAC) to capture emitted CO2 or not. In case DAC is specified, it is built based on the costs, discount rate, as well as the lifetime stipulated in this section. |
granularity |
str |
‘node’, ‘state’ or ‘nation’ |
Specifies the granularity (scope) of DAC. The default value is |
capital_cost |
int |
$/tCO2/h |
Capital cost of DAC to capture one tonne of CO2 per hour. The default value is |
electricity_input |
float |
MWh/tCO2 |
Amount of electricity needed for DAC to capture one tonne of emitted CO2. The default value is |
lifetime |
int |
year |
Lifetime of DAC. The default value is |
discount_rate |
float |
% |
Discount rate of the capital cost of DAC. The default value is |
costs#
costs: wholesale # wholesale|carrier|float
co2_emissions: 0.428
capacity_limit: true
volume_limit: inf # 0 > x > 100 | 'inf'
balancing_period: month # day|week|month|year
exports:
enable: false
costs: wholesale # wholesale|carrier|float
capacity_limit: true
volume_limit: inf # 0 > x > 100 | 'inf'
balancing_period: month # day|week|month|year
Unit |
Values |
Description |
|
|---|---|---|---|
social_discount_rate |
– |
float; e.g. |
Discount rate used for weighting multi-investment objective function values. |
version |
– |
vX.X.X; e.g. |
Version of technology-data repository to use. |
rooftop_share |
– |
float |
Share of rooftop PV when calculating capital cost of solar (joint rooftop and utility-scale PV). |
fill_values |
– |
float |
Default values if not specified for a technology in resources/costs.csv. |
capital_cost |
$/MW |
Keys should be in the ‘technology’ column of resources/costs.csv. Values can be any float. |
For the given technologies, assumptions about their capital investment costs are set to the corresponding value. Optional; overwrites cost assumptions from |
marginal_cost |
$/MWh |
Keys should be in the ‘technology’ column of resources/costs.csv. Values can be any float. |
For the given technologies, assumptions about their marginal operating costs are set to the corresponding value. Optional; overwrites cost assumptions from |
emission_prices |
Specify exogenous prices for emission types listed in network.carriers to marginal costs. |
||
– enable |
bool |
|
Add cost for a carbon-dioxide price configured in costs: emission_prices: co2 to marginal_cost of generators (other emission types listed in network.carriers possible as well) |
– co2 |
$/t |
float |
Exogenous price of carbon-dioxide added to the marginal costs of fossil-fuelled generators according to their carbon intensity. Added through the keyword Ep in the {opts} wildcard only in the rule :mod: |
sector#
Warning
Sector coupling studies are all under active development. More info to come!
clustering#
Each clustering and interconnection option will have a different number of minimum nodes which can be clustered to, an error will be thrown in cluster_network notifying you of that number if you have selected a value too low.
Cleaned and labeled REeDs Shapes are pulled from this github repository: https://github.com/pandaanson/NYU-law-work
clustering:
simplify_network:
weighting_strategy: demand-capacity # choose from: [population, demand-capacity]
to_substations: false # network is simplified to nodes with positive or negative power injection (i.e. substations or offwind connections)
algorithm: kmeans # choose from: [hac, kmeans]
feature: solar+onwind-time # only for hac. choose from: [solar+onwind-time, solar+onwind-cap, solar-time, solar-cap, solar+offwind-cap] etc.
cluster_network:
weighting_strategy: demand-capacity # choose from: [population, demand-capacity]
algorithm: kmeans # choose from: [hac, kmeans]
feature: solar+onwind-time
exclude_carriers: []
consider_efficiency_classes: false
aggregation_strategies:
generators:
build_year: 'capacity_weighted_average'
lifetime: 'capacity_weighted_average'
start_up_cost: 'capacity_weighted_average'
min_up_time: 'capacity_weighted_average'
min_down_time: 'capacity_weighted_average'
ramp_limit_up: max
ramp_limit_down: max
committable: any
vom_cost: mean
fuel_cost: mean
heat_rate: mean
temporal:
resolution_elec: false
resolution_sector: false
focus_weights:
Unit |
Value |
Description |
|
|---|---|---|---|
simplify_network: |
|||
weighting_strategy |
str |
{population, demand-capacity} |
When building multiple networks, Use ‘population’ if you want to ensure the clusters are assigned constant names. |
to_substations |
bool |
{true, false} |
Implementation curerntly overrides to true. Network is simplified to substation nodes with positive or negative power injection. |
algorithm |
str |
{‘kmeans’} |
|
feature |
str |
|
For HAC clustering. |
cluster_network: |
|||
weighting_strategy |
str |
{population, demand-capacity} |
When building multiple networks, Use ‘population’ if you want to ensure the clusters are assigned constant names. |
algorithm |
str |
{‘kmeans’} |
|
feature |
str |
|
For HAC clustering. |
aggregation_strategies: |
|||
table –> {key} |
str |
{‘mean’,’max’,’min’,etc} |
Specifiy the method of aggregating fields within the generators, buses tables. |
focus_weights: |
|||
region_name’ |
float |
Specify the proportion of nodes to be attributed to a given zone in the form (California: 0.5) for half of all nodes to be located in California. Only used with TAMU Network |
Note
feature: in simplify_network: are only relevant if hac were chosen in algorithm.
Tip
use min in p_nom_max: for more conservative assumptions.
solving#
solving:
#tmpdir: "path/to/tmp"
options:
load_shedding: false
clip_p_max_pu: 1.e-2
noisy_costs: true
skip_iterations: true
rolling_horizon: false
seed: 123
# options that go into the optimize function
track_iterations: false
min_iterations: 4
max_iterations: 6
transmission_losses: 2
linearized_unit_commitment: true
horizon: 8760
assign_all_duals: true
solver:
name: gurobi
options: gurobi-default
solver_options:
highs-default:
# refer to https://ergo-code.github.io/HiGHS/options/definitions.html#solver
threads: 4
solver: "ipm"
run_crossover: "off"
small_matrix_value: 1e-6
large_matrix_value: 1e9
primal_feasibility_tolerance: 1e-5
dual_feasibility_tolerance: 1e-5
ipm_optimality_tolerance: 1e-4
parallel: "on"
random_seed: 123
gurobi-default:
threads: 8
method: 2 # barrier
crossover: 0
BarHomogeneous: 1 # Use homogeneous barrier if standard does not converge
BarConvTol: 1.e-5
OptimalityTol: 1.e-4
FeasibilityTol: 1.e-3
ScaleFlag: 1
Seed: 123
AggFill: 0
PreDual: 0
GURO_PAR_BARDENSETHRESH: 200
gurobi-numeric-focus:
name: gurobi
NumericFocus: 3 # Favour numeric stability over speed
method: 2 # barrier
crossover: 0 # do not use crossover
BarHomogeneous: 1 # Use homogeneous barrier if standard does not converge
BarConvTol: 1.e-5
FeasibilityTol: 1.e-4
OptimalityTol: 1.e-4
ObjScale: -0.5
threads: 8
Seed: 123
gurobi-fallback: # Use gurobi defaults
name: gurobi
crossover: 0
method: 2 # barrier
BarHomogeneous: 1 # Use homogeneous barrier if standard does not converge
BarConvTol: 1.e-5
FeasibilityTol: 1.e-5
OptimalityTol: 1.e-5
Seed: 123
threads: 8
cplex-default:
threads: 4
lpmethod: 4 # barrier
solutiontype: 2 # non basic solution, ie no crossover
barrier.convergetol: 1.e-5
feasopt.tolerance: 1.e-6
cbc-default: {} # Used in CI
glpk-default: {} # Used in CI
mem: 30000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2
walltime: "12:00:00"
walltime:
build_renewable_profiles: '04:00:00'
build_fuel_prices: '00:20:00'
add_demand: '02:00:00'
add_electricity: '04:00:00'
simplify_network: '05:00:00'
cluster_network: '04:00:00'
solve_network: '20:00:00'
# docs :
custom_files:
activate: false
files_path: ''
network_name: ''
Unit |
Values |
Description |
|
|---|---|---|---|
options |
|||
=– operations_only |
bool |
{‘true’,’false’} |
Overrides p_nom_extendible for other configurations and forces solution of operations only simulations. Use with co2 opt limit 1.0. |
=– load_shedding |
bool/float |
{‘true’,’false’, float} |
Add generators with very high marginal cost to simulate load shedding and avoid problem infeasibilities. If load shedding is a float, it denotes the marginal cost in $/kWh. |
=– clip_p_max_pu |
p.u. |
float |
To avoid too small values in the renewables` per-unit availability time series values below this threshold are set to zero. |
=– noisy_costs |
bool |
{‘true’,’false’} |
Add random noise to marginal cost of generators by \(\mathcal{U}(0.009,0,011)\) and capital cost of lines and links by \(\mathcal{U}(0.09,0,11)\). |
=– skip_iterations |
bool |
{‘true’,’false’} |
Skip iterating, do not update impedances of branches. Defaults to true. |
=– rolling_horizon |
bool |
{‘true’,’false’} |
Whether to optimize the network in a rolling horizon manner, where the snapshot range is split into slices of size horizon which are solved consecutively. |
=– seed |
int |
Random seed for increased deterministic behaviour. |
|
=– track_iterations |
bool |
{‘true’,’false’} |
Flag whether to store the intermediate branch capacities and objective function values are recorded for each iteration in |
=– min_iterations |
– |
int |
Minimum number of solving iterations in between which resistance and reactence ( |
=– max_iterations |
– |
int |
Maximum number of solving iterations in between which resistance and reactence ( |
=– transmission_losses |
int |
[0-9] |
Add piecewise linear approximation of transmission losses based on n tangents. Defaults to 0, which means losses are ignored. |
=– linearized_unit_commitment |
bool |
{‘true’,’false’} |
Whether to optimise using the linearized unit commitment formulation. |
=– horizon |
int |
Number of snapshots to consider in each iteration. Defaults to 100. |
|
solver |
|||
=– name |
– |
One of {‘gurobi’, ‘cplex’, ‘cbc’, ‘glpk’, ‘ipopt’}; potentially more possible |
Solver to use for optimisation problems in the workflow; e.g. clustering and linear optimal power flow. |
=– options |
– |
Name of solver_options to use from dictionary below. |
|
solver_options |
dict |
Dictionary of pre-fixed solver options |
|
mem |
MB |
int |
Estimated maximum memory requirement for solving networks. |
plotting#
plotting:
costs_max: 800
costs_threshold: 1
energy_max: 15000.
energy_min: -10000.
energy_threshold: 50.
tech_colors:
"onwind": "#235ebc"
"wind": "#235ebc"
"onshore wind": "#235ebc"
'offwind': "#dd6895"
'offshore wind': "#6895dd"
'offwind-ac': "#6895dd"
'offshore wind ac': "#6895dd"
'offwind-dc': "#74c6f2"
'offshore wind dc': "#74c6f2"
'offwind_floating': "#11a1c1"
"hydro": "#08ad97"
"hydro+PHS": "#08ad97"
"PHS": "#08ad97"
"hydro reservoir": "#08ad97"
'hydroelectricity': '#08ad97'
"ror": "#4adbc8"
"run of river": "#4adbc8"
'solar': "#f9d002"
'solar PV': "#f9d002"
'solar thermal': '#ffef60'
'biomass': '#0c6013'
'solid biomass': '#06540d'
'biogas': '#23932d'
'waste': '#68896b'
'geothermal': '#ba91b1'
"OCGT": "#d35050"
"gas": "#d35050"
"ng": "#d35050"
"natural gas": "#d35050"
"CCGT": "#b20101"
"nuclear": "#ff9000"
"coal": "#707070"
"lignite": "#9e5a01"
"oil": "#262626"
"H2": "#ea048a"
"hydrogen storage": "#ea048a"
"battery": "#b8ea04"
"2hr_battery_storage": "#aee000"
"4hr_battery_storage": "#a4d600"
"6hr_battery_storage": "#9acc00"
"8hr_battery_storage": "#90c200"
"10hr_battery_storage": "#86b800"
"Electric load": "#f9d002"
"electricity": "#f9d002"
"lines": "#70af1d"
"transmission lines": "#70af1d"
"AC-AC": "#70af1d"
"AC line": "#70af1d"
"AC": "#70af1d"
"links": "#8a1caf"
"HVDC links": "#8a1caf"
"DC-DC": "#8a1caf"
"DC link": "#8a1caf"
"DC": "#8a1caf"
"Load": "#2ad55f"
"imports": "#9f2ad5"
"exports": "#B79B48"
"res-elec": "#f9d002"
"res-heat": "#E79CA2"
"res-cool": "#9CE7E2"
"com-elec": "#f9d002"
"com-heat": "#E79CA2"
"com-cool": "#9CE7E2"
"ind-elec": "#f9d002"
"ind-heat": "#E79CA2"
"trn-elec": "#f9d002"
"coal-95CCS": "#4b4b4b"
"coal-99CCS": "#2e2e2e"
"coal-95CC": "#4b4b4b"
"coal-99CC": "#2e2e2e"
"SMR": "#ff5733"
"CCGT-95CCS": "#800000"
"CCGT-95CC": "#800000"
"8hr_PHS": "#069686"
"10hr_PHS": "#058a79"
"12hr_PHS": "#047d6c"
"8hr_PHS_discharger": "#069686"
"10hr_PHS_discharger": "#058a79"
"12hr_PHS_discharger": "#047d6c"
"8hr_PHS_charger": "#069686"
"10hr_PHS_charger": "#058a79"
"12hr_PHS_charger": "#047d6c"
"hydrogen_ct": "#ea048a"
"demand_response": "#8c03fc"
"dac": "#4c004c"
# sector studies only
lpg: "#70217b"
ch4: "#539307"
co2: "#cd7e0d"
res-elec: "#f9d002"
res-total-elec: "#f9d002"
res-urban-elec: "#f9d002"
res-rural-elec: "#f9d002"
res-heat: "#E79CA2"
res-total-heat: "#E79CA2"
res-urban-heat: "#E79CA2"
res-rural-heat: "#E79CA2"
res-cool: "#9CE7E2"
res-total-cool: "#9CE7E2"
res-urban-cool: "#9CE7E2"
res-rural-cool: "#9CE7E2"
com-elec: "#f9d002"
com-total-elec: "#f9d002"
com-urban-elec: "#f9d002"
com-rural-elec: "#f9d002"
com-heat: "#E79CA2"
com-total-heat: "#E79CA2"
com-urban-heat: "#E79CA2"
com-rural-heat: "#E79CA2"
com-cool: "#9CE7E2"
com-total-cool: "#9CE7E2"
com-urban-cool: "#9CE7E2"
com-rural-cool: "#9CE7E2"
ind-elec: "#f9d002"
ind-heat: "#E79CA2"
trn-elec: "#f9d002"
"gas storage": "#f69d09"
"gas pipeline": "#f69d09"
"gas trade": "ae3dc2"
"gas production": "#d35050"
trn-veh: "#0a0100"
trn-veh-lgt: "#0a0100"
trn-veh-med: "#0a0100"
trn-veh-hvy: "#0a0100"
trn-veh-bus: "#0a0100"
trn-elec-veh: "#0a0100"
trn-elec-veh-lgt: "#2BAAD4"
trn-elec-veh-med: "#2FD085"
trn-elec-veh-hvy: "#6DCD32"
trn-elec-veh-bus: "#d3d32c"
trn-lpg: "#0a0100"
trn-lpg-veh: "#0a0100"
trn-lpg-veh-lgt: "#D4552B"
trn-lpg-veh-med: "#D02F7A"
trn-lpg-veh-hvy: "#9232CD"
trn-lpg-veh-bus: "#2C2CD3"
trn-rail: "#0a0100"
trn-rail-psg: "#0a0100"
trn-rail-ship: "#0a0100"
trn-lpg-rail: "#0a0100"
trn-lpg-rail-psg: "#9F9160"
trn-lpg-rail-ship: "#606E9F"
trn-air: "#0a0100"
trn-air-psg: "#0a0100"
trn-lpg-air: "#0a0100"
trn-lpg-air-psg: "#A45B75"
trn-boat: "#0a0100"
trn-boat-ship: "#0a0100"
trn-lpg-boat: "#0a0100"
trn-lpg-boat-ship: "#5BA48A"
res-space-heat: "#F10E1B"
com-space-heat: "#F10E1B"
res-water-heat: "#F10E1B"
com-water-heat: "#F10E1B"
res-rural-cool: "#196CE6"
com-rural-cool: "#196CE6"
res-urban-cool: "#196CE6"
com-urban-cool: "#196CE6"
res-total-cool: "#196CE6"
com-total-cool: "#196CE6"
res-rural-space-heat: "#F10E1B"
com-rural-space-heat: "#F10E1B"
res-urban-space-heat: "#F10E1B"
com-urban-space-heat: "#F10E1B"
res-total-space-heat: "#F10E1B"
com-total-space-heat: "#F10E1B"
res-rural-water-heat: "#E817C3"
com-rural-water-heat: "#E817C3"
res-urban-water-heat: "#E817C3"
com-urban-water-heat: "#E817C3"
res-total-water-heat: "#E817C3"
com-total-water-heat: "#E817C3"
res-rural-air-con: "#3B98C4"
com-rural-air-con: "#3B98C4"
res-urban-air-con: "#3B98C4"
com-urban-air-con: "#3B98C4"
res-total-air-con: "#3B98C4"
com-total-air-con: "#3B98C4"
res-rural-gas-furnace: "#F68D09"
com-rural-gas-furnace: "#F68D09"
res-urban-gas-furnace: "#F68D09"
com-urban-gas-furnace: "#F68D09"
res-total-gas-furnace: "#F68D09"
com-total-gas-furnace: "#F68D09"
res-rural-space-gas-furnace: "#F68D09"
com-rural-space-gas-furnace: "#F68D09"
res-urban-space-gas-furnace: "#F68D09"
com-urban-space-gas-furnace: "#F68D09"
res-total-space-gas-furnace: "#F68D09"
com-total-space-gas-furnace: "#F68D09"
res-rural-oil-furnace: "#006B88"
com-rural-oil-furnace: "#006B88"
res-urban-oil-furnace: "#006B88"
com-urban-oil-furnace: "#006B88"
res-total-oil-furnace: "#006B88"
com-total-oil-furnace: "#006B88"
res-rural-space-oil-furnace: "#006B88"
com-rural-space-oil-furnace: "#006B88"
com-urban-space-oil-furnace: "#006B88"
res-urban-space-oil-furnace: "#006B88"
com-total-space-oil-furnace: "#006B88"
res-total-space-oil-furnace: "#006B88"
res-rural-elec-furnace: "#DCEC13"
com-rural-elec-furnace: "#DCEC13"
res-urban-elec-furnace: "#DCEC13"
com-urban-elec-furnace: "#DCEC13"
res-total-elec-furnace: "#DCEC13"
com-total-elec-furnace: "#DCEC13"
res-rural-space-elec-furnace: "#DCEC13"
com-rural-space-elec-furnace: "#DCEC13"
com-urban-space-elec-furnace: "#DCEC13"
res-urban-space-elec-furnace: "#DCEC13"
com-total-space-elec-furnace: "#DCEC13"
res-total-space-elec-furnace: "#DCEC13"
res-rural-water-gas: "#D87627"
com-rural-water-gas: "#D87627"
res-urban-water-gas: "#D87627"
com-urban-water-gas: "#D87627"
res-total-water-gas: "#D87627"
com-total-water-gas: "#D87627"
res-rural-water-oil: "#774115"
com-rural-water-oil: "#774115"
res-urban-water-oil: "#774115"
com-urban-water-oil: "#774115"
res-total-water-oil: "#774115"
com-total-water-oil: "#774115"
res-rural-water-elec: "#5CDC23"
com-rural-water-elec: "#5CDC23"
res-urban-water-elec: "#5CDC23"
com-urban-water-elec: "#5CDC23"
res-total-water-elec: "#5CDC23"
com-total-water-elec: "#5CDC23"
res-rural-ashp: "#E14C1E"
com-rural-ashp: "#E14C1E"
res-urban-ashp: "#E14C1E"
com-urban-ashp: "#E14C1E"
res-total-ashp: "#E14C1E"
com-total-ashp: "#E14C1E"
res-rural-gshp: "#D926A6"
com-rural-gshp: "#D926A6"
res-urban-gshp: "#D926A6"
com-urban-gshp: "#D926A6"
res-total-gshp: "#D926A6"
com-total-gshp: "#D926A6"
res-rural-space-heat-store: "#3096CF"
com-rural-space-heat-store: "#3096CF"
res-urban-space-heat-store: "#3096CF"
com-urban-space-heat-store: "#3096CF"
res-total-space-heat-store: "#3096CF"
com-total-space-heat-store: "#3096CF"
res-elec-infra: "#9CD926"
com-elec-infra: "#9CD926"
ind-coal-furnace: "#EC13B4"
ind-heat-pump: "#E83E17"
ind-gas-furnace: "#E0AE1F"
ind-elec-infra: "#9CD926"
res-total-elec-dr: "#45ba75"
res-urban-elec-dr: "#45ba75"
res-rural-elec-dr: "#45ba75"
res-total-heat-dr: "#BA458A"
res-urban-heat-dr: "#BA458A"
res-rural-heat-dr: "#BA458A"
res-total-space-heat-dr: "#A55A80"
res-urban-space-heat-dr: "#A55A80"
res-rural-space-heat-dr: "#A55A80"
res-total-water-heat-dr: "#A844BB"
res-urban-water-heat-dr: "#A844BB"
res-rural-water-heat-dr: "#A844BB"
res-total-cool-dr: "#4692B9"
res-urban-cool-dr: "#4692B9"
res-rural-cool-dr: "#4692B9"
com-total-elec-dr: "#45ba75"
com-urban-elec-dr: "#45ba75"
com-rural-elec-dr: "#45ba75"
com-total-heat-dr: "#BA458A"
com-urban-heat-dr: "#BA458A"
com-rural-heat-dr: "#BA458A"
com-total-space-heat-dr: "#A55A80"
com-urban-space-heat-dr: "#A55A80"
com-rural-space-heat-dr: "#A55A80"
com-total-water-heat-dr: "#A844BB"
com-urban-water-heat-dr: "#A844BB"
com-rural-water-heat-dr: "#A844BB"
com-total-cool-dr: "#4692B9"
com-urban-cool-dr: "#4692B9"
com-rural-cool-dr: "#4692B9"
ind-elec-dr: "#45ba75"
ind-heat-dr: "#BA458A"
trn-elec-dr: "#45ba75"
trn-elec-veh-dr: "#45ba75"
nice_names:
OCGT: "Open-Cycle Gas"
CCGT: "Combined-Cycle Gas"
offwind: "Fixed Bottom Offshore Wind"
offwind_floating: "Floating Offshore Wind"
onwind: "Onshore Wind"
solar: "Solar"
PHS: "Pumped Hydro Storage"
hydro: "Reservoir & Dam"
battery: "Battery Storage"
H2: "Hydrogen Storage"
lines: "Transmission Lines"
ror: "Run of River"
Load: "Load Shed"
hydrogen_ct: "Hydrogen Combustion Turbine"
demand_response: "Demand Response"
dac: "Direct Air Capture"
imports: "Electricity Imports"
exports: "Electricity Exports"
# sector studies only
lpg: "Motor Oil"
ch4: "Methane"
co2: "Carbon Dioxide"
res-elec: "Residential Electrical"
res-total-elec: "Residential Electrical"
res-urban-elec: "Residential Urban Electrical"
res-rural-elec: "Residential Rural Electrical"
res-heat: "Residential Heating"
res-total-heat: "Residential Heating"
res-urban-heat: "Residential Urban Heating"
res-rural-heat: "Residential Rural Heating"
res-cool: "Residential Cooling"
res-total-cool: "Residential Cooling"
res-urban-cool: "Residential Urban Cooling"
res-rural-cool: "Residential Rural Cooling"
com-elec: "Commercial Electrical"
com-total-elec: "Commercial Electrical"
com-urban-elec: "Commercial Electrical"
com-rural-elec: "Commercial Electrical"
com-heat: "Commercial Heating"
com-total-heat: "Commercial Heating"
com-urban-heat: "Commercial Urban Heating"
com-rural-heat: "Commercial Rural Heating"
com-cool: "Commercial Cooling"
com-total-cool: "Commercial Cooling"
com-urban-cool: "Commercial Urban Cooling"
com-rural-cool: "Commercial Rural Cooling"
ind-elec: "Industrial Electrical"
ind-heat: "Industrial Heating"
trn-elec: "Transportation Electrical"
"gas storage": "Natural Gas Storage"
"gas pipeline": "Natural Gas Pipeline"
"gas trade": "Natural Gas Trading"
"gas production": "Natural Gas Production"
trn-veh: "Vehicles"
trn-veh-lgt: "Light-Duty Vehicles"
trn-veh-med: "Medium-Duty Vehicles"
trn-veh-hvy: "Heavy-Duty Vehicles"
trn-veh-bus: "Buses"
trn-elec-veh: "Electric Vehicles"
trn-elec-veh-lgt: "Light Duty EV"
trn-elec-veh-med: "Medium Duty EV"
trn-elec-veh-hvy: "Heavy Duty EV"
trn-elec-veh-bus: "Electric Bus"
trn-lpg: "Transportaion Gas"
trn-lpg-veh: "Gas Vehicles"
trn-lpg-veh-lgt: "Light Duty ICE"
trn-lpg-veh-med: "Medium Duty ICE"
trn-lpg-veh-hvy: "Heavy Duty ICE"
trn-lpg-veh-bus: "Gas Bus"
trn-rail: "Rail"
trn-rail-psg: "Passenger Rail"
trn-rail-ship: "Shipping Rail"
trn-lpg-rail: "Rail Oil"
trn-lpg-rail-psg: "Passenger Rail Oil"
trn-lpg-rail-ship: "Shipping Rail Oil"
trn-air: "Airplane"
trn-air-psg: "Passenger Airplane"
trn-lpg-air: "Airplane Gas"
trn-lpg-air-psg: "Passenger Air Gas"
trn-boat: "Marine Shipping"
trn-boat-ship: "Marine Shipping"
trn-lpg-boat: "Domestic Marine Shipping Gas"
trn-lpg-boat-ship: "Domestic Marine Shipping Gas"
res-space-heat: "Space Heat"
com-space-heat: "Space Heat"
res-water-heat: "Water Heat"
com-water-heat: "Water Heat"
res-rural-cool: "Cool"
com-rural-cool: "Cool"
res-urban-cool: "Cool"
com-urban-cool: "Cool"
res-total-cool: "Cool"
com-total-cool: "Cool"
res-rural-space-heat: "Space Heat"
com-rural-space-heat: "Space Heat"
res-urban-space-heat: "Space Heat"
com-urban-space-heat: "Space Heat"
res-total-space-heat: "Space Heat"
com-total-space-heat: "Space Heat"
res-rural-water-heat: "Water Heat"
com-rural-water-heat: "Water Heat"
res-urban-water-heat: "Water Heat"
com-urban-water-heat: "Water Heat"
res-total-water-heat: "Water Heat"
com-total-water-heat: "Water Heat"
res-rural-air-con: "Air Conditioner"
com-rural-air-con: "Air Conditioner"
res-urban-air-con: "Air Conditioner"
com-urban-air-con: "Air Conditioner"
res-total-air-con: "Air Conditioner"
com-total-air-con: "Air Conditioner"
res-rural-gas-furnace: "Gas Furnace"
com-rural-gas-furnace: "Gas Furnace"
res-urban-gas-furnace: "Gas Furnace"
com-urban-gas-furnace: "Gas Furnace"
res-total-gas-furnace: "Gas Furnace"
com-total-gas-furnace: "Gas Furnace"
res-rural-space-gas-furnace: "Gas Furnace"
com-rural-space-gas-furnace: "Gas Furnace"
res-urban-space-gas-furnace: "Gas Furnace"
com-urban-space-gas-furnace: "Gas Furnace"
res-total-space-gas-furnace: "Gas Furnace"
com-total-space-gas-furnace: "Gas Furnace"
res-rural-oil-furnace: "Oil Furnace"
com-rural-oil-furnace: "Oil Furnace"
res-urban-oil-furnace: "Oil Furnace"
com-urban-oil-furnace: "Oil Furnace"
res-total-oil-furnace: "Oil Furnace"
com-total-oil-furnace: "Oil Furnace"
res-rural-space-oil-furnace: "Oil Furnace"
com-rural-space-oil-furnace: "Oil Furnace"
com-urban-space-oil-furnace: "Oil Furnace"
res-urban-space-oil-furnace: "Oil Furnace"
com-total-space-oil-furnace: "Oil Furnace"
res-total-space-oil-furnace: "Oil Furnace"
res-rural-elec-furnace: "Electric Furnace"
com-rural-elec-furnace: "Electric Furnace"
res-urban-elec-furnace: "Electric Furnace"
com-urban-elec-furnace: "Electric Furnace"
res-total-elec-furnace: "Electric Furnace"
com-total-elec-furnace: "Electric Furnace"
res-rural-space-elec-furnace: "Electric Furnace"
com-rural-space-elec-furnace: "Electric Furnace"
com-urban-space-elec-furnace: "Electric Furnace"
res-urban-space-elec-furnace: "Electric Furnace"
com-total-space-elec-furnace: "Electric Furnace"
res-total-space-elec-furnace: "Electric Furnace"
res-rural-water-gas: "Gas Water Heater"
com-rural-water-gas: "Gas Water Heater"
res-urban-water-gas: "Gas Water Heater"
com-urban-water-gas: "Gas Water Heater"
res-total-water-gas: "Gas Water Heater"
com-total-water-gas: "Gas Water Heater"
res-rural-water-oil: "Oil Water Heater"
com-rural-water-oil: "Oil Water Heater"
res-urban-water-oil: "Oil Water Heater"
com-urban-water-oil: "Oil Water Heater"
res-total-water-oil: "Oil Water Heater"
com-total-water-oil: "Oil Water Heater"
res-rural-water-elec: "Electric Water Heater"
com-rural-water-elec: "Electric Water Heater"
res-urban-water-elec: "Electric Water Heater"
com-urban-water-elec: "Electric Water Heater"
res-total-water-elec: "Electric Water Heater"
com-total-water-elec: "Electric Water Heater"
res-rural-ashp: "Air Source Heat Pump"
com-rural-ashp: "Air Source Heat Pump"
res-urban-ashp: "Air Source Heat Pump"
com-urban-ashp: "Air Source Heat Pump"
res-total-ashp: "Air Source Heat Pump"
com-total-ashp: "Air Source Heat Pump"
res-rural-gshp: "Ground Source Heat Pump"
com-rural-gshp: "Ground Source Heat Pump"
res-urban-gshp: "Ground Source Heat Pump"
com-urban-gshp: "Ground Source Heat Pump"
res-total-gshp: "Ground Source Heat Pump"
com-total-gshp: "Ground Source Heat Pump"
res-rural-space-heat-store: "Building Insulation"
com-rural-space-heat-store: "Building Insulation"
res-urban-space-heat-store: "Building Insulation"
com-urban-space-heat-store: "Building Insulation"
res-total-space-heat-store: "Building Insulation"
com-total-space-heat-store: "Building Insulation"
res-elec-infra: "Electric Distribution"
com-elec-infra: "Electric Distribution"
ind-coal-furnace: "Coal furnace"
ind-heat-pump: "Heat Pump"
ind-gas-furnace: "Gas Furnace"
ind-elec-infra: "Electric Distribution"
res-total-elec-dr: Electric Demand Response
res-urban-elec-dr: Urban Electric Demand Response
res-rural-elec-dr: Rural Electric Demand Response
res-total-heat-dr: Heating Demand Response
res-urban-heat-dr: Urban Heating Demand Response
res-rural-heat-dr: Rural Heating Demand Response
res-total-space-heat-dr: Space Heating Demand Response
res-urban-space-heat-dr: Urban Space Heating Demand Response
res-rural-space-heat-dr: Rural Space Heating Demand Response
res-total-water-heat-dr: Water Heating Demand Response
res-urban-water-heat-dr: Urban Water Heating Demand Response
res-rural-water-heat-dr: Rural Water Heating Demand Response
res-total-cool-dr: Cooling Demand Response
res-urban-cool-dr: Urban Cooling Demand Response
res-rural-cool-dr: Rural Cooling Demand Response
com-total-elec-dr: Electric Demand Response
com-urban-elec-dr: Urban Electric Demand Response
com-rural-elec-dr: Rural Electric Demand Response
com-total-heat-dr: Heating Demand Response
com-urban-heat-dr: Urban Heating Demand Response
com-rural-heat-dr: Rural Heating Demand Response
com-total-space-heat-dr: Space Heating Demand Response
com-urban-space-heat-dr: Urban Space Heating Demand Response
com-rural-space-heat-dr: Rural Space Heating Demand Response
com-total-water-heat-dr: Water Heating Demand Response
com-urban-water-heat-dr: Urban Water Heating Demand Response
com-rural-water-heat-dr: Rural Water Heating Demand Response
com-total-cool-dr: Cooling Demand Response
com-urban-cool-dr: Urban Cooling Demand Response
com-rural-cool-dr: Rural Cooling Demand Response
ind-elec-dr: Electric Demand Response
ind-heat-dr: Heating Demand Response
trn-elec-dr: Electric Demand Response
trn-elec-veh-dr: Electric Demand Response
Unit |
Values |
Description |
|
|---|---|---|---|
map |
|||
– boundaries |
° |
[x1,x2,y1,y2] |
Boundaries of the map plots in degrees latitude (y) and longitude (x) |
costs_max |
bn $o |
float |
Upper y-axis limit in cost bar plots. |
costs_threshold |
bn $o |
float |
Threshold below which technologies will not be shown in cost bar plots. |
energy_max |
TWh |
float |
Upper y-axis limit in energy bar plots. |
energy_min |
TWh |
float |
Lower y-axis limit in energy bar plots. |
energy_threshold |
TWh |
float |
Threshold below which technologies will not be shown in energy bar plots. |
tech_colors |
– |
carrier -> HEX colour code |
Mapping from network carrier to a colour ([HEX colour code](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet)). |
nice_names |
– |
str -> str |
Mapping from network carrier to a more readable name. |