The Calliope model and backend objects¶
In this tutorial, we use the urban scale example model to go into a bit more detail on the public and non-public properties of the calliope.Model
and calliope.Model.backend
objects.
from pathlib import Path
import calliope
calliope.set_log_verbosity("INFO", include_solver_output=False)
Model input¶
# Initialise the model with the Urban Scale example model
m = calliope.examples.urban_scale()
[2024-01-27 14:23:52] INFO Model: initialising
[2024-01-27 14:23:52] INFO Model: preprocessing stage 1 (model_run)
[2024-01-27 14:23:56] INFO Model: preprocessing stage 2 (model_data)
[2024-01-27 14:23:56] INFO Model: preprocessing complete
# Get information on the model
print(m.info())
Model name: Urban-scale example model Model size: {'costs': 1, 'techs': 12, 'nodes': 4, 'carriers': 3, 'timesteps': 48} (30 valid node:tech:carrier combinations)
Model definition dictionary¶
m._model_def_dict
is a python dictionary that holds all the data from the model definition YAML files, restructured into one dictionary.
The underscore before the method indicates that it defaults to being hidden (i.e. you wouldn't see it by trying a tab auto-complete and it isn't documented)
m._model_def_dict.keys()
dict_keys(['nodes', 'parameters', 'tech_groups', 'techs'])
techs
hold only the information about a technology that is specific to that node
m._model_def_dict["techs"]["pv"]
{'area_use_max': 1500, 'area_use_per_flow_cap': 7, 'base_tech': 'supply', 'carrier_export': 'electricity', 'carrier_out': 'electricity', 'color': '#F9D956', 'cost_flow_cap': {'data': 1350, 'dims': 'costs', 'index': 'monetary'}, 'flow_cap_max': 250, 'flow_out_parasitic_eff': 0.85, 'inherit': 'interest_rate_setter', 'lifetime': 25, 'name': 'Solar photovoltaic power', 'source_unit': 'per_area'}
nodes
hold only the information about a technology that is specific to that node
m._model_def_dict["nodes"]["X2"]["techs"]["pv"]
{'cost_export': {'data': -0.0491, 'dims': 'costs', 'index': 'monetary'}, 'cost_flow_out': {'data': -0.0203, 'dims': 'costs', 'index': 'monetary'}}
Model data¶
m._model_data
is an xarray Dataset.
Like _model_def_dict
it is a hidden prperty of the Model as you are expected to access the data via the public property inputs
m.inputs
<xarray.Dataset> Dimensions: (costs: 1, techs: 12, nodes: 4, carriers: 3, timesteps: 48) Coordinates: * costs (costs) object 'monetary' * techs (techs) object 'N1_to_X2' ... 'supply_grid_po... * carriers (carriers) object 'electricity' 'gas' 'heat' * nodes (nodes) object 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 2005-07-01 ... 200... Data variables: (12/35) objective_cost_weights (costs) float64 1.0 bigM float64 1e+06 base_tech (techs) object 'transmission' ... 'supply' carrier_in (nodes, techs, carriers) float64 nan nan ... nan carrier_out (nodes, techs, carriers) float64 nan nan ... nan color (techs) object '#823739' '#823739' ... '#C5ABE3' ... ... available_area (nodes) float64 nan 500.0 1.3e+03 900.0 source_use_equals (techs, timesteps) float64 nan nan ... nan nan sink_use_equals (timesteps, techs, nodes) float64 nan ... nan definition_matrix (nodes, techs, carriers) bool False ... False timestep_resolution (timesteps) float64 1.0 1.0 1.0 ... 1.0 1.0 1.0 timestep_weights (timesteps) float64 1.0 1.0 1.0 ... 1.0 1.0 1.0 Attributes: calliope_version_defined: 0.7.0 calliope_version_initialised: 0.7.0.dev2 applied_overrides: scenario: None defaults: {'available_area': inf, 'bigM': 1000000000... allow_operate_mode: 1 config: {'build': {'backend': 'pyomo', 'ensure_fea... applied_custom_math: ['custom_math.yaml'] math: {'constraints': {'flow_capacity_per_storag... name: Urban-scale example model
- costs: 1
- techs: 12
- nodes: 4
- carriers: 3
- timesteps: 48
- costs(costs)object'monetary'
array(['monetary'], dtype=object)
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
array(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], dtype=object)
- nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
array(['2005-07-01T00:00:00.000000000', '2005-07-01T01:00:00.000000000', '2005-07-01T02:00:00.000000000', '2005-07-01T03:00:00.000000000', '2005-07-01T04:00:00.000000000', '2005-07-01T05:00:00.000000000', '2005-07-01T06:00:00.000000000', '2005-07-01T07:00:00.000000000', '2005-07-01T08:00:00.000000000', '2005-07-01T09:00:00.000000000', '2005-07-01T10:00:00.000000000', '2005-07-01T11:00:00.000000000', '2005-07-01T12:00:00.000000000', '2005-07-01T13:00:00.000000000', '2005-07-01T14:00:00.000000000', '2005-07-01T15:00:00.000000000', '2005-07-01T16:00:00.000000000', '2005-07-01T17:00:00.000000000', '2005-07-01T18:00:00.000000000', '2005-07-01T19:00:00.000000000', '2005-07-01T20:00:00.000000000', '2005-07-01T21:00:00.000000000', '2005-07-01T22:00:00.000000000', '2005-07-01T23:00:00.000000000', '2005-07-02T00:00:00.000000000', '2005-07-02T01:00:00.000000000', '2005-07-02T02:00:00.000000000', '2005-07-02T03:00:00.000000000', '2005-07-02T04:00:00.000000000', '2005-07-02T05:00:00.000000000', '2005-07-02T06:00:00.000000000', '2005-07-02T07:00:00.000000000', '2005-07-02T08:00:00.000000000', '2005-07-02T09:00:00.000000000', '2005-07-02T10:00:00.000000000', '2005-07-02T11:00:00.000000000', '2005-07-02T12:00:00.000000000', '2005-07-02T13:00:00.000000000', '2005-07-02T14:00:00.000000000', '2005-07-02T15:00:00.000000000', '2005-07-02T16:00:00.000000000', '2005-07-02T17:00:00.000000000', '2005-07-02T18:00:00.000000000', '2005-07-02T19:00:00.000000000', '2005-07-02T20:00:00.000000000', '2005-07-02T21:00:00.000000000', '2005-07-02T22:00:00.000000000', '2005-07-02T23:00:00.000000000'], dtype='datetime64[ns]')
- objective_cost_weights(costs)float641.0
- is_result :
- False
- default :
- 1
array([1.])
- bigM()float641e+06
- is_result :
- False
- default :
- 1000000000.0
array(1000000.)
- base_tech(techs)object'transmission' ... 'supply'
- is_result :
- False
array(['transmission', 'transmission', 'transmission', 'transmission', 'transmission', 'conversion', 'conversion', 'demand', 'demand', 'supply', 'supply', 'supply'], dtype=object)
- carrier_in(nodes, techs, carriers)float64nan nan 1.0 nan ... nan nan nan nan
- is_result :
- False
array([[[nan, nan, 1.], [nan, nan, 1.], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, 1.], [ 1., nan, nan], [ 1., nan, nan], [nan, nan, nan], [nan, 1., nan], ... [nan, 1., nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, 1., nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]]])
- carrier_out(nodes, techs, carriers)float64nan nan 1.0 nan ... nan nan nan nan
- is_result :
- False
array([[[nan, nan, 1.], [nan, nan, 1.], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, 1.], [ 1., nan, nan], [ 1., nan, nan], [nan, nan, nan], [ 1., nan, 1.], ... [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, 1., nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, 1., nan], [nan, nan, nan]]])
- color(techs)object'#823739' '#823739' ... '#C5ABE3'
- is_result :
- False
- default :
- nan
array(['#823739', '#823739', '#823739', '#6783E3', '#6783E3', '#8E2999', '#E4AB97', '#072486', '#660507', '#F9D956', '#C98AAD', '#C5ABE3'], dtype=object)
- cost_flow_cap_per_distance(techs, costs)float640.3 0.3 0.3 0.01 ... nan nan nan
- is_result :
- False
- default :
- 0
array([[0.3 ], [0.3 ], [0.3 ], [0.01], [0.01], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]])
- cost_interest_rate(techs, costs)float640.1 0.1 0.1 0.1 ... nan 0.1 0.1 0.1
- is_result :
- False
- default :
- 0
array([[0.1], [0.1], [0.1], [0.1], [0.1], [0.1], [0.1], [nan], [nan], [0.1], [0.1], [0.1]])
- distance(techs)float643.0 4.0 3.0 10.0 ... nan nan nan
- is_result :
- False
- default :
- nan
array([ 3., 4., 3., 10., 5., nan, nan, nan, nan, nan, nan, nan])
- flow_cap_max(techs, carriers, nodes)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- inf
array([[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [2000., nan, 2000., nan]], [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [2000., nan, nan, 2000.]], [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [2000., 2000., nan, nan]], [[ nan, 2000., 2000., nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, 2000., nan, 2000.], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], ... [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, 250., 250., 50.], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, nan, nan, nan], [ nan, 2000., 2000., 2000.], [ nan, nan, nan, nan]], [[ nan, 2000., nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]])
- flow_out_eff_per_distance(techs)float640.975 0.975 0.975 ... nan nan nan
- is_result :
- False
- default :
- 1.0
array([0.975, 0.975, 0.975, nan, nan, nan, nan, nan, nan, nan, nan, nan])
- lifetime(techs)float6425.0 25.0 25.0 ... 25.0 25.0 25.0
- is_result :
- False
- default :
- inf
array([25., 25., 25., 25., 25., 25., 25., nan, nan, 25., 25., 25.])
- name(techs)object'District heat distribution' ......
- is_result :
- False
- default :
- nan
array(['District heat distribution', 'District heat distribution', 'District heat distribution', 'Electrical power distribution', 'Electrical power distribution', 'Natural gas boiler', 'Combined heat and power', 'Electrical demand', 'Heat demand', 'Solar photovoltaic power', 'Natural gas import', 'National grid import'], dtype=object)
- techs_inheritance(techs)object'interest_rate_setter,heat_pipes...
- is_result :
- False
array(['interest_rate_setter,heat_pipes', 'interest_rate_setter,heat_pipes', 'interest_rate_setter,heat_pipes', 'interest_rate_setter,power_lines', 'interest_rate_setter,power_lines', 'interest_rate_setter', 'interest_rate_setter', nan, nan, 'interest_rate_setter', 'interest_rate_setter', 'interest_rate_setter'], dtype=object)
- carrier_export(techs, carriers)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, nan], [nan, nan, nan]])
- cost_flow_cap(nodes, techs, costs, carriers)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 0
array([[[[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], ... [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, 7.80e+01]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[1.35e+03, nan, nan]], [[ nan, 1.00e+00, nan]], [[ nan, nan, nan]]]])
- cost_flow_out(techs, costs, carriers, nodes)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 0
array([[[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], ... [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, -0.0203, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]]])
- flow_out_eff(techs, carriers)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 1.0
array([[ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [0.98 , nan, nan], [0.98 , nan, nan], [ nan, 0.85 , 0.85 ], [0.405, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan]])
- heat_to_power_ratio(techs)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
array([nan, nan, nan, nan, nan, nan, 0.8, nan, nan, nan, nan, nan])
- area_use_max(techs)float64nan nan nan nan ... 1.5e+03 nan nan
- is_result :
- False
- default :
- inf
array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, 1500., nan, nan])
- area_use_per_flow_cap(techs)float64nan nan nan nan ... nan 7.0 nan nan
- is_result :
- False
- default :
- nan
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, 7., nan, nan])
- flow_out_parasitic_eff(techs)float64nan nan nan nan ... 0.85 nan nan
- is_result :
- False
- default :
- 1.0
array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, 0.85, nan, nan])
- source_unit(techs)objectnan nan nan ... 'per_area' nan nan
- is_result :
- False
- default :
- absolute
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, 'per_area', nan, nan], dtype=object)
- cost_flow_in(techs, costs)float64nan nan nan nan ... nan 0.025 0.1
- is_result :
- False
- default :
- 0
array([[ nan], [ nan], [ nan], [ nan], [ nan], [0.004], [ nan], [ nan], [ nan], [ nan], [0.025], [0.1 ]])
- source_use_max(techs)float64nan nan nan nan ... nan nan inf inf
- is_result :
- False
- default :
- inf
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, inf, inf])
- cost_export(nodes, techs, costs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 0
array([[[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], ..., [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ... [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], ..., [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]]]])
- cost_om_annual(nodes, techs, costs)float64nan nan nan nan ... -80.5 nan nan
- is_result :
- False
- default :
- 0
array([[[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], ... [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [-80.5], [ nan], [ nan]]])
- latitude(nodes)float6451.45 51.46 51.47 51.43
- is_result :
- False
array([51.4450766, 51.4596158, 51.4652373, 51.4287016])
- longitude(nodes)float64-0.1247 -0.1613 -0.1142 -0.1311
- is_result :
- False
array([-0.1247183, -0.1613446, -0.1141548, -0.1310635])
- available_area(nodes)float64nan 500.0 1.3e+03 900.0
- is_result :
- False
- default :
- inf
array([ nan, 500., 1300., 900.])
- source_use_equals(techs, timesteps)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
array([[ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], ... [ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]])
- sink_use_equals(timesteps, techs, nodes)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., ... ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]])
- definition_matrix(nodes, techs, carriers)boolFalse False True ... False False
- is_result :
- False
array([[[False, False, True], [False, False, True], [False, False, True], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False]], [[False, False, False], [False, False, False], [False, False, True], [ True, False, False], [ True, False, False], [False, False, False], [ True, True, True], ... [False, True, True], [False, False, False], [ True, False, False], [False, False, True], [ True, False, False], [False, True, False], [False, False, False]], [[False, False, False], [False, False, True], [False, False, False], [False, False, False], [ True, False, False], [False, True, True], [False, False, False], [ True, False, False], [False, False, True], [ True, False, False], [False, True, False], [False, False, False]]])
- timestep_resolution(timesteps)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
- is_result :
- False
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
- timestep_weights(timesteps)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
- is_result :
- False
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- timestepsPandasIndex
PandasIndex(DatetimeIndex(['2005-07-01 00:00:00', '2005-07-01 01:00:00', '2005-07-01 02:00:00', '2005-07-01 03:00:00', '2005-07-01 04:00:00', '2005-07-01 05:00:00', '2005-07-01 06:00:00', '2005-07-01 07:00:00', '2005-07-01 08:00:00', '2005-07-01 09:00:00', '2005-07-01 10:00:00', '2005-07-01 11:00:00', '2005-07-01 12:00:00', '2005-07-01 13:00:00', '2005-07-01 14:00:00', '2005-07-01 15:00:00', '2005-07-01 16:00:00', '2005-07-01 17:00:00', '2005-07-01 18:00:00', '2005-07-01 19:00:00', '2005-07-01 20:00:00', '2005-07-01 21:00:00', '2005-07-01 22:00:00', '2005-07-01 23:00:00', '2005-07-02 00:00:00', '2005-07-02 01:00:00', '2005-07-02 02:00:00', '2005-07-02 03:00:00', '2005-07-02 04:00:00', '2005-07-02 05:00:00', '2005-07-02 06:00:00', '2005-07-02 07:00:00', '2005-07-02 08:00:00', '2005-07-02 09:00:00', '2005-07-02 10:00:00', '2005-07-02 11:00:00', '2005-07-02 12:00:00', '2005-07-02 13:00:00', '2005-07-02 14:00:00', '2005-07-02 15:00:00', '2005-07-02 16:00:00', '2005-07-02 17:00:00', '2005-07-02 18:00:00', '2005-07-02 19:00:00', '2005-07-02 20:00:00', '2005-07-02 21:00:00', '2005-07-02 22:00:00', '2005-07-02 23:00:00'], dtype='datetime64[ns]', name='timesteps', freq=None))
- calliope_version_defined :
- 0.7.0
- calliope_version_initialised :
- 0.7.0.dev2
- applied_overrides :
- scenario :
- None
- defaults :
- {'available_area': inf, 'bigM': 1000000000.0, 'objective_cost_weights': 1, 'area_use': inf, 'area_use_max': inf, 'area_use_min': 0, 'area_use_per_flow_cap': nan, 'cap_method': 'continuous', 'color': nan, 'cost_area_use': 0, 'cost_depreciation_rate': 1, 'cost_export': 0, 'cost_flow_cap': 0, 'cost_flow_cap_per_distance': 0, 'cost_flow_in': 0, 'cost_flow_out': 0, 'cost_interest_rate': 0, 'cost_om_annual': 0, 'cost_om_annual_investment_fraction': 0, 'cost_purchase': 0, 'cost_purchase_per_distance': 0, 'cost_source_cap': 0, 'cost_storage_cap': 0, 'cyclic_storage': True, 'distance': nan, 'export_max': inf, 'flow_cap': inf, 'flow_cap_max': inf, 'flow_cap_max_systemwide': inf, 'flow_cap_min': 0, 'flow_cap_min_systemwide': 0, 'flow_cap_per_storage_cap_max': inf, 'flow_cap_per_storage_cap_min': 0, 'flow_cap_per_unit': nan, 'flow_in_eff': 1.0, 'flow_in_eff_per_distance': 1.0, 'flow_out_eff': 1.0, 'flow_out_eff_per_distance': 1.0, 'flow_out_min_relative': 0, 'flow_out_parasitic_eff': 1.0, 'flow_ramping': 1.0, 'force_async_flow': False, 'include_storage': False, 'integer_dispatch': False, 'lifetime': inf, 'name': nan, 'one_way': False, 'purchased_units': inf, 'purchased_units_max': inf, 'purchased_units_max_systemwide': inf, 'purchased_units_min': 0, 'purchased_units_min_systemwide': 0, 'sink_unit': 'absolute', 'sink_use_equals': nan, 'sink_use_max': inf, 'sink_use_min': 0, 'source_cap': inf, 'source_cap_equals_flow_cap': False, 'source_cap_max': inf, 'source_cap_min': 0, 'source_eff': 1.0, 'source_unit': 'absolute', 'source_use_equals': nan, 'source_use_max': inf, 'source_use_min': 0, 'storage_cap': inf, 'storage_cap_max': inf, 'storage_cap_min': 0, 'storage_cap_per_unit': nan, 'storage_discharge_depth': 0, 'storage_initial': 0, 'storage_loss': 0}
- allow_operate_mode :
- 1
- config :
- {'build': {'backend': 'pyomo', 'ensure_feasibility': True, 'mode': 'plan', 'objective': 'min_cost_optimisation', 'operate_use_cap_results': False}, 'solve': {'save_logs': None, 'solver': 'cbc', 'solver_io': None, 'solver_options': None, 'spores_number': 3, 'spores_save_per_spore': False, 'spores_score_cost_class': 'spores_score', 'spores_skip_cost_op': False, 'zero_threshold': 1e-10}}
- applied_custom_math :
- ['custom_math.yaml']
- math :
- {'constraints': {'flow_capacity_per_storage_capacity_min': {'description': 'Set the lower bound of storage flow capacity relative to its storage capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage_cap AND flow_cap_per_storage_cap_min', 'equations': [{'expression': 'flow_cap >= storage_cap * flow_cap_per_storage_cap_min'}]}, 'flow_capacity_per_storage_capacity_max': {'description': 'Set the upper bound of storage flow capacity relative to its storage capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage_cap AND flow_cap_per_storage_cap_max', 'equations': [{'expression': 'flow_cap <= storage_cap * flow_cap_per_storage_cap_max'}]}, 'source_capacity_equals_flow_capacity': {'description': "Set a `supply` technology's flow capacity to equal its source capacity.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'source_cap AND source_cap_equals_flow_cap=True', 'equations': [{'expression': 'source_cap == flow_cap'}]}, 'force_zero_area_use': {'description': "Set a technology's area use to zero if its flow capacity upper bound is zero.", 'foreach': ['nodes', 'techs'], 'where': 'area_use AND flow_cap_max=0', 'equations': [{'expression': 'area_use == 0'}]}, 'area_use_per_flow_capacity': {'description': "Set a fixed relationship between a technology's flow capacity and its area use.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'area_use AND area_use_per_flow_cap', 'equations': [{'expression': 'area_use == flow_cap * area_use_per_flow_cap'}]}, 'area_use_capacity_per_loc': {'description': 'Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.', 'foreach': ['nodes'], 'where': 'area_use AND available_area', 'equations': [{'expression': 'sum(area_use, over=techs) <= available_area'}]}, 'flow_capacity_systemwide_max': {'description': 'Set an upper bound on flow capacity of a technology across all nodes in which the technology exists.', 'foreach': ['techs', 'carriers'], 'where': 'flow_cap_max_systemwide', 'equations': [{'expression': 'sum(flow_cap, over=nodes) <= flow_cap_max_systemwide'}]}, 'flow_capacity_systemwide_min': {'description': 'Set a lower bound on flow capacity of a technology across all nodes in which the technology exists.', 'foreach': ['techs', 'carriers'], 'where': 'flow_cap_min_systemwide', 'equations': [{'expression': 'sum(flow_cap, over=nodes) >= flow_cap_min_systemwide'}]}, 'balance_conversion': {'description': "Fix the relationship between a `conversion` technology's outflow and consumption.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'base_tech=conversion AND NOT include_storage=true', 'equations': [{'where': 'NOT [chp] in techs', 'expression': 'sum(flow_out_inc_eff, over=carriers) == sum(flow_in_inc_eff, over=carriers)'}, {'where': '[chp] in techs', 'expression': 'flow_out_inc_eff[carriers=electricity] == sum(flow_in_inc_eff, over=carriers)'}]}, 'flow_out_max': {'description': "Set the upper bound of a technology's outflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_out AND NOT operating_units', 'equations': [{'expression': 'flow_out <= flow_cap * timestep_resolution * flow_out_parasitic_eff'}]}, 'flow_out_min': {'description': "Set the lower bound of a technology's outflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out_min_relative AND NOT operating_units', 'equations': [{'expression': 'flow_out >= flow_cap * timestep_resolution * flow_out_min_relative'}]}, 'flow_in_max': {'description': "Set the upper bound of a technology's inflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_in AND NOT operating_units', 'equations': [{'expression': 'flow_in <= flow_cap * timestep_resolution'}]}, 'source_max': {'description': "Set the upper bound of a `supply` technology's source consumption.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_cap', 'equations': [{'expression': 'source_use <= timestep_resolution * source_cap'}]}, 'storage_max': {'description': 'Set the upper bound of the amount of carrier a technology can store.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'storage', 'equations': [{'expression': 'storage <= storage_cap'}]}, 'storage_discharge_depth_limit': {'description': 'Set the lower bound of the stored carrier a technology must keep in reserve at all times.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'storage AND storage_discharge_depth', 'equations': [{'expression': 'storage - storage_discharge_depth * storage_cap >= 0'}]}, 'system_balance': {'description': 'Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.', 'foreach': ['nodes', 'carriers', 'timesteps'], 'equations': [{'expression': 'sum(flow_out, over=techs) - sum(flow_in, over=techs) - $flow_export + $unmet_demand_and_unused_supply == 0'}], 'sub_expressions': {'flow_export': [{'where': 'any(carrier_export, over=techs)', 'expression': 'sum(flow_export, over=techs)'}, {'where': 'NOT any(carrier_export, over=techs)', 'expression': '0'}], 'unmet_demand_and_unused_supply': [{'where': 'config.ensure_feasibility=True', 'expression': 'unmet_demand + unused_supply'}, {'where': 'NOT config.ensure_feasibility=True', 'expression': '0'}]}}, 'balance_demand': {'description': 'Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'base_tech=demand', 'equations': [{'where': 'sink_use_equals', 'expression': 'flow_in_inc_eff == sink_use_equals * $sink_scaler'}, {'where': 'NOT sink_use_equals AND sink_use_max', 'expression': 'flow_in_inc_eff <= sink_use_max * $sink_scaler'}], 'sub_expressions': {'sink_scaler': [{'where': 'sink_unit=per_area', 'expression': 'area_use'}, {'where': 'sink_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'sink_unit=absolute', 'expression': '1'}]}}, 'balance_demand_min_use': {'description': 'Set the lower bound on the quantity of flow a `demand` technology must dump to its sink in each timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'sink_use_min AND NOT sink_use_equals AND base_tech=demand', 'equations': [{'expression': 'flow_in_inc_eff >= sink_use_min * $sink_scaler'}], 'sub_expressions': {'sink_scaler': [{'where': 'sink_unit=per_area', 'expression': 'area_use'}, {'where': 'sink_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'sink_unit=absolute', 'expression': '1'}]}}, 'balance_supply_no_storage': {'description': 'Fix the outflow of a `supply` technology to its consumption of the available source.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'base_tech=supply AND NOT include_storage=True', 'equations': [{'expression': 'flow_out_inc_eff == source_use * source_eff'}]}, 'balance_supply_with_storage': {'description': 'Fix the outflow of a `supply` technology to its consumption of the available source, with a storage buffer to temporally offset the outflow from source consumption.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'storage AND base_tech=supply', 'equations': [{'expression': 'storage == $storage_previous_step + source_use * source_eff - flow_out_inc_eff'}], 'sub_expressions': {'storage_previous_step': [{'where': 'timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True', 'expression': 'storage_initial * storage_cap'}, {'where': '(\n (timesteps=get_val_at_index(timesteps=0) AND cyclic_storage=True)\n OR NOT timesteps=get_val_at_index(timesteps=0)\n) AND NOT lookup_cluster_first_timestep=True', 'expression': '(1 - storage_loss) ** roll(timestep_resolution, timesteps=1) * roll(storage, timesteps=1)'}, {'where': 'lookup_cluster_first_timestep=True AND NOT (timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True)', 'expression': '(1 - storage_loss) ** select_from_lookup_arrays(timestep_resolution, timesteps=lookup_cluster_last_timestep) * select_from_lookup_arrays(storage, timesteps=lookup_cluster_last_timestep)'}]}}, 'source_availability_supply': {'description': "Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_use AND (source_use_equals OR source_use_max)', 'equations': [{'where': 'source_use_equals', 'expression': 'source_use == source_use_equals * $source_scaler'}, {'where': 'NOT source_use_equals AND source_use_max', 'expression': 'source_use <= source_use_max * $source_scaler'}], 'sub_expressions': {'source_scaler': [{'where': 'source_unit=per_area', 'expression': 'area_use'}, {'where': 'source_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'source_unit=absolute', 'expression': '1'}]}}, 'balance_supply_min_use': {'description': 'Set the lower bound on the quantity of its source a `supply` technology must use in each timestep.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_use_min AND NOT source_use_equals AND base_tech=supply', 'equations': [{'expression': 'source_use >= source_use_min * $source_scaler'}], 'sub_expressions': {'source_scaler': [{'where': 'source_unit=per_area', 'expression': 'area_use'}, {'where': 'source_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'source_unit=absolute', 'expression': '1'}]}}, 'balance_storage': {'description': 'Fix the quantity of carrier stored in a `storage` technology at the end of each timestep based on the net flow of carrier charged and discharged and the quantity of carrier stored at the start of the timestep.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': '(include_storage=true or base_tech=storage) AND NOT (base_tech=supply OR base_tech=demand)', 'equations': [{'expression': 'storage == $storage_previous_step -\n sum(flow_out_inc_eff, over=carriers) + sum(flow_in_inc_eff, over=carriers)'}], 'sub_expressions': {'storage_previous_step': [{'where': 'timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True', 'expression': 'storage_initial * storage_cap'}, {'where': '(\n (timesteps=get_val_at_index(timesteps=0) AND cyclic_storage=True)\n OR NOT timesteps=get_val_at_index(timesteps=0)\n) AND NOT lookup_cluster_first_timestep=True', 'expression': '(1 - storage_loss) ** roll(timestep_resolution, timesteps=1) * roll(storage, timesteps=1)'}, {'where': 'lookup_cluster_first_timestep=True AND NOT (timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True)', 'expression': '(1 - storage_loss) ** select_from_lookup_arrays(timestep_resolution, timesteps=lookup_cluster_last_timestep) * select_from_lookup_arrays(storage, timesteps=lookup_cluster_last_timestep)'}]}}, 'set_storage_initial': {'description': 'Fix the relationship between carrier stored in a `storage` technology at the start and end of the whole model period.', 'foreach': ['nodes', 'techs'], 'where': 'storage AND storage_initial AND cyclic_storage=True', 'equations': [{'expression': 'storage[timesteps=$final_step] * (\n (1 - storage_loss) ** timestep_resolution[timesteps=$final_step]\n) == storage_initial * storage_cap'}], 'slices': {'final_step': [{'expression': 'get_val_at_index(timesteps=-1)'}]}, 'active': True}, 'balance_transmission': {'description': 'Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.', 'foreach': ['techs', 'timesteps'], 'where': 'base_tech=transmission', 'equations': [{'expression': 'sum(flow_out_inc_eff, over=[nodes, carriers]) == sum(flow_in_inc_eff, over=[nodes, carriers])'}]}, 'symmetric_transmission': {'description': 'Fix the flow capacity of two `transmission` technologies representing the same link in the system.', 'foreach': ['nodes', 'techs'], 'where': 'base_tech=transmission', 'equations': [{'expression': 'sum(flow_cap, over=carriers) == link_flow_cap'}]}, 'export_balance': {'description': "Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_export', 'equations': [{'expression': 'flow_out >= flow_export'}]}, 'flow_export_max': {'description': "Set the upper bound of a technology's carrier export, for any technologies that can export carriers out of the system.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_export AND export_max', 'equations': [{'where': 'operating_units', 'expression': 'flow_export <= export_max * operating_units'}, {'where': 'NOT operating_units', 'expression': 'flow_export <= export_max'}]}, 'unit_commitment_milp': {'description': 'Set the upper bound of the number of integer units of technology that can exist, for any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'operating_units AND purchased_units', 'equations': [{'expression': 'operating_units <= purchased_units'}]}, 'available_flow_cap_binary': {'description': 'Limit flow capacity to zero if the technology is not operating in a given timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap <= flow_cap_max * operating_units'}]}, 'available_flow_cap_continuous': {'description': 'Limit flow capacity to the value of the `flow_cap` decision variable when the technology is operating in a given timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap <= flow_cap'}]}, 'available_flow_cap_max_binary_continuous_switch': {'description': 'Force flow capacity to equal the value of the `flow_cap` decision variable if the technology is operating in a given timestep, zero otherwise.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap >= flow_cap + ((operating_units - purchased_units) * flow_cap_max)'}]}, 'flow_out_max_milp': {'description': "Set the upper bound of a technology's ability to produce carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out AND operating_units AND flow_cap_per_unit', 'equations': [{'expression': 'flow_out <= operating_units * timestep_resolution * flow_cap_per_unit * flow_out_parasitic_eff'}]}, 'flow_in_max_milp': {'description': "Set the upper bound of a technology's ability to consume carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_in AND operating_units AND flow_cap_per_unit', 'equations': [{'expression': 'flow_in <= operating_units * timestep_resolution * flow_cap_per_unit'}]}, 'flow_out_min_milp': {'description': "Set the lower bound of a technology's ability to produce carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out AND operating_units AND flow_out_min_relative', 'equations': [{'where': 'flow_cap_per_unit', 'expression': 'flow_out >= operating_units * timestep_resolution * flow_cap_per_unit * flow_out_min_relative'}, {'where': 'available_flow_cap', 'expression': 'flow_out >= available_flow_cap * timestep_resolution * flow_out_min_relative'}]}, 'storage_capacity_units_milp': {'description': 'Fix the storage capacity of any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage AND purchased_units AND storage_cap_per_unit', 'equations': [{'expression': 'storage_cap == purchased_units * storage_cap_per_unit'}]}, 'flow_capacity_units_milp': {'description': 'Fix the flow capacity of any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'operating_units', 'equations': [{'where': 'flow_cap_per_unit', 'expression': 'flow_cap == purchased_units * flow_cap_per_unit'}, {'where': 'NOT flow_cap_per_unit', 'expression': 'flow_cap <= purchased_units * bigM'}]}, 'flow_capacity_max_purchase_milp': {'description': "Set the upper bound on a technology's flow capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'purchased_units AND flow_cap_max', 'equations': [{'expression': 'flow_cap <= flow_cap_max * purchased_units'}]}, 'flow_capacity_min_purchase_milp': {'description': "Set the lower bound on a technology's flow capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'purchased_units AND flow_cap_min', 'equations': [{'expression': 'flow_cap >= flow_cap_min * purchased_units'}]}, 'storage_capacity_max_purchase_milp': {'description': "Set the upper bound on a technology's storage capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs'], 'where': 'purchased_units AND storage_cap_max', 'equations': [{'expression': 'storage_cap <= storage_cap_max * purchased_units'}]}, 'storage_capacity_min_purchase_milp': {'description': "Set the lower bound on a technology's storage capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs'], 'where': 'purchased_units AND storage_cap_min', 'equations': [{'expression': 'storage_cap >= storage_cap_min * purchased_units'}]}, 'unit_capacity_max_systemwide_milp': {'description': 'Set the upper bound on the total number of units of a technology that can be purchased across all nodes where the technology can exist, for any technology using integer units to define its capacity.', 'foreach': ['techs'], 'where': 'purchased_units AND purchased_units_max_systemwide', 'equations': [{'expression': 'sum(purchased_units, over=nodes) <= purchased_units_max_systemwide'}]}, 'unit_capacity_min_systemwide_milp': {'description': 'Set the lower bound on the total number of units of a technology that can be purchased across all nodes where the technology can exist, for any technology using integer units to define its capacity.', 'foreach': ['techs'], 'where': 'purchased_units AND purchased_units_max_systemwide', 'equations': [{'expression': 'sum(purchased_units, over=nodes) >= purchased_units_min_systemwide'}]}, 'async_flow_in_milp': {'description': "Set a technology's ability to have inflow in the same timestep that it has outflow, for any technology using the asynchronous flow binary switch.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'async_flow_switch', 'equations': [{'expression': 'sum(flow_in, over=carriers) <= (1 - async_flow_switch) * bigM'}]}, 'async_flow_out_milp': {'description': "Set a technology's ability to have outflow in the same timestep that it has inflow, for any technology using the asynchronous flow binary switch.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'async_flow_switch', 'equations': [{'expression': 'sum(flow_out, over=carriers) <= async_flow_switch * bigM'}]}, 'ramping_up': {'description': "Set the upper bound on a technology's ability to ramp outflow up beyond a certain percentage compared to the previous timestep.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_ramping AND NOT timesteps=get_val_at_index(timesteps=0)', 'equations': [{'expression': '$flow - roll($flow, timesteps=1) <= flow_ramping * flow_cap'}], 'sub_expressions': {'flow': [{'where': 'carrier_out AND NOT carrier_in', 'expression': 'flow_out / timestep_resolution'}, {'where': 'carrier_in AND NOT carrier_out', 'expression': 'flow_in / timestep_resolution'}, {'where': 'carrier_in AND carrier_out', 'expression': '(flow_out - flow_in) / timestep_resolution'}]}}, 'ramping_down': {'description': "Set the upper bound on a technology's ability to ramp outflow down beyond a certain percentage compared to the previous timestep.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_ramping AND NOT timesteps=get_val_at_index(timesteps=0)', 'equations': [{'expression': '-1 * flow_ramping * flow_cap <= $flow - roll($flow, timesteps=1)'}], 'sub_expressions': {'flow': [{'where': 'carrier_out AND NOT carrier_in', 'expression': 'flow_out / timestep_resolution'}, {'where': 'carrier_in AND NOT carrier_out', 'expression': 'flow_in / timestep_resolution'}, {'where': 'carrier_in AND carrier_out', 'expression': '(flow_out - flow_in) / timestep_resolution'}]}}, 'link_chp_outputs': {'description': 'Fix the relationship between heat and electricity output', 'equations': [{'expression': 'flow_out[carriers=electricity] * heat_to_power_ratio == flow_out[carriers=heat]'}], 'foreach': ['nodes', 'techs', 'timesteps'], 'where': '[chp] in techs'}}, 'variables': {'flow_cap': {'description': "A technology's flow capacity, also known as its nominal or nameplate capacity.", 'unit': 'power', 'foreach': ['nodes', 'techs', 'carriers'], 'bounds': {'min': 'flow_cap_min', 'max': 'flow_cap_max'}}, 'link_flow_cap': {'description': "A transmission technology's flow capacity, also known as its nominal or nameplate capacity.", 'unit': 'power', 'foreach': ['techs'], 'where': 'base_tech=transmission', 'bounds': {'min': 0, 'max': inf}}, 'flow_out': {'description': 'The outflow of a technology per timestep, also known as the flow discharged (from `storage` technologies) or the flow received (by `transmission` technologies) on a link.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_out', 'bounds': {'min': 0, 'max': inf}}, 'flow_in': {'description': 'The inflow to a technology per timestep, also known as the flow consumed (by `storage` technologies) or the flow sent (by `transmission` technologies) on a link.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_in', 'bounds': {'min': 0, 'max': inf}}, 'flow_export': {'description': 'The flow of a carrier exported outside the system boundaries by a technology per timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_export', 'bounds': {'min': 0, 'max': inf}}, 'area_use': {'description': 'The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.', 'unit': 'area', 'foreach': ['nodes', 'techs'], 'where': '(area_use_min OR area_use_max OR area_use_per_flow_cap OR sink_unit=per_area OR source_unit=per_area)', 'bounds': {'min': 'area_use_min', 'max': 'area_use_max'}}, 'source_use': {'description': 'The carrier flow consumed from outside the system boundaries by a `supply` technology.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'base_tech=supply', 'bounds': {'min': 0, 'max': inf}}, 'source_cap': {'description': 'The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.', 'unit': 'power', 'foreach': ['nodes', 'techs'], 'where': 'base_tech=supply', 'bounds': {'min': 'source_cap_min', 'max': 'source_cap_max'}}, 'storage_cap': {'description': 'The upper limit on a carrier that can be stored by a technology in any timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs'], 'where': 'include_storage=True OR base_tech=storage', 'domain': 'real', 'bounds': {'min': 'storage_cap_min', 'max': 'storage_cap_max'}, 'active': True}, 'storage': {'description': 'The carrier stored by a `storage` technology in each timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'include_storage=True OR base_tech=storage', 'bounds': {'min': 0, 'max': inf}}, 'purchased_units': {'description': 'Integer number of a technology that has been purchased,\nfor any technology set to require integer capacity purchasing.\nThis is used to allow installation of fixed capacity units of technologies (\nif `flow_cap_max` == `flow_cap_min`) and/or to set a fixed cost for a technology,\nirrespective of its installed capacity.\nOn top of a fixed technology cost,\na continuous cost for the quantity of installed capacity can still be applied.\n\nSince technology capacity is no longer a continuous decision variable,\nit is possible for these technologies to have a lower bound set on outflow/consumption\nwhich will only be enforced in those timesteps that the technology is operating.\nOtherwise, the same lower bound forces the technology to produce/consume\nthat minimum amount of carrier in *every* timestep.\n', 'unit': 'integer', 'foreach': ['nodes', 'techs'], 'where': 'cap_method=integer', 'domain': 'integer', 'bounds': {'min': 'purchased_units_min', 'max': 'purchased_units_max'}}, 'operating_units': {'description': 'Integer number of a technology that is operating in each timestep, for any technology set to require integer capacity purchasing.', 'unit': 'integer', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'integer_dispatch=True AND cap_method=integer', 'domain': 'integer', 'bounds': {'min': 0, 'max': inf}}, 'available_flow_cap': {'description': 'Flow capacity that will be set to zero if the technology is not operating in a given timestep and will be set to the value of the decision variable `flow_cap` otherwise.', 'unit': 'power', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'integer_dispatch=True AND flow_cap_max AND NOT flow_cap_per_unit', 'bounds': {'min': 0, 'max': inf}}, 'async_flow_switch': {'description': 'Binary switch to force asynchronous outflow/consumption of technologies with both `flow_in` and `flow_out` defined. This ensures that a technology with carrier flow efficiencies < 100% cannot produce and consume a flow simultaneously to remove unwanted carrier from the system.', 'unit': 'integer', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'force_async_flow=True', 'domain': 'integer', 'bounds': {'min': 0, 'max': 1}}, 'unmet_demand': {'description': 'Virtual source of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined supply capacity to meet demand.', 'unit': 'energy', 'foreach': ['nodes', 'carriers', 'timesteps'], 'where': 'config.ensure_feasibility=True', 'bounds': {'min': 0, 'max': inf}}, 'unused_supply': {'description': 'Virtual sink of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. In model results, the negation of this variable is combined with `unmet_demand` and presented as only one variable: `unmet_demand`. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined consumption capacity to meet required outflow (e.g. from renewables without the possibility of curtailment).', 'unit': 'energy', 'foreach': ['nodes', 'carriers', 'timesteps'], 'where': 'config.ensure_feasibility=True', 'bounds': {'min': -inf, 'max': 0}}}, 'objectives': {'min_cost_optimisation': {'description': 'Minimise the total cost of installing and operating all technologies in the system. If multiple cost classes are present (e.g., monetary and co2 emissions), the weighted sum of total costs is minimised. Cost class weights can be defined in the indexed parameter `objective_cost_weights`.', 'equations': [{'where': 'any(cost, over=[nodes, techs, costs])', 'expression': 'sum(\n sum(cost, over=[nodes, techs])\n * objective_cost_weights,\n over=costs\n) + $unmet_demand'}, {'where': 'NOT any(cost, over=[nodes, techs, costs])', 'expression': '$unmet_demand'}], 'sub_expressions': {'unmet_demand': [{'where': 'config.ensure_feasibility=True', 'expression': 'sum(\n sum(unmet_demand - unused_supply, over=[carriers, nodes])\n * timestep_weights,\n over=timesteps\n) * bigM'}, {'where': 'NOT config.ensure_feasibility=True', 'expression': '0'}]}, 'sense': 'minimise', 'active': True}}, 'global_expressions': {'flow_out_inc_eff': {'description': 'Outflows after taking efficiency losses into account.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out', 'equations': [{'where': 'base_tech=transmission', 'expression': 'flow_out / (\n flow_out_eff * flow_out_parasitic_eff *\n flow_out_eff_per_distance ** default_if_empty(distance, 1)\n)'}, {'where': 'NOT base_tech=transmission', 'expression': 'flow_out / (flow_out_eff * flow_out_parasitic_eff)'}]}, 'flow_in_inc_eff': {'description': 'Inflows after taking efficiency losses into account.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_in', 'equations': [{'where': 'base_tech=transmission', 'expression': 'flow_in * flow_in_eff * flow_in_eff_per_distance ** default_if_empty(distance, 1)'}, {'where': 'NOT base_tech=transmission', 'expression': 'flow_in * flow_in_eff'}]}, 'cost_var': {'description': 'The operating costs per timestep of a technology.', 'unit': 'cost_per_time', 'foreach': ['nodes', 'techs', 'costs', 'timesteps'], 'where': 'cost_export OR cost_flow_in OR cost_flow_out', 'equations': [{'expression': 'timestep_weights * ($cost_export + $cost_flow_out + $cost_flow_in)'}], 'sub_expressions': {'cost_export': [{'where': 'flow_export', 'expression': 'sum(cost_export * default_if_empty(flow_export, 0), over=carriers)'}, {'where': 'NOT flow_export', 'expression': '0'}], 'cost_flow_in': [{'where': 'base_tech=supply', 'expression': 'cost_flow_in * source_use'}, {'where': 'NOT base_tech=supply', 'expression': 'sum(cost_flow_in * default_if_empty(flow_in, 0), over=carriers)'}], 'cost_flow_out': [{'expression': 'sum(cost_flow_out * default_if_empty(flow_out, 0), over=carriers)'}]}}, 'cost_investment_flow_cap': {'description': 'The investment costs associated with the nominal/rated capacity of a technology.', 'foreach': ['nodes', 'techs', 'carriers', 'costs'], 'where': 'flow_cap AND (cost_flow_cap OR cost_flow_cap_per_distance)', 'equations': [{'expression': '$cost_sum * flow_cap'}], 'sub_expressions': {'cost_sum': [{'where': 'base_tech=transmission', 'expression': '(cost_flow_cap + cost_flow_cap_per_distance * default_if_empty(distance, 0)) * 0.5'}, {'where': 'NOT base_tech=transmission', 'expression': 'cost_flow_cap'}]}}, 'cost_investment_storage_cap': {'description': 'The investment costs associated with the storage capacity of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_storage_cap AND storage_cap', 'equations': [{'expression': 'cost_storage_cap * storage_cap'}]}, 'cost_investment_source_cap': {'description': 'The investment costs associated with the source consumption capacity of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_source_cap AND source_cap', 'equations': [{'expression': 'cost_source_cap * source_cap'}]}, 'cost_investment_area_use': {'description': 'The investment costs associated with the area used by a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_area_use AND area_use', 'equations': [{'expression': 'cost_area_use * area_use'}]}, 'cost_investment_purchase': {'description': 'The investment costs associated with the binary purchase of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_purchase AND purchased_units', 'equations': [{'where': 'base_tech=transmission', 'expression': '(cost_purchase + cost_purchase_per_distance * default_if_empty(distance, 0)) * purchased_units * 0.5'}, {'where': 'NOT base_tech=transmission', 'expression': 'cost_purchase * purchased_units'}]}, 'cost_investment': {'description': 'The installation costs of a technology, including annualised investment costs and annual maintenance costs.', 'unit': 'cost', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_investment_flow_cap OR cost_investment_storage_cap OR cost_investment_source_cap OR cost_investment_area_use OR cost_investment_purchase', 'equations': [{'expression': '$annualisation_weight * (\n $depreciation_rate * (\n sum(default_if_empty(cost_investment_flow_cap, 0), over=carriers) +\n default_if_empty(cost_investment_storage_cap, 0) +\n default_if_empty(cost_investment_source_cap, 0) +\n default_if_empty(cost_investment_area_use, 0) +\n default_if_empty(cost_investment_purchase, 0)\n ) * (1 + cost_om_annual_investment_fraction)\n + sum(cost_om_annual * default_if_empty(flow_cap, 0), over=carriers)\n)\n'}], 'sub_expressions': {'annualisation_weight': [{'expression': 'sum(timestep_resolution * timestep_weights, over=timesteps) / 8760'}], 'depreciation_rate': [{'where': 'cost_depreciation_rate', 'expression': 'cost_depreciation_rate'}, {'where': 'NOT cost_depreciation_rate AND cost_interest_rate=0', 'expression': '1 / lifetime'}, {'where': 'NOT cost_depreciation_rate AND cost_interest_rate>0', 'expression': '(cost_interest_rate * ((1 + cost_interest_rate) ** lifetime)) / (((1 + cost_interest_rate) ** lifetime) - 1)'}]}}, 'cost': {'description': 'The total annualised costs of a technology, including installation and operation costs.', 'unit': 'cost', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_investment OR cost_var', 'equations': [{'expression': '$cost_investment + $cost_var_sum'}], 'sub_expressions': {'cost_investment': [{'where': 'cost_investment', 'expression': 'cost_investment'}, {'where': 'NOT cost_investment', 'expression': '0'}], 'cost_var_sum': [{'where': 'cost_var', 'expression': 'sum(cost_var, over=timesteps)'}, {'where': 'NOT cost_var', 'expression': '0'}]}, 'active': True}}}
- name :
- Urban-scale example model
Until we solve the model, inputs
is the same as _model_data
m._model_data
<xarray.Dataset> Dimensions: (costs: 1, techs: 12, nodes: 4, carriers: 3, timesteps: 48) Coordinates: * costs (costs) object 'monetary' * techs (techs) object 'N1_to_X2' ... 'supply_grid_po... * carriers (carriers) object 'electricity' 'gas' 'heat' * nodes (nodes) object 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 2005-07-01 ... 200... Data variables: (12/35) objective_cost_weights (costs) float64 1.0 bigM float64 1e+06 base_tech (techs) object 'transmission' ... 'supply' carrier_in (nodes, techs, carriers) float64 nan nan ... nan carrier_out (nodes, techs, carriers) float64 nan nan ... nan color (techs) object '#823739' '#823739' ... '#C5ABE3' ... ... available_area (nodes) float64 nan 500.0 1.3e+03 900.0 source_use_equals (techs, timesteps) float64 nan nan ... nan nan sink_use_equals (timesteps, techs, nodes) float64 nan ... nan definition_matrix (nodes, techs, carriers) bool False ... False timestep_resolution (timesteps) float64 1.0 1.0 1.0 ... 1.0 1.0 1.0 timestep_weights (timesteps) float64 1.0 1.0 1.0 ... 1.0 1.0 1.0 Attributes: calliope_version_defined: 0.7.0 calliope_version_initialised: 0.7.0.dev2 applied_overrides: scenario: None defaults: {'available_area': inf, 'bigM': 1000000000... allow_operate_mode: 1 config: {'build': {'backend': 'pyomo', 'ensure_fea... applied_custom_math: ['custom_math.yaml'] math: {'constraints': {'flow_capacity_per_storag... name: Urban-scale example model
- costs: 1
- techs: 12
- nodes: 4
- carriers: 3
- timesteps: 48
- costs(costs)object'monetary'
array(['monetary'], dtype=object)
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
array(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], dtype=object)
- nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
array(['2005-07-01T00:00:00.000000000', '2005-07-01T01:00:00.000000000', '2005-07-01T02:00:00.000000000', '2005-07-01T03:00:00.000000000', '2005-07-01T04:00:00.000000000', '2005-07-01T05:00:00.000000000', '2005-07-01T06:00:00.000000000', '2005-07-01T07:00:00.000000000', '2005-07-01T08:00:00.000000000', '2005-07-01T09:00:00.000000000', '2005-07-01T10:00:00.000000000', '2005-07-01T11:00:00.000000000', '2005-07-01T12:00:00.000000000', '2005-07-01T13:00:00.000000000', '2005-07-01T14:00:00.000000000', '2005-07-01T15:00:00.000000000', '2005-07-01T16:00:00.000000000', '2005-07-01T17:00:00.000000000', '2005-07-01T18:00:00.000000000', '2005-07-01T19:00:00.000000000', '2005-07-01T20:00:00.000000000', '2005-07-01T21:00:00.000000000', '2005-07-01T22:00:00.000000000', '2005-07-01T23:00:00.000000000', '2005-07-02T00:00:00.000000000', '2005-07-02T01:00:00.000000000', '2005-07-02T02:00:00.000000000', '2005-07-02T03:00:00.000000000', '2005-07-02T04:00:00.000000000', '2005-07-02T05:00:00.000000000', '2005-07-02T06:00:00.000000000', '2005-07-02T07:00:00.000000000', '2005-07-02T08:00:00.000000000', '2005-07-02T09:00:00.000000000', '2005-07-02T10:00:00.000000000', '2005-07-02T11:00:00.000000000', '2005-07-02T12:00:00.000000000', '2005-07-02T13:00:00.000000000', '2005-07-02T14:00:00.000000000', '2005-07-02T15:00:00.000000000', '2005-07-02T16:00:00.000000000', '2005-07-02T17:00:00.000000000', '2005-07-02T18:00:00.000000000', '2005-07-02T19:00:00.000000000', '2005-07-02T20:00:00.000000000', '2005-07-02T21:00:00.000000000', '2005-07-02T22:00:00.000000000', '2005-07-02T23:00:00.000000000'], dtype='datetime64[ns]')
- objective_cost_weights(costs)float641.0
- is_result :
- False
- default :
- 1
array([1.])
- bigM()float641e+06
- is_result :
- False
- default :
- 1000000000.0
array(1000000.)
- base_tech(techs)object'transmission' ... 'supply'
- is_result :
- False
array(['transmission', 'transmission', 'transmission', 'transmission', 'transmission', 'conversion', 'conversion', 'demand', 'demand', 'supply', 'supply', 'supply'], dtype=object)
- carrier_in(nodes, techs, carriers)float64nan nan 1.0 nan ... nan nan nan nan
- is_result :
- False
array([[[nan, nan, 1.], [nan, nan, 1.], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, 1.], [ 1., nan, nan], [ 1., nan, nan], [nan, nan, nan], [nan, 1., nan], ... [nan, 1., nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, 1., nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]]])
- carrier_out(nodes, techs, carriers)float64nan nan 1.0 nan ... nan nan nan nan
- is_result :
- False
array([[[nan, nan, 1.], [nan, nan, 1.], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, 1.], [ 1., nan, nan], [ 1., nan, nan], [nan, nan, nan], [ 1., nan, 1.], ... [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, 1., nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, 1.], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, 1., nan], [nan, nan, nan]]])
- color(techs)object'#823739' '#823739' ... '#C5ABE3'
- is_result :
- False
- default :
- nan
array(['#823739', '#823739', '#823739', '#6783E3', '#6783E3', '#8E2999', '#E4AB97', '#072486', '#660507', '#F9D956', '#C98AAD', '#C5ABE3'], dtype=object)
- cost_flow_cap_per_distance(techs, costs)float640.3 0.3 0.3 0.01 ... nan nan nan
- is_result :
- False
- default :
- 0
array([[0.3 ], [0.3 ], [0.3 ], [0.01], [0.01], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]])
- cost_interest_rate(techs, costs)float640.1 0.1 0.1 0.1 ... nan 0.1 0.1 0.1
- is_result :
- False
- default :
- 0
array([[0.1], [0.1], [0.1], [0.1], [0.1], [0.1], [0.1], [nan], [nan], [0.1], [0.1], [0.1]])
- distance(techs)float643.0 4.0 3.0 10.0 ... nan nan nan
- is_result :
- False
- default :
- nan
array([ 3., 4., 3., 10., 5., nan, nan, nan, nan, nan, nan, nan])
- flow_cap_max(techs, carriers, nodes)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- inf
array([[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [2000., nan, 2000., nan]], [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [2000., nan, nan, 2000.]], [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [2000., 2000., nan, nan]], [[ nan, 2000., 2000., nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, 2000., nan, 2000.], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], ... [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, 250., 250., 50.], [ nan, nan, nan, nan], [ nan, nan, nan, nan]], [[ nan, nan, nan, nan], [ nan, 2000., 2000., 2000.], [ nan, nan, nan, nan]], [[ nan, 2000., nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]])
- flow_out_eff_per_distance(techs)float640.975 0.975 0.975 ... nan nan nan
- is_result :
- False
- default :
- 1.0
array([0.975, 0.975, 0.975, nan, nan, nan, nan, nan, nan, nan, nan, nan])
- lifetime(techs)float6425.0 25.0 25.0 ... 25.0 25.0 25.0
- is_result :
- False
- default :
- inf
array([25., 25., 25., 25., 25., 25., 25., nan, nan, 25., 25., 25.])
- name(techs)object'District heat distribution' ......
- is_result :
- False
- default :
- nan
array(['District heat distribution', 'District heat distribution', 'District heat distribution', 'Electrical power distribution', 'Electrical power distribution', 'Natural gas boiler', 'Combined heat and power', 'Electrical demand', 'Heat demand', 'Solar photovoltaic power', 'Natural gas import', 'National grid import'], dtype=object)
- techs_inheritance(techs)object'interest_rate_setter,heat_pipes...
- is_result :
- False
array(['interest_rate_setter,heat_pipes', 'interest_rate_setter,heat_pipes', 'interest_rate_setter,heat_pipes', 'interest_rate_setter,power_lines', 'interest_rate_setter,power_lines', 'interest_rate_setter', 'interest_rate_setter', nan, nan, 'interest_rate_setter', 'interest_rate_setter', 'interest_rate_setter'], dtype=object)
- carrier_export(techs, carriers)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, nan], [nan, nan, nan], [ 1., nan, nan], [nan, nan, nan], [nan, nan, nan]])
- cost_flow_cap(nodes, techs, costs, carriers)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 0
array([[[[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], ... [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, 7.80e+01]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[1.35e+03, nan, nan]], [[ nan, 1.00e+00, nan]], [[ nan, nan, nan]]]])
- cost_flow_out(techs, costs, carriers, nodes)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 0
array([[[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], ... [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, -0.0203, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]]])
- flow_out_eff(techs, carriers)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 1.0
array([[ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [0.98 , nan, nan], [0.98 , nan, nan], [ nan, 0.85 , 0.85 ], [0.405, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan]])
- heat_to_power_ratio(techs)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
array([nan, nan, nan, nan, nan, nan, 0.8, nan, nan, nan, nan, nan])
- area_use_max(techs)float64nan nan nan nan ... 1.5e+03 nan nan
- is_result :
- False
- default :
- inf
array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, 1500., nan, nan])
- area_use_per_flow_cap(techs)float64nan nan nan nan ... nan 7.0 nan nan
- is_result :
- False
- default :
- nan
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, 7., nan, nan])
- flow_out_parasitic_eff(techs)float64nan nan nan nan ... 0.85 nan nan
- is_result :
- False
- default :
- 1.0
array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, 0.85, nan, nan])
- source_unit(techs)objectnan nan nan ... 'per_area' nan nan
- is_result :
- False
- default :
- absolute
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, 'per_area', nan, nan], dtype=object)
- cost_flow_in(techs, costs)float64nan nan nan nan ... nan 0.025 0.1
- is_result :
- False
- default :
- 0
array([[ nan], [ nan], [ nan], [ nan], [ nan], [0.004], [ nan], [ nan], [ nan], [ nan], [0.025], [0.1 ]])
- source_use_max(techs)float64nan nan nan nan ... nan nan inf inf
- is_result :
- False
- default :
- inf
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, inf, inf])
- cost_export(nodes, techs, costs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- 0
array([[[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], ..., [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ... [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], ..., [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]]]])
- cost_om_annual(nodes, techs, costs)float64nan nan nan nan ... -80.5 nan nan
- is_result :
- False
- default :
- 0
array([[[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], ... [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [-80.5], [ nan], [ nan]]])
- latitude(nodes)float6451.45 51.46 51.47 51.43
- is_result :
- False
array([51.4450766, 51.4596158, 51.4652373, 51.4287016])
- longitude(nodes)float64-0.1247 -0.1613 -0.1142 -0.1311
- is_result :
- False
array([-0.1247183, -0.1613446, -0.1141548, -0.1310635])
- available_area(nodes)float64nan 500.0 1.3e+03 900.0
- is_result :
- False
- default :
- inf
array([ nan, 500., 1300., 900.])
- source_use_equals(techs, timesteps)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
array([[ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], ... [ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]])
- sink_use_equals(timesteps, techs, nodes)float64nan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., ... ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]])
- definition_matrix(nodes, techs, carriers)boolFalse False True ... False False
- is_result :
- False
array([[[False, False, True], [False, False, True], [False, False, True], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False]], [[False, False, False], [False, False, False], [False, False, True], [ True, False, False], [ True, False, False], [False, False, False], [ True, True, True], ... [False, True, True], [False, False, False], [ True, False, False], [False, False, True], [ True, False, False], [False, True, False], [False, False, False]], [[False, False, False], [False, False, True], [False, False, False], [False, False, False], [ True, False, False], [False, True, True], [False, False, False], [ True, False, False], [False, False, True], [ True, False, False], [False, True, False], [False, False, False]]])
- timestep_resolution(timesteps)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
- is_result :
- False
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
- timestep_weights(timesteps)float641.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
- is_result :
- False
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- timestepsPandasIndex
PandasIndex(DatetimeIndex(['2005-07-01 00:00:00', '2005-07-01 01:00:00', '2005-07-01 02:00:00', '2005-07-01 03:00:00', '2005-07-01 04:00:00', '2005-07-01 05:00:00', '2005-07-01 06:00:00', '2005-07-01 07:00:00', '2005-07-01 08:00:00', '2005-07-01 09:00:00', '2005-07-01 10:00:00', '2005-07-01 11:00:00', '2005-07-01 12:00:00', '2005-07-01 13:00:00', '2005-07-01 14:00:00', '2005-07-01 15:00:00', '2005-07-01 16:00:00', '2005-07-01 17:00:00', '2005-07-01 18:00:00', '2005-07-01 19:00:00', '2005-07-01 20:00:00', '2005-07-01 21:00:00', '2005-07-01 22:00:00', '2005-07-01 23:00:00', '2005-07-02 00:00:00', '2005-07-02 01:00:00', '2005-07-02 02:00:00', '2005-07-02 03:00:00', '2005-07-02 04:00:00', '2005-07-02 05:00:00', '2005-07-02 06:00:00', '2005-07-02 07:00:00', '2005-07-02 08:00:00', '2005-07-02 09:00:00', '2005-07-02 10:00:00', '2005-07-02 11:00:00', '2005-07-02 12:00:00', '2005-07-02 13:00:00', '2005-07-02 14:00:00', '2005-07-02 15:00:00', '2005-07-02 16:00:00', '2005-07-02 17:00:00', '2005-07-02 18:00:00', '2005-07-02 19:00:00', '2005-07-02 20:00:00', '2005-07-02 21:00:00', '2005-07-02 22:00:00', '2005-07-02 23:00:00'], dtype='datetime64[ns]', name='timesteps', freq=None))
- calliope_version_defined :
- 0.7.0
- calliope_version_initialised :
- 0.7.0.dev2
- applied_overrides :
- scenario :
- None
- defaults :
- {'available_area': inf, 'bigM': 1000000000.0, 'objective_cost_weights': 1, 'area_use': inf, 'area_use_max': inf, 'area_use_min': 0, 'area_use_per_flow_cap': nan, 'cap_method': 'continuous', 'color': nan, 'cost_area_use': 0, 'cost_depreciation_rate': 1, 'cost_export': 0, 'cost_flow_cap': 0, 'cost_flow_cap_per_distance': 0, 'cost_flow_in': 0, 'cost_flow_out': 0, 'cost_interest_rate': 0, 'cost_om_annual': 0, 'cost_om_annual_investment_fraction': 0, 'cost_purchase': 0, 'cost_purchase_per_distance': 0, 'cost_source_cap': 0, 'cost_storage_cap': 0, 'cyclic_storage': True, 'distance': nan, 'export_max': inf, 'flow_cap': inf, 'flow_cap_max': inf, 'flow_cap_max_systemwide': inf, 'flow_cap_min': 0, 'flow_cap_min_systemwide': 0, 'flow_cap_per_storage_cap_max': inf, 'flow_cap_per_storage_cap_min': 0, 'flow_cap_per_unit': nan, 'flow_in_eff': 1.0, 'flow_in_eff_per_distance': 1.0, 'flow_out_eff': 1.0, 'flow_out_eff_per_distance': 1.0, 'flow_out_min_relative': 0, 'flow_out_parasitic_eff': 1.0, 'flow_ramping': 1.0, 'force_async_flow': False, 'include_storage': False, 'integer_dispatch': False, 'lifetime': inf, 'name': nan, 'one_way': False, 'purchased_units': inf, 'purchased_units_max': inf, 'purchased_units_max_systemwide': inf, 'purchased_units_min': 0, 'purchased_units_min_systemwide': 0, 'sink_unit': 'absolute', 'sink_use_equals': nan, 'sink_use_max': inf, 'sink_use_min': 0, 'source_cap': inf, 'source_cap_equals_flow_cap': False, 'source_cap_max': inf, 'source_cap_min': 0, 'source_eff': 1.0, 'source_unit': 'absolute', 'source_use_equals': nan, 'source_use_max': inf, 'source_use_min': 0, 'storage_cap': inf, 'storage_cap_max': inf, 'storage_cap_min': 0, 'storage_cap_per_unit': nan, 'storage_discharge_depth': 0, 'storage_initial': 0, 'storage_loss': 0}
- allow_operate_mode :
- 1
- config :
- {'build': {'backend': 'pyomo', 'ensure_feasibility': True, 'mode': 'plan', 'objective': 'min_cost_optimisation', 'operate_use_cap_results': False}, 'solve': {'save_logs': None, 'solver': 'cbc', 'solver_io': None, 'solver_options': None, 'spores_number': 3, 'spores_save_per_spore': False, 'spores_score_cost_class': 'spores_score', 'spores_skip_cost_op': False, 'zero_threshold': 1e-10}}
- applied_custom_math :
- ['custom_math.yaml']
- math :
- {'constraints': {'flow_capacity_per_storage_capacity_min': {'description': 'Set the lower bound of storage flow capacity relative to its storage capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage_cap AND flow_cap_per_storage_cap_min', 'equations': [{'expression': 'flow_cap >= storage_cap * flow_cap_per_storage_cap_min'}]}, 'flow_capacity_per_storage_capacity_max': {'description': 'Set the upper bound of storage flow capacity relative to its storage capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage_cap AND flow_cap_per_storage_cap_max', 'equations': [{'expression': 'flow_cap <= storage_cap * flow_cap_per_storage_cap_max'}]}, 'source_capacity_equals_flow_capacity': {'description': "Set a `supply` technology's flow capacity to equal its source capacity.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'source_cap AND source_cap_equals_flow_cap=True', 'equations': [{'expression': 'source_cap == flow_cap'}]}, 'force_zero_area_use': {'description': "Set a technology's area use to zero if its flow capacity upper bound is zero.", 'foreach': ['nodes', 'techs'], 'where': 'area_use AND flow_cap_max=0', 'equations': [{'expression': 'area_use == 0'}]}, 'area_use_per_flow_capacity': {'description': "Set a fixed relationship between a technology's flow capacity and its area use.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'area_use AND area_use_per_flow_cap', 'equations': [{'expression': 'area_use == flow_cap * area_use_per_flow_cap'}]}, 'area_use_capacity_per_loc': {'description': 'Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.', 'foreach': ['nodes'], 'where': 'area_use AND available_area', 'equations': [{'expression': 'sum(area_use, over=techs) <= available_area'}]}, 'flow_capacity_systemwide_max': {'description': 'Set an upper bound on flow capacity of a technology across all nodes in which the technology exists.', 'foreach': ['techs', 'carriers'], 'where': 'flow_cap_max_systemwide', 'equations': [{'expression': 'sum(flow_cap, over=nodes) <= flow_cap_max_systemwide'}]}, 'flow_capacity_systemwide_min': {'description': 'Set a lower bound on flow capacity of a technology across all nodes in which the technology exists.', 'foreach': ['techs', 'carriers'], 'where': 'flow_cap_min_systemwide', 'equations': [{'expression': 'sum(flow_cap, over=nodes) >= flow_cap_min_systemwide'}]}, 'balance_conversion': {'description': "Fix the relationship between a `conversion` technology's outflow and consumption.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'base_tech=conversion AND NOT include_storage=true', 'equations': [{'where': 'NOT [chp] in techs', 'expression': 'sum(flow_out_inc_eff, over=carriers) == sum(flow_in_inc_eff, over=carriers)'}, {'where': '[chp] in techs', 'expression': 'flow_out_inc_eff[carriers=electricity] == sum(flow_in_inc_eff, over=carriers)'}]}, 'flow_out_max': {'description': "Set the upper bound of a technology's outflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_out AND NOT operating_units', 'equations': [{'expression': 'flow_out <= flow_cap * timestep_resolution * flow_out_parasitic_eff'}]}, 'flow_out_min': {'description': "Set the lower bound of a technology's outflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out_min_relative AND NOT operating_units', 'equations': [{'expression': 'flow_out >= flow_cap * timestep_resolution * flow_out_min_relative'}]}, 'flow_in_max': {'description': "Set the upper bound of a technology's inflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_in AND NOT operating_units', 'equations': [{'expression': 'flow_in <= flow_cap * timestep_resolution'}]}, 'source_max': {'description': "Set the upper bound of a `supply` technology's source consumption.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_cap', 'equations': [{'expression': 'source_use <= timestep_resolution * source_cap'}]}, 'storage_max': {'description': 'Set the upper bound of the amount of carrier a technology can store.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'storage', 'equations': [{'expression': 'storage <= storage_cap'}]}, 'storage_discharge_depth_limit': {'description': 'Set the lower bound of the stored carrier a technology must keep in reserve at all times.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'storage AND storage_discharge_depth', 'equations': [{'expression': 'storage - storage_discharge_depth * storage_cap >= 0'}]}, 'system_balance': {'description': 'Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.', 'foreach': ['nodes', 'carriers', 'timesteps'], 'equations': [{'expression': 'sum(flow_out, over=techs) - sum(flow_in, over=techs) - $flow_export + $unmet_demand_and_unused_supply == 0'}], 'sub_expressions': {'flow_export': [{'where': 'any(carrier_export, over=techs)', 'expression': 'sum(flow_export, over=techs)'}, {'where': 'NOT any(carrier_export, over=techs)', 'expression': '0'}], 'unmet_demand_and_unused_supply': [{'where': 'config.ensure_feasibility=True', 'expression': 'unmet_demand + unused_supply'}, {'where': 'NOT config.ensure_feasibility=True', 'expression': '0'}]}}, 'balance_demand': {'description': 'Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'base_tech=demand', 'equations': [{'where': 'sink_use_equals', 'expression': 'flow_in_inc_eff == sink_use_equals * $sink_scaler'}, {'where': 'NOT sink_use_equals AND sink_use_max', 'expression': 'flow_in_inc_eff <= sink_use_max * $sink_scaler'}], 'sub_expressions': {'sink_scaler': [{'where': 'sink_unit=per_area', 'expression': 'area_use'}, {'where': 'sink_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'sink_unit=absolute', 'expression': '1'}]}}, 'balance_demand_min_use': {'description': 'Set the lower bound on the quantity of flow a `demand` technology must dump to its sink in each timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'sink_use_min AND NOT sink_use_equals AND base_tech=demand', 'equations': [{'expression': 'flow_in_inc_eff >= sink_use_min * $sink_scaler'}], 'sub_expressions': {'sink_scaler': [{'where': 'sink_unit=per_area', 'expression': 'area_use'}, {'where': 'sink_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'sink_unit=absolute', 'expression': '1'}]}}, 'balance_supply_no_storage': {'description': 'Fix the outflow of a `supply` technology to its consumption of the available source.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'base_tech=supply AND NOT include_storage=True', 'equations': [{'expression': 'flow_out_inc_eff == source_use * source_eff'}]}, 'balance_supply_with_storage': {'description': 'Fix the outflow of a `supply` technology to its consumption of the available source, with a storage buffer to temporally offset the outflow from source consumption.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'storage AND base_tech=supply', 'equations': [{'expression': 'storage == $storage_previous_step + source_use * source_eff - flow_out_inc_eff'}], 'sub_expressions': {'storage_previous_step': [{'where': 'timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True', 'expression': 'storage_initial * storage_cap'}, {'where': '(\n (timesteps=get_val_at_index(timesteps=0) AND cyclic_storage=True)\n OR NOT timesteps=get_val_at_index(timesteps=0)\n) AND NOT lookup_cluster_first_timestep=True', 'expression': '(1 - storage_loss) ** roll(timestep_resolution, timesteps=1) * roll(storage, timesteps=1)'}, {'where': 'lookup_cluster_first_timestep=True AND NOT (timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True)', 'expression': '(1 - storage_loss) ** select_from_lookup_arrays(timestep_resolution, timesteps=lookup_cluster_last_timestep) * select_from_lookup_arrays(storage, timesteps=lookup_cluster_last_timestep)'}]}}, 'source_availability_supply': {'description': "Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_use AND (source_use_equals OR source_use_max)', 'equations': [{'where': 'source_use_equals', 'expression': 'source_use == source_use_equals * $source_scaler'}, {'where': 'NOT source_use_equals AND source_use_max', 'expression': 'source_use <= source_use_max * $source_scaler'}], 'sub_expressions': {'source_scaler': [{'where': 'source_unit=per_area', 'expression': 'area_use'}, {'where': 'source_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'source_unit=absolute', 'expression': '1'}]}}, 'balance_supply_min_use': {'description': 'Set the lower bound on the quantity of its source a `supply` technology must use in each timestep.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_use_min AND NOT source_use_equals AND base_tech=supply', 'equations': [{'expression': 'source_use >= source_use_min * $source_scaler'}], 'sub_expressions': {'source_scaler': [{'where': 'source_unit=per_area', 'expression': 'area_use'}, {'where': 'source_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'source_unit=absolute', 'expression': '1'}]}}, 'balance_storage': {'description': 'Fix the quantity of carrier stored in a `storage` technology at the end of each timestep based on the net flow of carrier charged and discharged and the quantity of carrier stored at the start of the timestep.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': '(include_storage=true or base_tech=storage) AND NOT (base_tech=supply OR base_tech=demand)', 'equations': [{'expression': 'storage == $storage_previous_step -\n sum(flow_out_inc_eff, over=carriers) + sum(flow_in_inc_eff, over=carriers)'}], 'sub_expressions': {'storage_previous_step': [{'where': 'timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True', 'expression': 'storage_initial * storage_cap'}, {'where': '(\n (timesteps=get_val_at_index(timesteps=0) AND cyclic_storage=True)\n OR NOT timesteps=get_val_at_index(timesteps=0)\n) AND NOT lookup_cluster_first_timestep=True', 'expression': '(1 - storage_loss) ** roll(timestep_resolution, timesteps=1) * roll(storage, timesteps=1)'}, {'where': 'lookup_cluster_first_timestep=True AND NOT (timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True)', 'expression': '(1 - storage_loss) ** select_from_lookup_arrays(timestep_resolution, timesteps=lookup_cluster_last_timestep) * select_from_lookup_arrays(storage, timesteps=lookup_cluster_last_timestep)'}]}}, 'set_storage_initial': {'description': 'Fix the relationship between carrier stored in a `storage` technology at the start and end of the whole model period.', 'foreach': ['nodes', 'techs'], 'where': 'storage AND storage_initial AND cyclic_storage=True', 'equations': [{'expression': 'storage[timesteps=$final_step] * (\n (1 - storage_loss) ** timestep_resolution[timesteps=$final_step]\n) == storage_initial * storage_cap'}], 'slices': {'final_step': [{'expression': 'get_val_at_index(timesteps=-1)'}]}, 'active': True}, 'balance_transmission': {'description': 'Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.', 'foreach': ['techs', 'timesteps'], 'where': 'base_tech=transmission', 'equations': [{'expression': 'sum(flow_out_inc_eff, over=[nodes, carriers]) == sum(flow_in_inc_eff, over=[nodes, carriers])'}]}, 'symmetric_transmission': {'description': 'Fix the flow capacity of two `transmission` technologies representing the same link in the system.', 'foreach': ['nodes', 'techs'], 'where': 'base_tech=transmission', 'equations': [{'expression': 'sum(flow_cap, over=carriers) == link_flow_cap'}]}, 'export_balance': {'description': "Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_export', 'equations': [{'expression': 'flow_out >= flow_export'}]}, 'flow_export_max': {'description': "Set the upper bound of a technology's carrier export, for any technologies that can export carriers out of the system.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_export AND export_max', 'equations': [{'where': 'operating_units', 'expression': 'flow_export <= export_max * operating_units'}, {'where': 'NOT operating_units', 'expression': 'flow_export <= export_max'}]}, 'unit_commitment_milp': {'description': 'Set the upper bound of the number of integer units of technology that can exist, for any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'operating_units AND purchased_units', 'equations': [{'expression': 'operating_units <= purchased_units'}]}, 'available_flow_cap_binary': {'description': 'Limit flow capacity to zero if the technology is not operating in a given timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap <= flow_cap_max * operating_units'}]}, 'available_flow_cap_continuous': {'description': 'Limit flow capacity to the value of the `flow_cap` decision variable when the technology is operating in a given timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap <= flow_cap'}]}, 'available_flow_cap_max_binary_continuous_switch': {'description': 'Force flow capacity to equal the value of the `flow_cap` decision variable if the technology is operating in a given timestep, zero otherwise.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap >= flow_cap + ((operating_units - purchased_units) * flow_cap_max)'}]}, 'flow_out_max_milp': {'description': "Set the upper bound of a technology's ability to produce carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out AND operating_units AND flow_cap_per_unit', 'equations': [{'expression': 'flow_out <= operating_units * timestep_resolution * flow_cap_per_unit * flow_out_parasitic_eff'}]}, 'flow_in_max_milp': {'description': "Set the upper bound of a technology's ability to consume carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_in AND operating_units AND flow_cap_per_unit', 'equations': [{'expression': 'flow_in <= operating_units * timestep_resolution * flow_cap_per_unit'}]}, 'flow_out_min_milp': {'description': "Set the lower bound of a technology's ability to produce carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out AND operating_units AND flow_out_min_relative', 'equations': [{'where': 'flow_cap_per_unit', 'expression': 'flow_out >= operating_units * timestep_resolution * flow_cap_per_unit * flow_out_min_relative'}, {'where': 'available_flow_cap', 'expression': 'flow_out >= available_flow_cap * timestep_resolution * flow_out_min_relative'}]}, 'storage_capacity_units_milp': {'description': 'Fix the storage capacity of any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage AND purchased_units AND storage_cap_per_unit', 'equations': [{'expression': 'storage_cap == purchased_units * storage_cap_per_unit'}]}, 'flow_capacity_units_milp': {'description': 'Fix the flow capacity of any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'operating_units', 'equations': [{'where': 'flow_cap_per_unit', 'expression': 'flow_cap == purchased_units * flow_cap_per_unit'}, {'where': 'NOT flow_cap_per_unit', 'expression': 'flow_cap <= purchased_units * bigM'}]}, 'flow_capacity_max_purchase_milp': {'description': "Set the upper bound on a technology's flow capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'purchased_units AND flow_cap_max', 'equations': [{'expression': 'flow_cap <= flow_cap_max * purchased_units'}]}, 'flow_capacity_min_purchase_milp': {'description': "Set the lower bound on a technology's flow capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'purchased_units AND flow_cap_min', 'equations': [{'expression': 'flow_cap >= flow_cap_min * purchased_units'}]}, 'storage_capacity_max_purchase_milp': {'description': "Set the upper bound on a technology's storage capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs'], 'where': 'purchased_units AND storage_cap_max', 'equations': [{'expression': 'storage_cap <= storage_cap_max * purchased_units'}]}, 'storage_capacity_min_purchase_milp': {'description': "Set the lower bound on a technology's storage capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs'], 'where': 'purchased_units AND storage_cap_min', 'equations': [{'expression': 'storage_cap >= storage_cap_min * purchased_units'}]}, 'unit_capacity_max_systemwide_milp': {'description': 'Set the upper bound on the total number of units of a technology that can be purchased across all nodes where the technology can exist, for any technology using integer units to define its capacity.', 'foreach': ['techs'], 'where': 'purchased_units AND purchased_units_max_systemwide', 'equations': [{'expression': 'sum(purchased_units, over=nodes) <= purchased_units_max_systemwide'}]}, 'unit_capacity_min_systemwide_milp': {'description': 'Set the lower bound on the total number of units of a technology that can be purchased across all nodes where the technology can exist, for any technology using integer units to define its capacity.', 'foreach': ['techs'], 'where': 'purchased_units AND purchased_units_max_systemwide', 'equations': [{'expression': 'sum(purchased_units, over=nodes) >= purchased_units_min_systemwide'}]}, 'async_flow_in_milp': {'description': "Set a technology's ability to have inflow in the same timestep that it has outflow, for any technology using the asynchronous flow binary switch.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'async_flow_switch', 'equations': [{'expression': 'sum(flow_in, over=carriers) <= (1 - async_flow_switch) * bigM'}]}, 'async_flow_out_milp': {'description': "Set a technology's ability to have outflow in the same timestep that it has inflow, for any technology using the asynchronous flow binary switch.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'async_flow_switch', 'equations': [{'expression': 'sum(flow_out, over=carriers) <= async_flow_switch * bigM'}]}, 'ramping_up': {'description': "Set the upper bound on a technology's ability to ramp outflow up beyond a certain percentage compared to the previous timestep.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_ramping AND NOT timesteps=get_val_at_index(timesteps=0)', 'equations': [{'expression': '$flow - roll($flow, timesteps=1) <= flow_ramping * flow_cap'}], 'sub_expressions': {'flow': [{'where': 'carrier_out AND NOT carrier_in', 'expression': 'flow_out / timestep_resolution'}, {'where': 'carrier_in AND NOT carrier_out', 'expression': 'flow_in / timestep_resolution'}, {'where': 'carrier_in AND carrier_out', 'expression': '(flow_out - flow_in) / timestep_resolution'}]}}, 'ramping_down': {'description': "Set the upper bound on a technology's ability to ramp outflow down beyond a certain percentage compared to the previous timestep.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_ramping AND NOT timesteps=get_val_at_index(timesteps=0)', 'equations': [{'expression': '-1 * flow_ramping * flow_cap <= $flow - roll($flow, timesteps=1)'}], 'sub_expressions': {'flow': [{'where': 'carrier_out AND NOT carrier_in', 'expression': 'flow_out / timestep_resolution'}, {'where': 'carrier_in AND NOT carrier_out', 'expression': 'flow_in / timestep_resolution'}, {'where': 'carrier_in AND carrier_out', 'expression': '(flow_out - flow_in) / timestep_resolution'}]}}, 'link_chp_outputs': {'description': 'Fix the relationship between heat and electricity output', 'equations': [{'expression': 'flow_out[carriers=electricity] * heat_to_power_ratio == flow_out[carriers=heat]'}], 'foreach': ['nodes', 'techs', 'timesteps'], 'where': '[chp] in techs'}}, 'variables': {'flow_cap': {'description': "A technology's flow capacity, also known as its nominal or nameplate capacity.", 'unit': 'power', 'foreach': ['nodes', 'techs', 'carriers'], 'bounds': {'min': 'flow_cap_min', 'max': 'flow_cap_max'}}, 'link_flow_cap': {'description': "A transmission technology's flow capacity, also known as its nominal or nameplate capacity.", 'unit': 'power', 'foreach': ['techs'], 'where': 'base_tech=transmission', 'bounds': {'min': 0, 'max': inf}}, 'flow_out': {'description': 'The outflow of a technology per timestep, also known as the flow discharged (from `storage` technologies) or the flow received (by `transmission` technologies) on a link.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_out', 'bounds': {'min': 0, 'max': inf}}, 'flow_in': {'description': 'The inflow to a technology per timestep, also known as the flow consumed (by `storage` technologies) or the flow sent (by `transmission` technologies) on a link.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_in', 'bounds': {'min': 0, 'max': inf}}, 'flow_export': {'description': 'The flow of a carrier exported outside the system boundaries by a technology per timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_export', 'bounds': {'min': 0, 'max': inf}}, 'area_use': {'description': 'The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.', 'unit': 'area', 'foreach': ['nodes', 'techs'], 'where': '(area_use_min OR area_use_max OR area_use_per_flow_cap OR sink_unit=per_area OR source_unit=per_area)', 'bounds': {'min': 'area_use_min', 'max': 'area_use_max'}}, 'source_use': {'description': 'The carrier flow consumed from outside the system boundaries by a `supply` technology.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'base_tech=supply', 'bounds': {'min': 0, 'max': inf}}, 'source_cap': {'description': 'The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.', 'unit': 'power', 'foreach': ['nodes', 'techs'], 'where': 'base_tech=supply', 'bounds': {'min': 'source_cap_min', 'max': 'source_cap_max'}}, 'storage_cap': {'description': 'The upper limit on a carrier that can be stored by a technology in any timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs'], 'where': 'include_storage=True OR base_tech=storage', 'domain': 'real', 'bounds': {'min': 'storage_cap_min', 'max': 'storage_cap_max'}, 'active': True}, 'storage': {'description': 'The carrier stored by a `storage` technology in each timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'include_storage=True OR base_tech=storage', 'bounds': {'min': 0, 'max': inf}}, 'purchased_units': {'description': 'Integer number of a technology that has been purchased,\nfor any technology set to require integer capacity purchasing.\nThis is used to allow installation of fixed capacity units of technologies (\nif `flow_cap_max` == `flow_cap_min`) and/or to set a fixed cost for a technology,\nirrespective of its installed capacity.\nOn top of a fixed technology cost,\na continuous cost for the quantity of installed capacity can still be applied.\n\nSince technology capacity is no longer a continuous decision variable,\nit is possible for these technologies to have a lower bound set on outflow/consumption\nwhich will only be enforced in those timesteps that the technology is operating.\nOtherwise, the same lower bound forces the technology to produce/consume\nthat minimum amount of carrier in *every* timestep.\n', 'unit': 'integer', 'foreach': ['nodes', 'techs'], 'where': 'cap_method=integer', 'domain': 'integer', 'bounds': {'min': 'purchased_units_min', 'max': 'purchased_units_max'}}, 'operating_units': {'description': 'Integer number of a technology that is operating in each timestep, for any technology set to require integer capacity purchasing.', 'unit': 'integer', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'integer_dispatch=True AND cap_method=integer', 'domain': 'integer', 'bounds': {'min': 0, 'max': inf}}, 'available_flow_cap': {'description': 'Flow capacity that will be set to zero if the technology is not operating in a given timestep and will be set to the value of the decision variable `flow_cap` otherwise.', 'unit': 'power', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'integer_dispatch=True AND flow_cap_max AND NOT flow_cap_per_unit', 'bounds': {'min': 0, 'max': inf}}, 'async_flow_switch': {'description': 'Binary switch to force asynchronous outflow/consumption of technologies with both `flow_in` and `flow_out` defined. This ensures that a technology with carrier flow efficiencies < 100% cannot produce and consume a flow simultaneously to remove unwanted carrier from the system.', 'unit': 'integer', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'force_async_flow=True', 'domain': 'integer', 'bounds': {'min': 0, 'max': 1}}, 'unmet_demand': {'description': 'Virtual source of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined supply capacity to meet demand.', 'unit': 'energy', 'foreach': ['nodes', 'carriers', 'timesteps'], 'where': 'config.ensure_feasibility=True', 'bounds': {'min': 0, 'max': inf}}, 'unused_supply': {'description': 'Virtual sink of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. In model results, the negation of this variable is combined with `unmet_demand` and presented as only one variable: `unmet_demand`. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined consumption capacity to meet required outflow (e.g. from renewables without the possibility of curtailment).', 'unit': 'energy', 'foreach': ['nodes', 'carriers', 'timesteps'], 'where': 'config.ensure_feasibility=True', 'bounds': {'min': -inf, 'max': 0}}}, 'objectives': {'min_cost_optimisation': {'description': 'Minimise the total cost of installing and operating all technologies in the system. If multiple cost classes are present (e.g., monetary and co2 emissions), the weighted sum of total costs is minimised. Cost class weights can be defined in the indexed parameter `objective_cost_weights`.', 'equations': [{'where': 'any(cost, over=[nodes, techs, costs])', 'expression': 'sum(\n sum(cost, over=[nodes, techs])\n * objective_cost_weights,\n over=costs\n) + $unmet_demand'}, {'where': 'NOT any(cost, over=[nodes, techs, costs])', 'expression': '$unmet_demand'}], 'sub_expressions': {'unmet_demand': [{'where': 'config.ensure_feasibility=True', 'expression': 'sum(\n sum(unmet_demand - unused_supply, over=[carriers, nodes])\n * timestep_weights,\n over=timesteps\n) * bigM'}, {'where': 'NOT config.ensure_feasibility=True', 'expression': '0'}]}, 'sense': 'minimise', 'active': True}}, 'global_expressions': {'flow_out_inc_eff': {'description': 'Outflows after taking efficiency losses into account.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out', 'equations': [{'where': 'base_tech=transmission', 'expression': 'flow_out / (\n flow_out_eff * flow_out_parasitic_eff *\n flow_out_eff_per_distance ** default_if_empty(distance, 1)\n)'}, {'where': 'NOT base_tech=transmission', 'expression': 'flow_out / (flow_out_eff * flow_out_parasitic_eff)'}]}, 'flow_in_inc_eff': {'description': 'Inflows after taking efficiency losses into account.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_in', 'equations': [{'where': 'base_tech=transmission', 'expression': 'flow_in * flow_in_eff * flow_in_eff_per_distance ** default_if_empty(distance, 1)'}, {'where': 'NOT base_tech=transmission', 'expression': 'flow_in * flow_in_eff'}]}, 'cost_var': {'description': 'The operating costs per timestep of a technology.', 'unit': 'cost_per_time', 'foreach': ['nodes', 'techs', 'costs', 'timesteps'], 'where': 'cost_export OR cost_flow_in OR cost_flow_out', 'equations': [{'expression': 'timestep_weights * ($cost_export + $cost_flow_out + $cost_flow_in)'}], 'sub_expressions': {'cost_export': [{'where': 'flow_export', 'expression': 'sum(cost_export * default_if_empty(flow_export, 0), over=carriers)'}, {'where': 'NOT flow_export', 'expression': '0'}], 'cost_flow_in': [{'where': 'base_tech=supply', 'expression': 'cost_flow_in * source_use'}, {'where': 'NOT base_tech=supply', 'expression': 'sum(cost_flow_in * default_if_empty(flow_in, 0), over=carriers)'}], 'cost_flow_out': [{'expression': 'sum(cost_flow_out * default_if_empty(flow_out, 0), over=carriers)'}]}}, 'cost_investment_flow_cap': {'description': 'The investment costs associated with the nominal/rated capacity of a technology.', 'foreach': ['nodes', 'techs', 'carriers', 'costs'], 'where': 'flow_cap AND (cost_flow_cap OR cost_flow_cap_per_distance)', 'equations': [{'expression': '$cost_sum * flow_cap'}], 'sub_expressions': {'cost_sum': [{'where': 'base_tech=transmission', 'expression': '(cost_flow_cap + cost_flow_cap_per_distance * default_if_empty(distance, 0)) * 0.5'}, {'where': 'NOT base_tech=transmission', 'expression': 'cost_flow_cap'}]}}, 'cost_investment_storage_cap': {'description': 'The investment costs associated with the storage capacity of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_storage_cap AND storage_cap', 'equations': [{'expression': 'cost_storage_cap * storage_cap'}]}, 'cost_investment_source_cap': {'description': 'The investment costs associated with the source consumption capacity of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_source_cap AND source_cap', 'equations': [{'expression': 'cost_source_cap * source_cap'}]}, 'cost_investment_area_use': {'description': 'The investment costs associated with the area used by a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_area_use AND area_use', 'equations': [{'expression': 'cost_area_use * area_use'}]}, 'cost_investment_purchase': {'description': 'The investment costs associated with the binary purchase of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_purchase AND purchased_units', 'equations': [{'where': 'base_tech=transmission', 'expression': '(cost_purchase + cost_purchase_per_distance * default_if_empty(distance, 0)) * purchased_units * 0.5'}, {'where': 'NOT base_tech=transmission', 'expression': 'cost_purchase * purchased_units'}]}, 'cost_investment': {'description': 'The installation costs of a technology, including annualised investment costs and annual maintenance costs.', 'unit': 'cost', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_investment_flow_cap OR cost_investment_storage_cap OR cost_investment_source_cap OR cost_investment_area_use OR cost_investment_purchase', 'equations': [{'expression': '$annualisation_weight * (\n $depreciation_rate * (\n sum(default_if_empty(cost_investment_flow_cap, 0), over=carriers) +\n default_if_empty(cost_investment_storage_cap, 0) +\n default_if_empty(cost_investment_source_cap, 0) +\n default_if_empty(cost_investment_area_use, 0) +\n default_if_empty(cost_investment_purchase, 0)\n ) * (1 + cost_om_annual_investment_fraction)\n + sum(cost_om_annual * default_if_empty(flow_cap, 0), over=carriers)\n)\n'}], 'sub_expressions': {'annualisation_weight': [{'expression': 'sum(timestep_resolution * timestep_weights, over=timesteps) / 8760'}], 'depreciation_rate': [{'where': 'cost_depreciation_rate', 'expression': 'cost_depreciation_rate'}, {'where': 'NOT cost_depreciation_rate AND cost_interest_rate=0', 'expression': '1 / lifetime'}, {'where': 'NOT cost_depreciation_rate AND cost_interest_rate>0', 'expression': '(cost_interest_rate * ((1 + cost_interest_rate) ** lifetime)) / (((1 + cost_interest_rate) ** lifetime) - 1)'}]}}, 'cost': {'description': 'The total annualised costs of a technology, including installation and operation costs.', 'unit': 'cost', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_investment OR cost_var', 'equations': [{'expression': '$cost_investment + $cost_var_sum'}], 'sub_expressions': {'cost_investment': [{'where': 'cost_investment', 'expression': 'cost_investment'}, {'where': 'NOT cost_investment', 'expression': '0'}], 'cost_var_sum': [{'where': 'cost_var', 'expression': 'sum(cost_var, over=timesteps)'}, {'where': 'NOT cost_var', 'expression': '0'}]}, 'active': True}}}
- name :
- Urban-scale example model
We can find the same PV flow_cap_max
data as seen in m._model_run
m._model_data.flow_cap_max.sel(techs="pv").to_series().dropna()
carriers nodes electricity X1 250.0 X2 250.0 X3 50.0 Name: flow_cap_max, dtype: float64
Building and checking the optimisation problem¶
Calling m.build
allows us to build the optimisation problem, which creates arrays of Python objects from the YAML math formulation.
m.build()
[2024-01-27 14:23:56] INFO Optimisation Model | parameters | Generated.
[2024-01-27 14:23:57] INFO Optimisation Model | variables | Generated.
[2024-01-27 14:23:58] INFO Optimisation Model | global_expressions | Generated.
[2024-01-27 14:23:59] INFO Optimisation Model | constraints | Generated.
[2024-01-27 14:24:00] INFO Optimisation Model | objectives | Generated.
As with the calliope Model
, the backend has its own dataset containing all the arrays of backend objects
m.backend._dataset
<xarray.Dataset> Dimensions: (costs: 1, techs: 12, carriers: 3, nodes: 4, timesteps: 48) Coordinates: * costs (costs) object 'monetary' * techs (techs) object 'N1_to_X2' ... 'supply... * carriers (carriers) object 'electricity' ... '... * nodes (nodes) object 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 2005-07-01... Data variables: (12/109) objective_cost_weights (costs) object parameters[objective_c... bigM object parameters[bigM][0] base_tech (techs) object parameters[base_tech][... carrier_in (nodes, techs, carriers) object nan .... carrier_out (nodes, techs, carriers) object nan .... color (techs) object parameters[color][0] .... ... ... source_availability_supply (nodes, techs, timesteps) object nan ... balance_transmission (techs, timesteps) object constraints... symmetric_transmission (nodes, techs) object constraints[sym... export_balance (nodes, techs, carriers, timesteps) object ... link_chp_outputs (nodes, techs, timesteps) object nan ... min_cost_optimisation object objectives[min_cost_optimisati...
- costs: 1
- techs: 12
- carriers: 3
- nodes: 4
- timesteps: 48
- costs(costs)object'monetary'
array(['monetary'], dtype=object)
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
array(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], dtype=object)
- nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
array(['2005-07-01T00:00:00.000000000', '2005-07-01T01:00:00.000000000', '2005-07-01T02:00:00.000000000', '2005-07-01T03:00:00.000000000', '2005-07-01T04:00:00.000000000', '2005-07-01T05:00:00.000000000', '2005-07-01T06:00:00.000000000', '2005-07-01T07:00:00.000000000', '2005-07-01T08:00:00.000000000', '2005-07-01T09:00:00.000000000', '2005-07-01T10:00:00.000000000', '2005-07-01T11:00:00.000000000', '2005-07-01T12:00:00.000000000', '2005-07-01T13:00:00.000000000', '2005-07-01T14:00:00.000000000', '2005-07-01T15:00:00.000000000', '2005-07-01T16:00:00.000000000', '2005-07-01T17:00:00.000000000', '2005-07-01T18:00:00.000000000', '2005-07-01T19:00:00.000000000', '2005-07-01T20:00:00.000000000', '2005-07-01T21:00:00.000000000', '2005-07-01T22:00:00.000000000', '2005-07-01T23:00:00.000000000', '2005-07-02T00:00:00.000000000', '2005-07-02T01:00:00.000000000', '2005-07-02T02:00:00.000000000', '2005-07-02T03:00:00.000000000', '2005-07-02T04:00:00.000000000', '2005-07-02T05:00:00.000000000', '2005-07-02T06:00:00.000000000', '2005-07-02T07:00:00.000000000', '2005-07-02T08:00:00.000000000', '2005-07-02T09:00:00.000000000', '2005-07-02T10:00:00.000000000', '2005-07-02T11:00:00.000000000', '2005-07-02T12:00:00.000000000', '2005-07-02T13:00:00.000000000', '2005-07-02T14:00:00.000000000', '2005-07-02T15:00:00.000000000', '2005-07-02T16:00:00.000000000', '2005-07-02T17:00:00.000000000', '2005-07-02T18:00:00.000000000', '2005-07-02T19:00:00.000000000', '2005-07-02T20:00:00.000000000', '2005-07-02T21:00:00.000000000', '2005-07-02T22:00:00.000000000', '2005-07-02T23:00:00.000000000'], dtype='datetime64[ns]')
- objective_cost_weights(costs)objectparameters[objective_cost_weight...
- is_result :
- False
- default :
- 1
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c266c0>], dtype=object)
- bigM()objectparameters[bigM][0]
- is_result :
- False
- default :
- 1000000000.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c26490>, dtype=object)
- base_tech(techs)objectparameters[base_tech][0] ... par...
- is_result :
- False
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c26fd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c270c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c271b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c272a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c272f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27340>], dtype=object)
- carrier_in(nodes, techs, carriers)objectnan nan ... nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27930>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c279d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27a70>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27ac0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27a20>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27700>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c277f0>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27570>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27c00>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]]], dtype=object)
- carrier_out(nodes, techs, carriers)objectnan nan ... nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc370>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc410>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc500>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc550>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc4b0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc050>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc5f0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc190>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc320>, nan], [nan, nan, nan]]], dtype=object)
- color(techs)objectparameters[color][0] ... paramet...
- is_result :
- False
- default :
- nan
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27de0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c26f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c273e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc8c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc820>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc6e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdccd0>], dtype=object)
- cost_flow_cap_per_distance(techs, costs)objectparameters[cost_flow_cap_per_dis...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcb90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdca50>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcaa0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdceb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdce10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd270>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd360>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd3b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd400>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd450>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd180>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd4f0>]], dtype=object)
- cost_interest_rate(techs, costs)objectparameters[cost_interest_rate][0...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd090>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd1d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd220>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcfa0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcbe0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcb40>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc7d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd680>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd5e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd770>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd9f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdda90>]], dtype=object)
- distance(techs)objectparameters[distance][0] ... nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff', 'cost_investment_flow_cap', 'flow_out_inc_eff'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd8b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcdc0>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- flow_cap_max(techs, carriers, nodes)objectparameters[flow_cap_max][0] ... ...
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddc70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd7c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdee90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde800>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdffc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0050>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddbd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde3a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf250>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfde0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfe30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0c30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0c80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0d20>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdefd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf0c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfe80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfed0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdff70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0e60>]]], dtype=object)
- flow_out_eff_per_distance(techs)objectparameters[flow_out_eff_per_dist...
- is_result :
- False
- default :
- 1.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdde00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddd10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdddb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c278e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27d90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0eb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d10e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0ff0>], dtype=object)
- lifetime(techs)objectparameters[lifetime][0] ... para...
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d11d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d14f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d18b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d19a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1a90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1b80>], dtype=object)
- name(techs)objectparameters[name][0] ... paramete...
- is_result :
- False
- default :
- nan
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1cc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1c20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d20d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2120>], dtype=object)
- techs_inheritance(techs)objectparameters[techs_inheritance][0]...
- is_result :
- False
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d17c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d16d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d21c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1770>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d26c0>], dtype=object)
- carrier_export(techs, carriers)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d24e0>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2300>, nan, nan], [nan, nan, nan], [nan, nan, nan]], dtype=object)
- cost_flow_cap(nodes, techs, costs, carriers)objectparameters[cost_flow_cap][0] ......
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
array([[[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2a80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3d90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4a00>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1d60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3750>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4d70>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4f50>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5090>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d32a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c51d0>]], ... [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c46e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5590>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d38e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c47d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5770>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3a70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c58b0>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3bb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5a40>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3d40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4be0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5b30>]]]], dtype=object)
- cost_flow_out(techs, costs, carriers, nodes)objectparameters[cost_flow_out][0] ......
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_var'}
- coords_in_name :
- False
array([[[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d12c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d29e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d28f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2800>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6fd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c70c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7e80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c77a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cc050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cc0a0>]]], [[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5e00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7110>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7e30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccd70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccdc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cce10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccb90>]]], [[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6e40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6e90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6f80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7f70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7fc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7ed0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cce60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccf00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccf50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccfa0>]]]], dtype=object)
- flow_out_eff(techs, carriers)objectparameters[flow_out_eff][0] ... ...
- is_result :
- False
- default :
- 1.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c60d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd1d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdb30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdb80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd7c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdbd0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2e40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdc20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdc70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cc410>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdcc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd8b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdd10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd900>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdd60>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdae0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd130>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd9a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cddb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccff0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd9f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cde50>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cceb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cda40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdea0>]], dtype=object)
- heat_to_power_ratio(techs)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'link_chp_outputs'}
- coords_in_name :
- False
array([nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd5e0>, nan, nan, nan, nan, nan], dtype=object)
- area_use_max(techs)objectparameters[area_use_max][0] ... ...
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd6d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd3b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd310>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce850>], dtype=object)
- area_use_per_flow_cap(techs)objectnan nan nan ... nan nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'area_use_per_flow_capacity'}
- coords_in_name :
- False
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce5d0>, nan, nan], dtype=object)
- flow_out_parasitic_eff(techs)objectparameters[flow_out_parasitic_ef...
- is_result :
- False
- default :
- 1.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'flow_out_max'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce3f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdf40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdfe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cefd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf0c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf160>], dtype=object)
- source_unit(techs)objectparameters[source_unit][0] ... p...
- is_result :
- False
- default :
- absolute
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cebc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce9e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cec60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cecb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cead0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf570>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf5c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf750>], dtype=object)
- cost_flow_in(techs, costs)objectparameters[cost_flow_in][0] ... ...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_var'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ceda0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cda90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ceee0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf7f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce260>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cee90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce0d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfc00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfca0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfcf0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfa70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfd40>]], dtype=object)
- source_use_max(techs)objectparameters[source_use_max][0] .....
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf930>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfd90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf2f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cff70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cef80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12bc0>], dtype=object)
- cost_export(nodes, techs, costs, carriers, timesteps)objectparameters[cost_export][0] ... p...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_var'}
- coords_in_name :
- False
array([[[[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfac0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfb60>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c1130>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c1180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c11d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650491d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049220>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049fe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6504a030>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a4e0>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509b250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509b2a0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65048320>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650490e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049130>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65099540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65099590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650995e0>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a3a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a3f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eea800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eea850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eea8a0>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb6b0>]]]]], dtype=object)
- cost_om_annual(nodes, techs, costs)objectparameters[cost_om_annual][0] .....
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64bfcaf0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12580>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfe80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb750>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb930>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010050>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010190>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650102d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010410>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010550>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010690>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650107d0>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12da0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf8e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb9d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb840>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebf20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650100a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650101e0>], ... [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010230>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010370>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650104b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650105f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010730>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010870>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c13a20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cffc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb7a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb8e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebfc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010140>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010280>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650103c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010500>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010640>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010780>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650108c0>]]], dtype=object)
- latitude(nodes)objectparameters[latitude][0] ... para...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebb10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c0140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c0320>], dtype=object)
- longitude(nodes)objectparameters[longitude][0] ... par...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010f00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010d20>], dtype=object)
- available_area(nodes)objectparameters[available_area][0] .....
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'area_use_capacity_per_loc'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650111d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010be0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650109b0>], dtype=object)
- source_use_equals(techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'source_availability_supply'}
- coords_in_name :
- False
array([[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650123a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650123f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650124e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012530>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650125d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650126c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012710>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]], dtype=object)
- sink_use_equals(timesteps, techs, nodes)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'balance_demand'}
- coords_in_name :
- False
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., ... ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], dtype=object)
- definition_matrix(nodes, techs, carriers)objectparameters[definition_matrix][0]...
- is_result :
- False
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65011a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650114a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650117c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65011950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebde0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec820>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec730>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec5f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec5a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecb90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecbe0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecc30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eccd0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecd20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecd70>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eee90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eeee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eef30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eef80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eefd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef070>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef0c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef160>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef250>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef2f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef340>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef3e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef430>]]], dtype=object)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'source_max', 'cost_investment', 'flow_in_max', 'flow_out_max'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650129e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec8c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef750>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef5c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef570>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efb60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efc50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efcf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efd40>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c0a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c0f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c190>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c1e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c2d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c3c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c410>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c500>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c5a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c5f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c640>], dtype=object)
- timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment', 'cost_var', 'min_cost_optimisation'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cb90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cbe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cc30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ccd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cd20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cd70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cdc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ce10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ce60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ceb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cf00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cf50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cfa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cff0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d310>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d3b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d4a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d4f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d5e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d6d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d720>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d7c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d8b0>], dtype=object)
- area_use_min()objectparameters[area_use_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593e710>, dtype=object)
- cap_method()objectparameters[cap_method][0]
- original_dtype :
- <U10
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593e2b0>, dtype=object)
- cost_area_use()objectparameters[cost_area_use][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ed00>, dtype=object)
- cost_depreciation_rate()objectparameters[cost_depreciation_rat...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f480>, dtype=object)
- cost_om_annual_investment_fraction()objectparameters[cost_om_annual_invest...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593fc50>, dtype=object)
- cost_purchase()objectparameters[cost_purchase][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f610>, dtype=object)
- cost_purchase_per_distance()objectparameters[cost_purchase_per_dis...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593dae0>, dtype=object)
- cost_source_cap()objectparameters[cost_source_cap][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef9d0>, dtype=object)
- cost_storage_cap()objectparameters[cost_storage_cap][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eb6b0>, dtype=object)
- cyclic_storage()objectparameters[cyclic_storage][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593e620>, dtype=object)
- export_max()objectparameters[export_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f390>, dtype=object)
- flow_cap_max_systemwide()objectparameters[flow_cap_max_systemwi...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ea300>, dtype=object)
- flow_cap_min()objectparameters[flow_cap_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f570>, dtype=object)
- flow_cap_min_systemwide()objectparameters[flow_cap_min_systemwi...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e99f0>, dtype=object)
- flow_cap_per_storage_cap_max()objectparameters[flow_cap_per_storage_...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9e00>, dtype=object)
- flow_cap_per_storage_cap_min()objectparameters[flow_cap_per_storage_...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eada0>, dtype=object)
- flow_cap_per_unit()float64nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(nan)
- flow_in_eff()objectparameters[flow_in_eff][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9810>, dtype=object)
- flow_in_eff_per_distance()objectparameters[flow_in_eff_per_dista...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e8370>, dtype=object)
- flow_out_min_relative()objectparameters[flow_out_min_relative...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ebe30>, dtype=object)
- flow_ramping()objectparameters[flow_ramping][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9900>, dtype=object)
- force_async_flow()objectparameters[force_async_flow][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e80f0>, dtype=object)
- include_storage()objectparameters[include_storage][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e88c0>, dtype=object)
- integer_dispatch()objectparameters[integer_dispatch][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9180>, dtype=object)
- one_way()objectparameters[one_way][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ea760>, dtype=object)
- purchased_units_max()objectparameters[purchased_units_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eb480>, dtype=object)
- purchased_units_max_systemwide()objectparameters[purchased_units_max_s...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f040f0>, dtype=object)
- purchased_units_min()objectparameters[purchased_units_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e8f00>, dtype=object)
- purchased_units_min_systemwide()objectparameters[purchased_units_min_s...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e8e60>, dtype=object)
- sink_unit()objectparameters[sink_unit][0]
- original_dtype :
- <U8
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f06260>, dtype=object)
- sink_use_max()objectparameters[sink_use_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05d10>, dtype=object)
- sink_use_min()objectparameters[sink_use_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eb520>, dtype=object)
- source_cap_equals_flow_cap()objectparameters[source_cap_equals_flo...
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05860>, dtype=object)
- source_cap_max()objectparameters[source_cap_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f065d0>, dtype=object)
- source_cap_min()objectparameters[source_cap_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e85f0>, dtype=object)
- source_eff()objectparameters[source_eff][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05630>, dtype=object)
- source_use_min()objectparameters[source_use_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f06b20>, dtype=object)
- storage_cap_max()objectparameters[storage_cap_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f06990>, dtype=object)
- storage_cap_min()objectparameters[storage_cap_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f07480>, dtype=object)
- storage_cap_per_unit()float64nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(nan)
- storage_discharge_depth()objectparameters[storage_discharge_dep...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05310>, dtype=object)
- storage_initial()objectparameters[storage_initial][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f07bb0>, dtype=object)
- storage_loss()objectparameters[storage_loss][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05b30>, dtype=object)
- flow_cap(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- variables
- references :
- {'cost_investment_flow_cap', 'area_use_per_flow_capacity', 'symmetric_transmission', 'cost_investment', 'flow_in_max', 'flow_out_max'}
- coords_in_name :
- False
- description :
- A technology's flow capacity, also known as its nominal or nameplate capacity.
- unit :
- power
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e2ad0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e2cd0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e1ed0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e1250>], ... [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659835d0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659827d0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65982750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65982e50>], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65982fd0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65983f50>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65983050>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65983450>, nan], [nan, nan, nan]]], dtype=object)
- link_flow_cap(techs)objectvariables[link_flow_cap][0] ... nan
- obj_type :
- variables
- references :
- {'symmetric_transmission'}
- coords_in_name :
- False
- description :
- A transmission technology's flow capacity, also known as its nominal or nameplate capacity.
- unit :
- power
array([<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef1050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef0fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2d50>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- flow_out(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'export_balance', 'cost_var', 'system_balance', 'link_chp_outputs', 'flow_out_inc_eff', 'flow_out_max'}
- coords_in_name :
- False
- description :
- The outflow of a technology per timestep, also known as the flow discharged (from `storage` technologies) or the flow received (by `transmission` technologies) on a link.
- unit :
- energy
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e2050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e1c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65917450>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef0f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef23d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2450>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef24d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef25d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f254d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f25550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f255d0>]], ... ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f70850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f708d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f70950>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f709d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f70a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f70ad0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f72050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f720d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f72150>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- flow_in(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'system_balance', 'flow_in_inc_eff', 'cost_var', 'flow_in_max'}
- coords_in_name :
- False
- description :
- The inflow to a technology per timestep, also known as the flow consumed (by `storage` technologies) or the flow sent (by `transmission` technologies) on a link.
- unit :
- energy
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f723d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e19d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659e17d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f74750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f746d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f74650>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f745d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f74550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f744d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f75e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f75ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f75f50>]], ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fc9950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fc99d0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- flow_export(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'cost_var', 'system_balance', 'export_balance'}
- coords_in_name :
- False
- description :
- The flow of a carrier exported outside the system boundaries by a technology per timestep.
- unit :
- energy
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., [[<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fd71d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fd7250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fd72d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df08d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df0950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df09d0>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- area_use(nodes, techs)objectnan nan nan ... nan nan
- obj_type :
- variables
- references :
- {'source_availability_supply', 'area_use_per_flow_capacity', 'area_use_capacity_per_loc'}
- coords_in_name :
- False
- description :
- The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.
- unit :
- area
array([[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df34d0>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df1050>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df1a50>, nan, nan]], dtype=object)
- source_use(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'source_availability_supply', 'source_max', 'cost_var', 'balance_supply_no_storage'}
- coords_in_name :
- False
- description :
- The carrier flow consumed from outside the system boundaries by a `supply` technology.
- unit :
- energy
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df24d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df2850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df2a50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e04550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e044d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e04450>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e043d0>, ... [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e340d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e34150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e341d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e35750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e357d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e35850>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e358d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e35950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e359d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e36f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e36fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e37050>], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- source_cap(nodes, techs)objectnan nan ... nan
- obj_type :
- variables
- references :
- {'source_max'}
- coords_in_name :
- False
- description :
- The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.
- unit :
- power
array([[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65917dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fd53d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64fd5c50>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65915650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659170d0>, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a659174d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65917e50>, nan]], dtype=object)
- unmet_demand(nodes, carriers, timesteps)objectnan ... variables[unmet_demand][...
- obj_type :
- variables
- references :
- {'min_cost_optimisation', 'system_balance'}
- coords_in_name :
- False
- description :
- Virtual source of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined supply capacity to meet demand.
- unit :
- energy
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df29d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df2d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64df10d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e98050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e980d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e98150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e981d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e98250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e982d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e984d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e983d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64e98450>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa6d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa7d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaa9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaaa50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaaad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaab50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaabd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaac50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaacd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaad50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaadd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaae50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaaed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaaf50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64eaafd0>]]], dtype=object)
- unused_supply(nodes, carriers, timesteps)objectnan ... variables[unused_supply]...
- obj_type :
- variables
- references :
- {'min_cost_optimisation', 'system_balance'}
- coords_in_name :
- False
- description :
- Virtual sink of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. In model results, the negation of this variable is combined with `unmet_demand` and presented as only one variable: `unmet_demand`. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined consumption capacity to meet required outflow (e.g. from renewables without the possibility of curtailment).
- unit :
- energy
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef38d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64f748d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a65983dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef3950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef28d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef3ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef3b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef02d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef17d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef2050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ef3a50>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee33d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee34d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee35d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee36d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee37d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee38d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee39d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f4a64ee3c50>]]], dtype=object)
- flow_out_inc_eff(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'balance_transmission', 'balance_supply_no_storage', 'balance_conversion'}
- coords_in_name :
- False
- description :
- Outflows after taking efficiency losses into account.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64e7f520>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f3b660>, <pyomo.core.kernel.expression.expression object at 0x7f4a68bc68a0>, ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64f81f40>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f82b70>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f83390>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64f81fe0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f82030>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f819a0>, ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64f801e0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f803c0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f80460>]], ... ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64ece170>, <pyomo.core.kernel.expression.expression object at 0x7f4a64ece1c0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64ece210>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64ece350>, <pyomo.core.kernel.expression.expression object at 0x7f4a64ecd770>, <pyomo.core.kernel.expression.expression object at 0x7f4a64ecd7c0>, ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64c1b390>, <pyomo.core.kernel.expression.expression object at 0x7f4a64c1b7a0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64c1b6b0>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- flow_in_inc_eff(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'balance_transmission', 'balance_demand', 'balance_conversion'}
- coords_in_name :
- False
- description :
- Inflows after taking efficiency losses into account.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64f166c0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f15e50>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f14230>, ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64f15130>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f142d0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f15b80>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64f15900>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f15ae0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f14b90>, ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64f146e0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f14820>, <pyomo.core.kernel.expression.expression object at 0x7f4a64f147d0>]], ... <pyomo.core.kernel.expression.expression object at 0x7f4a64eb7610>, <pyomo.core.kernel.expression.expression object at 0x7f4a64eb7660>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- cost_var(nodes, techs, costs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'cost'}
- coords_in_name :
- False
- description :
- The operating costs per timestep of a technology.
- unit :
- cost_per_time
array([[[[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], ... [[[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan]], [[<pyomo.core.kernel.expression.expression object at 0x7f4a643632f0>, <pyomo.core.kernel.expression.expression object at 0x7f4a64363340>, <pyomo.core.kernel.expression.expression object at 0x7f4a64363390>, ..., <pyomo.core.kernel.expression.expression object at 0x7f4a64370140>, <pyomo.core.kernel.expression.expression object at 0x7f4a64370190>, <pyomo.core.kernel.expression.expression object at 0x7f4a643701e0>]], [[nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- cost_investment_flow_cap(nodes, techs, carriers, costs)objectnan nan ... nan nan
- obj_type :
- global_expressions
- references :
- {'cost_investment'}
- coords_in_name :
- False
- description :
- The investment costs associated with the nominal/rated capacity of a technology.
array([[[[nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a643196d0>]], [[nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64318960>]], [[nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64318460>]], [[nan], [nan], [nan]], [[nan], [nan], [nan]], ... [[nan], [nan], [nan]], [[nan], [nan], [nan]], [[<pyomo.core.kernel.expression.expression object at 0x7f4a64db5d10>], [nan], [nan]], [[nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64db5720>], [nan]], [[nan], [nan], [nan]]]], dtype=object)
- cost_investment(nodes, techs, costs)objectglobal_expressions[cost_investme...
- obj_type :
- global_expressions
- references :
- {'cost'}
- coords_in_name :
- False
- description :
- The installation costs of a technology, including annualised investment costs and annual maintenance costs.
- unit :
- cost
array([[[<pyomo.core.kernel.expression.expression object at 0x7f4a64cab7a0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a64c862b0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a64c13660>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64c13e80>], [<pyomo.core.kernel.expression.expression object at 0x7f4a64c9c0a0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a64f0cb40>], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a658ec640>], ... [<pyomo.core.kernel.expression.expression object at 0x7f4a64f3b980>], [nan], [nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64f3a3f0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a6593e350>], [nan]], [[nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a6593f930>], [nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a6593e760>], [<pyomo.core.kernel.expression.expression object at 0x7f4a6593ef80>], [nan], [nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a6593c960>], [<pyomo.core.kernel.expression.expression object at 0x7f4a6593f200>], [nan]]], dtype=object)
- cost(nodes, techs, costs)objectglobal_expressions[cost][8] ... nan
- obj_type :
- global_expressions
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- description :
- The total annualised costs of a technology, including installation and operation costs.
- unit :
- cost
array([[[<pyomo.core.kernel.expression.expression object at 0x7f4a641a2ad0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a3390>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a3340>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a1770>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a3480>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a3430>], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a64167c50>], ... [<pyomo.core.kernel.expression.expression object at 0x7f4a64167f20>], [nan], [nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a0aa0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a0960>], [nan]], [[nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a21c0>], [nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a32a0>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a00f0>], [nan], [nan], [nan], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a3160>], [<pyomo.core.kernel.expression.expression object at 0x7f4a641a06e0>], [nan]]], dtype=object)
- area_use_per_flow_capacity(nodes, techs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set a fixed relationship between a technology's flow capacity and its area use.
array([[[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], ... [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e56430>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e562e0>, nan, nan], [nan, nan, nan], [nan, nan, nan]]], dtype=object)
- area_use_capacity_per_loc(nodes)objectnan ... constraints[area_use_cap...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.
array([nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659490f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594a350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e57d90>], dtype=object)
- balance_conversion(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the relationship between a `conversion` technology's outflow and consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- flow_out_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound of a technology's outflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a65949e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659491d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594bb60>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bef850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed470>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bee7b0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68befd90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed8d0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bef460>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed400>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22e40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22eb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22f20>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22f90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e23000>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e23070>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e943d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94440>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e944b0>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- flow_in_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound of a technology's inflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659da5f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659da7b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659dab30>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594a9e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594ab30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594b230>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594a190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594b310>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594ac10>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e97070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e970e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e97150>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7944b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f794520>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- source_max(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound of a `supply` technology's source consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e95da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64302c10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64302cf0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50a60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50ad0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50b40>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50bb0>, ... [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64326040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a643260b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64326120>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e959b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e56580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e54670>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e56c10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e54910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594bc40>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64327230>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a643272a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64327310>], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- system_balance(nodes, carriers, timesteps)objectnan ... constraints[system_balan...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659dbbd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94ad0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e95240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96c80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e955c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e95ef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96970>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94c90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a643546e0>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edd30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edda0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ede10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ede80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edf60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edfd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee0b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee200>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee4a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee510>]]], dtype=object)
- balance_demand(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- balance_supply_no_storage(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the outflow of a `supply` technology to its consumption of the available source.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a641019b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101a20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101a90>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101b70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101be0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64102eb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64102f20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64102f90>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- source_availability_supply(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a641037e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f734050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f734b40>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7cc90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7e3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7d390>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7d940>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7c210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7db00>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7da90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7da20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7d9b0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427c130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427c1a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427c210>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- balance_transmission(techs, timesteps)objectconstraints[balance_transmission...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f735b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7341a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7359b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7343d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f734130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f735f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f735e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7360b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ef770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbcb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbd20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbf50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbd90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64302ba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f767850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f764c90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7670e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7654e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64103bd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a641039a0>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]], dtype=object)
- symmetric_transmission(nodes, techs)objectconstraints[symmetric_transmissi...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the flow capacity of two `transmission` technologies representing the same link in the system.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427d9b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427cc20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6d4de0>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6d4910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c4f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c4e50>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c6040>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c6740>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c60b0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c4670>, nan, nan, nan, nan, nan, nan, nan]], dtype=object)
- export_balance(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., [[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f571b70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f571be0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f571c50>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f572f20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f572f90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f573000>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- link_chp_outputs(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the relationship between heat and electricity output
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- min_cost_optimisation()objectobjectives[min_cost_optimisation...
- obj_type :
- objectives
- references :
- set()
- coords_in_name :
- False
- description :
- Minimise the total cost of installing and operating all technologies in the system. If multiple cost classes are present (e.g., monetary and co2 emissions), the weighted sum of total costs is minimised. Cost class weights can be defined in the indexed parameter `objective_cost_weights`.
array(<pyomo.core.kernel.objective.objective object at 0x7f4a659be630>, dtype=object)
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- timestepsPandasIndex
PandasIndex(DatetimeIndex(['2005-07-01 00:00:00', '2005-07-01 01:00:00', '2005-07-01 02:00:00', '2005-07-01 03:00:00', '2005-07-01 04:00:00', '2005-07-01 05:00:00', '2005-07-01 06:00:00', '2005-07-01 07:00:00', '2005-07-01 08:00:00', '2005-07-01 09:00:00', '2005-07-01 10:00:00', '2005-07-01 11:00:00', '2005-07-01 12:00:00', '2005-07-01 13:00:00', '2005-07-01 14:00:00', '2005-07-01 15:00:00', '2005-07-01 16:00:00', '2005-07-01 17:00:00', '2005-07-01 18:00:00', '2005-07-01 19:00:00', '2005-07-01 20:00:00', '2005-07-01 21:00:00', '2005-07-01 22:00:00', '2005-07-01 23:00:00', '2005-07-02 00:00:00', '2005-07-02 01:00:00', '2005-07-02 02:00:00', '2005-07-02 03:00:00', '2005-07-02 04:00:00', '2005-07-02 05:00:00', '2005-07-02 06:00:00', '2005-07-02 07:00:00', '2005-07-02 08:00:00', '2005-07-02 09:00:00', '2005-07-02 10:00:00', '2005-07-02 11:00:00', '2005-07-02 12:00:00', '2005-07-02 13:00:00', '2005-07-02 14:00:00', '2005-07-02 15:00:00', '2005-07-02 16:00:00', '2005-07-02 17:00:00', '2005-07-02 18:00:00', '2005-07-02 19:00:00', '2005-07-02 20:00:00', '2005-07-02 21:00:00', '2005-07-02 22:00:00', '2005-07-02 23:00:00'], dtype='datetime64[ns]', name='timesteps', freq=None))
There is then a public API to access filtered views on this dataset, e.g. input parameters...
m.backend.parameters
<xarray.Dataset> Dimensions: (costs: 1, techs: 12, nodes: 4, carriers: 3, timesteps: 48) Coordinates: * costs (costs) object 'monetary' * techs (techs) object 'N1_to_X2' ... 'supply... * carriers (carriers) object 'electricity' ... '... * nodes (nodes) object 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 2005-07-01... Data variables: (12/78) objective_cost_weights (costs) object parameters[objective_c... bigM object parameters[bigM][0] base_tech (techs) object parameters[base_tech][... carrier_in (nodes, techs, carriers) object nan .... carrier_out (nodes, techs, carriers) object nan .... color (techs) object parameters[color][0] .... ... ... storage_cap_max object parameters[storage_cap_max][0] storage_cap_min object parameters[storage_cap_min][0] storage_cap_per_unit float64 nan storage_discharge_depth object parameters[storage_discharge_d... storage_initial object parameters[storage_initial][0] storage_loss object parameters[storage_loss][0]
- costs: 1
- techs: 12
- nodes: 4
- carriers: 3
- timesteps: 48
- costs(costs)object'monetary'
array(['monetary'], dtype=object)
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
array(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], dtype=object)
- nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
array(['2005-07-01T00:00:00.000000000', '2005-07-01T01:00:00.000000000', '2005-07-01T02:00:00.000000000', '2005-07-01T03:00:00.000000000', '2005-07-01T04:00:00.000000000', '2005-07-01T05:00:00.000000000', '2005-07-01T06:00:00.000000000', '2005-07-01T07:00:00.000000000', '2005-07-01T08:00:00.000000000', '2005-07-01T09:00:00.000000000', '2005-07-01T10:00:00.000000000', '2005-07-01T11:00:00.000000000', '2005-07-01T12:00:00.000000000', '2005-07-01T13:00:00.000000000', '2005-07-01T14:00:00.000000000', '2005-07-01T15:00:00.000000000', '2005-07-01T16:00:00.000000000', '2005-07-01T17:00:00.000000000', '2005-07-01T18:00:00.000000000', '2005-07-01T19:00:00.000000000', '2005-07-01T20:00:00.000000000', '2005-07-01T21:00:00.000000000', '2005-07-01T22:00:00.000000000', '2005-07-01T23:00:00.000000000', '2005-07-02T00:00:00.000000000', '2005-07-02T01:00:00.000000000', '2005-07-02T02:00:00.000000000', '2005-07-02T03:00:00.000000000', '2005-07-02T04:00:00.000000000', '2005-07-02T05:00:00.000000000', '2005-07-02T06:00:00.000000000', '2005-07-02T07:00:00.000000000', '2005-07-02T08:00:00.000000000', '2005-07-02T09:00:00.000000000', '2005-07-02T10:00:00.000000000', '2005-07-02T11:00:00.000000000', '2005-07-02T12:00:00.000000000', '2005-07-02T13:00:00.000000000', '2005-07-02T14:00:00.000000000', '2005-07-02T15:00:00.000000000', '2005-07-02T16:00:00.000000000', '2005-07-02T17:00:00.000000000', '2005-07-02T18:00:00.000000000', '2005-07-02T19:00:00.000000000', '2005-07-02T20:00:00.000000000', '2005-07-02T21:00:00.000000000', '2005-07-02T22:00:00.000000000', '2005-07-02T23:00:00.000000000'], dtype='datetime64[ns]')
- objective_cost_weights(costs)objectparameters[objective_cost_weight...
- is_result :
- False
- default :
- 1
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c266c0>], dtype=object)
- bigM()objectparameters[bigM][0]
- is_result :
- False
- default :
- 1000000000.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c26490>, dtype=object)
- base_tech(techs)objectparameters[base_tech][0] ... par...
- is_result :
- False
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c26fd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c270c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c271b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c272a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c272f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27340>], dtype=object)
- carrier_in(nodes, techs, carriers)objectnan nan ... nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27930>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c279d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27a70>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27ac0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27a20>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27700>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c277f0>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27570>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27c00>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]]], dtype=object)
- carrier_out(nodes, techs, carriers)objectnan nan ... nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc370>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc410>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc500>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc550>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc4b0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc050>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc5f0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc190>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc320>, nan], [nan, nan, nan]]], dtype=object)
- color(techs)objectparameters[color][0] ... paramet...
- is_result :
- False
- default :
- nan
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27de0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c26f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c273e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc8c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc820>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc6e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdccd0>], dtype=object)
- cost_flow_cap_per_distance(techs, costs)objectparameters[cost_flow_cap_per_dis...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcb90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdca50>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcaa0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdceb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdce10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd270>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd360>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd3b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd400>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd450>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd180>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd4f0>]], dtype=object)
- cost_interest_rate(techs, costs)objectparameters[cost_interest_rate][0...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd090>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd1d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd220>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcfa0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcbe0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcb40>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdc7d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd680>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd5e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd770>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd9f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdda90>]], dtype=object)
- distance(techs)objectparameters[distance][0] ... nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff', 'cost_investment_flow_cap', 'flow_out_inc_eff'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd8b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdcdc0>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- flow_cap_max(techs, carriers, nodes)objectparameters[flow_cap_max][0] ... ...
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddc70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd7c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdee90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde800>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdffc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0050>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddbd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdd540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde3a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf250>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfde0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfe30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0c30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0c80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0d20>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdefd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdf0c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfe80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdfed0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdff70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0e60>]]], dtype=object)
- flow_out_eff_per_distance(techs)objectparameters[flow_out_eff_per_dist...
- is_result :
- False
- default :
- 1.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdde00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddd10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cddef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cdddb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c278e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c27d90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0eb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d10e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d0ff0>], dtype=object)
- lifetime(techs)objectparameters[lifetime][0] ... para...
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d11d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d14f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d18b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d19a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1a90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1b80>], dtype=object)
- name(techs)objectparameters[name][0] ... paramete...
- is_result :
- False
- default :
- nan
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1cc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1c20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d20d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2120>], dtype=object)
- techs_inheritance(techs)objectparameters[techs_inheritance][0]...
- is_result :
- False
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d17c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d16d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d21c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1770>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d26c0>], dtype=object)
- carrier_export(techs, carriers)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d24e0>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2300>, nan, nan], [nan, nan, nan], [nan, nan, nan]], dtype=object)
- cost_flow_cap(nodes, techs, costs, carriers)objectparameters[cost_flow_cap][0] ......
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
array([[[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2a80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3d90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4a00>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d1d60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3750>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4d70>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4f50>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5090>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d32a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c51d0>]], ... [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c46e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5590>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d38e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c47d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5770>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3a70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c58b0>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3bb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5a40>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d3d40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c4be0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5b30>]]]], dtype=object)
- cost_flow_out(techs, costs, carriers, nodes)objectparameters[cost_flow_out][0] ......
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_var'}
- coords_in_name :
- False
array([[[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d12c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d29e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d28f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2800>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6fd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c70c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7e80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c77a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cc050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cc0a0>]]], [[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64cde080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c5e00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7110>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7e30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccd70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccdc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cce10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccb90>]]], [[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6e40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6e90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6f80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7f70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7fc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c7ed0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cce60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccf00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccf50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccfa0>]]]], dtype=object)
- flow_out_eff(techs, carriers)objectparameters[flow_out_eff][0] ... ...
- is_result :
- False
- default :
- 1.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c60d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd1d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdb30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c6030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdb80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd7c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdbd0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2e40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdc20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659d2d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdc70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cc410>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdcc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd8b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdd10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd900>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdd60>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdae0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd130>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd9a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cddb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ccff0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd9f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cde50>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cceb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cda40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdea0>]], dtype=object)
- heat_to_power_ratio(techs)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'link_chp_outputs'}
- coords_in_name :
- False
array([nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd5e0>, nan, nan, nan, nan, nan], dtype=object)
- area_use_max(techs)objectparameters[area_use_max][0] ... ...
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd6d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd3b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd310>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cd680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce850>], dtype=object)
- area_use_per_flow_cap(techs)objectnan nan nan ... nan nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'area_use_per_flow_capacity'}
- coords_in_name :
- False
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce5d0>, nan, nan], dtype=object)
- flow_out_parasitic_eff(techs)objectparameters[flow_out_parasitic_ef...
- is_result :
- False
- default :
- 1.0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'flow_out_max'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce3f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdf40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cdfe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cefd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf0c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf160>], dtype=object)
- source_unit(techs)objectparameters[source_unit][0] ... p...
- is_result :
- False
- default :
- absolute
- original_dtype :
- object
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cebc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce9e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cec60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cecb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cead0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf570>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf5c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf750>], dtype=object)
- cost_flow_in(techs, costs)objectparameters[cost_flow_in][0] ... ...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_var'}
- coords_in_name :
- False
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ceda0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cda90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ceee0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf7f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce260>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cee90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659ce0d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfc00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfca0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfcf0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfa70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfd40>]], dtype=object)
- source_use_max(techs)objectparameters[source_use_max][0] .....
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf930>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfd90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf2f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cff70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cef80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12bc0>], dtype=object)
- cost_export(nodes, techs, costs, carriers, timesteps)objectparameters[cost_export][0] ... p...
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_var'}
- coords_in_name :
- False
array([[[[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfac0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfb60>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c1130>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c1180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c11d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650491d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049220>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049fe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6504a030>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a4e0>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509b250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509b2a0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65048320>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650490e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65049130>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65099540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65099590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650995e0>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a3a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6509a3f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eea800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eea850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eea8a0>, ..., <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb6b0>]]]]], dtype=object)
- cost_om_annual(nodes, techs, costs)objectparameters[cost_om_annual][0] .....
- is_result :
- False
- default :
- 0
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64bfcaf0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12580>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cfe80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb750>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb930>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010050>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010190>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650102d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010410>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010550>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010690>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650107d0>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c12da0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cf8e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb9d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb840>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebf20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650100a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650101e0>], ... [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010230>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010370>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650104b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650105f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010730>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010870>]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64c13a20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659cffc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb7a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eeb8e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebfc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010140>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010280>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650103c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010500>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010640>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010780>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650108c0>]]], dtype=object)
- latitude(nodes)objectparameters[latitude][0] ... para...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebb10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c0140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a659c0320>], dtype=object)
- longitude(nodes)objectparameters[longitude][0] ... par...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010f00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010d20>], dtype=object)
- available_area(nodes)objectparameters[available_area][0] .....
- is_result :
- False
- default :
- inf
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'area_use_capacity_per_loc'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650111d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010be0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65010af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650109b0>], dtype=object)
- source_use_equals(techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'source_availability_supply'}
- coords_in_name :
- False
array([[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650123a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650123f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650124e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012530>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650125d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650126c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012710>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]], dtype=object)
- sink_use_equals(timesteps, techs, nodes)objectnan nan nan nan ... nan nan nan nan
- is_result :
- False
- default :
- nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'balance_demand'}
- coords_in_name :
- False
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., ... ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan], ..., [nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], dtype=object)
- definition_matrix(nodes, techs, carriers)objectparameters[definition_matrix][0]...
- is_result :
- False
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65011a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650114a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650117c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65011950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebde0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64eebca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec820>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec730>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec5f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec5a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecb90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecbe0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecc30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eccd0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecd20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ecd70>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eee90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eeee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eef30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eef80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eefd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef070>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef0c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef160>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef250>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef2f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef340>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef3e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef430>]]], dtype=object)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'source_max', 'cost_investment', 'flow_in_max', 'flow_out_max'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a650129e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec8c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ec910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef750>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef5c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef570>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efb60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efc50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efcf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658efd40>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c0a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c0f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c190>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c1e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c2d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c3c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c410>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c500>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c5a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c5f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593c640>], dtype=object)
- timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- is_result :
- False
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'cost_investment', 'cost_var', 'min_cost_optimisation'}
- coords_in_name :
- False
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a65012800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cb90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cbe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cc30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ccd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cd20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cd70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cdc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ce10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ce60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ceb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cf00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cf50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cfa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593cff0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d310>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d3b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d4a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d4f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d5e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d6d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d720>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d7c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593d8b0>], dtype=object)
- area_use_min()objectparameters[area_use_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593e710>, dtype=object)
- cap_method()objectparameters[cap_method][0]
- original_dtype :
- <U10
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593e2b0>, dtype=object)
- cost_area_use()objectparameters[cost_area_use][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593ed00>, dtype=object)
- cost_depreciation_rate()objectparameters[cost_depreciation_rat...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f480>, dtype=object)
- cost_om_annual_investment_fraction()objectparameters[cost_om_annual_invest...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'cost_investment'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593fc50>, dtype=object)
- cost_purchase()objectparameters[cost_purchase][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f610>, dtype=object)
- cost_purchase_per_distance()objectparameters[cost_purchase_per_dis...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593dae0>, dtype=object)
- cost_source_cap()objectparameters[cost_source_cap][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ef9d0>, dtype=object)
- cost_storage_cap()objectparameters[cost_storage_cap][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eb6b0>, dtype=object)
- cyclic_storage()objectparameters[cyclic_storage][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593e620>, dtype=object)
- export_max()objectparameters[export_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f390>, dtype=object)
- flow_cap_max_systemwide()objectparameters[flow_cap_max_systemwi...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ea300>, dtype=object)
- flow_cap_min()objectparameters[flow_cap_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a6593f570>, dtype=object)
- flow_cap_min_systemwide()objectparameters[flow_cap_min_systemwi...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e99f0>, dtype=object)
- flow_cap_per_storage_cap_max()objectparameters[flow_cap_per_storage_...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9e00>, dtype=object)
- flow_cap_per_storage_cap_min()objectparameters[flow_cap_per_storage_...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eada0>, dtype=object)
- flow_cap_per_unit()float64nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(nan)
- flow_in_eff()objectparameters[flow_in_eff][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9810>, dtype=object)
- flow_in_eff_per_distance()objectparameters[flow_in_eff_per_dista...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e8370>, dtype=object)
- flow_out_min_relative()objectparameters[flow_out_min_relative...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ebe30>, dtype=object)
- flow_ramping()objectparameters[flow_ramping][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9900>, dtype=object)
- force_async_flow()objectparameters[force_async_flow][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e80f0>, dtype=object)
- include_storage()objectparameters[include_storage][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e88c0>, dtype=object)
- integer_dispatch()objectparameters[integer_dispatch][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e9180>, dtype=object)
- one_way()objectparameters[one_way][0]
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658ea760>, dtype=object)
- purchased_units_max()objectparameters[purchased_units_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eb480>, dtype=object)
- purchased_units_max_systemwide()objectparameters[purchased_units_max_s...
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f040f0>, dtype=object)
- purchased_units_min()objectparameters[purchased_units_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e8f00>, dtype=object)
- purchased_units_min_systemwide()objectparameters[purchased_units_min_s...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e8e60>, dtype=object)
- sink_unit()objectparameters[sink_unit][0]
- original_dtype :
- <U8
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f06260>, dtype=object)
- sink_use_max()objectparameters[sink_use_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05d10>, dtype=object)
- sink_use_min()objectparameters[sink_use_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658eb520>, dtype=object)
- source_cap_equals_flow_cap()objectparameters[source_cap_equals_flo...
- original_dtype :
- bool
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05860>, dtype=object)
- source_cap_max()objectparameters[source_cap_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f065d0>, dtype=object)
- source_cap_min()objectparameters[source_cap_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a658e85f0>, dtype=object)
- source_eff()objectparameters[source_eff][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage'}
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05630>, dtype=object)
- source_use_min()objectparameters[source_use_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f06b20>, dtype=object)
- storage_cap_max()objectparameters[storage_cap_max][0]
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f06990>, dtype=object)
- storage_cap_min()objectparameters[storage_cap_min][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f07480>, dtype=object)
- storage_cap_per_unit()float64nan
- original_dtype :
- float64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(nan)
- storage_discharge_depth()objectparameters[storage_discharge_dep...
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05310>, dtype=object)
- storage_initial()objectparameters[storage_initial][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f07bb0>, dtype=object)
- storage_loss()objectparameters[storage_loss][0]
- original_dtype :
- int64
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- is_result :
- 0
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f4a64f05b30>, dtype=object)
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- timestepsPandasIndex
PandasIndex(DatetimeIndex(['2005-07-01 00:00:00', '2005-07-01 01:00:00', '2005-07-01 02:00:00', '2005-07-01 03:00:00', '2005-07-01 04:00:00', '2005-07-01 05:00:00', '2005-07-01 06:00:00', '2005-07-01 07:00:00', '2005-07-01 08:00:00', '2005-07-01 09:00:00', '2005-07-01 10:00:00', '2005-07-01 11:00:00', '2005-07-01 12:00:00', '2005-07-01 13:00:00', '2005-07-01 14:00:00', '2005-07-01 15:00:00', '2005-07-01 16:00:00', '2005-07-01 17:00:00', '2005-07-01 18:00:00', '2005-07-01 19:00:00', '2005-07-01 20:00:00', '2005-07-01 21:00:00', '2005-07-01 22:00:00', '2005-07-01 23:00:00', '2005-07-02 00:00:00', '2005-07-02 01:00:00', '2005-07-02 02:00:00', '2005-07-02 03:00:00', '2005-07-02 04:00:00', '2005-07-02 05:00:00', '2005-07-02 06:00:00', '2005-07-02 07:00:00', '2005-07-02 08:00:00', '2005-07-02 09:00:00', '2005-07-02 10:00:00', '2005-07-02 11:00:00', '2005-07-02 12:00:00', '2005-07-02 13:00:00', '2005-07-02 14:00:00', '2005-07-02 15:00:00', '2005-07-02 16:00:00', '2005-07-02 17:00:00', '2005-07-02 18:00:00', '2005-07-02 19:00:00', '2005-07-02 20:00:00', '2005-07-02 21:00:00', '2005-07-02 22:00:00', '2005-07-02 23:00:00'], dtype='datetime64[ns]', name='timesteps', freq=None))
... or constraints
m.backend.constraints
<xarray.Dataset> Dimensions: (nodes: 4, techs: 12, carriers: 3, timesteps: 48) Coordinates: * techs (techs) object 'N1_to_X2' ... 'supply_grid_po... * carriers (carriers) object 'electricity' 'gas' 'heat' * nodes (nodes) object 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 2005-07-01 ... 200... Data variables: (12/14) area_use_per_flow_capacity (nodes, techs, carriers) object nan nan ... nan area_use_capacity_per_loc (nodes) object nan ... constraints[area_use_c... balance_conversion (nodes, techs, timesteps) object nan nan ... nan flow_out_max (nodes, techs, carriers, timesteps) object na... flow_in_max (nodes, techs, carriers, timesteps) object na... source_max (nodes, techs, timesteps) object nan nan ... nan ... ... balance_supply_no_storage (nodes, techs, carriers, timesteps) object na... source_availability_supply (nodes, techs, timesteps) object nan nan ... nan balance_transmission (techs, timesteps) object constraints[balance... symmetric_transmission (nodes, techs) object constraints[symmetric_t... export_balance (nodes, techs, carriers, timesteps) object na... link_chp_outputs (nodes, techs, timesteps) object nan nan ... nan
- nodes: 4
- techs: 12
- carriers: 3
- timesteps: 48
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
array(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], dtype=object)
- nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
array(['2005-07-01T00:00:00.000000000', '2005-07-01T01:00:00.000000000', '2005-07-01T02:00:00.000000000', '2005-07-01T03:00:00.000000000', '2005-07-01T04:00:00.000000000', '2005-07-01T05:00:00.000000000', '2005-07-01T06:00:00.000000000', '2005-07-01T07:00:00.000000000', '2005-07-01T08:00:00.000000000', '2005-07-01T09:00:00.000000000', '2005-07-01T10:00:00.000000000', '2005-07-01T11:00:00.000000000', '2005-07-01T12:00:00.000000000', '2005-07-01T13:00:00.000000000', '2005-07-01T14:00:00.000000000', '2005-07-01T15:00:00.000000000', '2005-07-01T16:00:00.000000000', '2005-07-01T17:00:00.000000000', '2005-07-01T18:00:00.000000000', '2005-07-01T19:00:00.000000000', '2005-07-01T20:00:00.000000000', '2005-07-01T21:00:00.000000000', '2005-07-01T22:00:00.000000000', '2005-07-01T23:00:00.000000000', '2005-07-02T00:00:00.000000000', '2005-07-02T01:00:00.000000000', '2005-07-02T02:00:00.000000000', '2005-07-02T03:00:00.000000000', '2005-07-02T04:00:00.000000000', '2005-07-02T05:00:00.000000000', '2005-07-02T06:00:00.000000000', '2005-07-02T07:00:00.000000000', '2005-07-02T08:00:00.000000000', '2005-07-02T09:00:00.000000000', '2005-07-02T10:00:00.000000000', '2005-07-02T11:00:00.000000000', '2005-07-02T12:00:00.000000000', '2005-07-02T13:00:00.000000000', '2005-07-02T14:00:00.000000000', '2005-07-02T15:00:00.000000000', '2005-07-02T16:00:00.000000000', '2005-07-02T17:00:00.000000000', '2005-07-02T18:00:00.000000000', '2005-07-02T19:00:00.000000000', '2005-07-02T20:00:00.000000000', '2005-07-02T21:00:00.000000000', '2005-07-02T22:00:00.000000000', '2005-07-02T23:00:00.000000000'], dtype='datetime64[ns]')
- area_use_per_flow_capacity(nodes, techs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set a fixed relationship between a technology's flow capacity and its area use.
array([[[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], ... [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e56430>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e562e0>, nan, nan], [nan, nan, nan], [nan, nan, nan]]], dtype=object)
- area_use_capacity_per_loc(nodes)objectnan ... constraints[area_use_cap...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.
array([nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659490f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594a350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e57d90>], dtype=object)
- balance_conversion(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the relationship between a `conversion` technology's outflow and consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- flow_out_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound of a technology's outflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a65949e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659491d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594bb60>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bef850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed470>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bee7b0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68befd90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed8d0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bef460>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a68bed400>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22e40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22eb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22f20>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e22f90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e23000>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e23070>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e943d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94440>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e944b0>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- flow_in_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound of a technology's inflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659da5f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659da7b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659dab30>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594a9e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594ab30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594b230>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594a190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594b310>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594ac10>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e97070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e970e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e97150>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7944b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f794520>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- source_max(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound of a `supply` technology's source consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e95da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64302c10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64302cf0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50a60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50ad0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50b40>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e50bb0>, ... [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64326040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a643260b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64326120>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e959b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e56580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e54670>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e56c10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e54910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6594bc40>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64327230>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a643272a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64327310>], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- system_balance(nodes, carriers, timesteps)objectnan ... constraints[system_balan...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a659dbbd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94ad0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e95240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96c80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e955c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e95ef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e96970>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64e94c90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a643546e0>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edd30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edda0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ede10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ede80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edf60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7edfd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee0b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee200>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee4a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ee510>]]], dtype=object)
- balance_demand(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- balance_supply_no_storage(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the outflow of a `supply` technology to its consumption of the available source.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a641019b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101a20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101a90>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101b70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64101be0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64102eb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64102f20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64102f90>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- source_availability_supply(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a641037e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f734050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f734b40>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7cc90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7e3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7d390>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7d940>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7c210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7db00>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7da90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7da20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64d7d9b0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427c130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427c1a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427c210>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- balance_transmission(techs, timesteps)objectconstraints[balance_transmission...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f735b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7341a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7359b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7343d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f734130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f735f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f735e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7360b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7ef770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbcb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbd20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbf50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a640fbd90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64302ba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f767850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f764c90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7670e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f7654e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a64103bd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a641039a0>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]], dtype=object)
- symmetric_transmission(nodes, techs)objectconstraints[symmetric_transmissi...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the flow capacity of two `transmission` technologies representing the same link in the system.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427d9b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a6427cc20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6d4de0>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6d4910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c4f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c4e50>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c6040>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c6740>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c60b0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f6c4670>, nan, nan, nan, nan, nan, nan, nan]], dtype=object)
- export_balance(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., [[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f571b70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f571be0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f571c50>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f572f20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f572f90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f4a5f573000>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object)
- link_chp_outputs(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- description :
- Fix the relationship between heat and electricity output
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- timestepsPandasIndex
PandasIndex(DatetimeIndex(['2005-07-01 00:00:00', '2005-07-01 01:00:00', '2005-07-01 02:00:00', '2005-07-01 03:00:00', '2005-07-01 04:00:00', '2005-07-01 05:00:00', '2005-07-01 06:00:00', '2005-07-01 07:00:00', '2005-07-01 08:00:00', '2005-07-01 09:00:00', '2005-07-01 10:00:00', '2005-07-01 11:00:00', '2005-07-01 12:00:00', '2005-07-01 13:00:00', '2005-07-01 14:00:00', '2005-07-01 15:00:00', '2005-07-01 16:00:00', '2005-07-01 17:00:00', '2005-07-01 18:00:00', '2005-07-01 19:00:00', '2005-07-01 20:00:00', '2005-07-01 21:00:00', '2005-07-01 22:00:00', '2005-07-01 23:00:00', '2005-07-02 00:00:00', '2005-07-02 01:00:00', '2005-07-02 02:00:00', '2005-07-02 03:00:00', '2005-07-02 04:00:00', '2005-07-02 05:00:00', '2005-07-02 06:00:00', '2005-07-02 07:00:00', '2005-07-02 08:00:00', '2005-07-02 09:00:00', '2005-07-02 10:00:00', '2005-07-02 11:00:00', '2005-07-02 12:00:00', '2005-07-02 13:00:00', '2005-07-02 14:00:00', '2005-07-02 15:00:00', '2005-07-02 16:00:00', '2005-07-02 17:00:00', '2005-07-02 18:00:00', '2005-07-02 19:00:00', '2005-07-02 20:00:00', '2005-07-02 21:00:00', '2005-07-02 22:00:00', '2005-07-02 23:00:00'], dtype='datetime64[ns]', name='timesteps', freq=None))
You can also access backend arrays in text format, to debug the problem:
m.backend.get_constraint(
"area_use_capacity_per_loc", as_backend_objs=False
).to_pandas().dropna(how="all", axis=0)
lb | body | ub | |
---|---|---|---|
nodes | |||
X1 | None | variables[area_use][0] | 500.0 |
X2 | None | variables[area_use][1] | 1300.0 |
X3 | None | variables[area_use][2] | 900.0 |
We can increase the verbosity of the constraint/global expression "body" by calling the backend method verbose_strings
.
We do not do this automatically as it entails a memory/time overhead on building the model and is only necessary for debugging your optimisation problem.
m.backend.verbose_strings()
m.backend.get_constraint(
"area_use_capacity_per_loc", as_backend_objs=False
).to_pandas().dropna(how="all", axis=0)
lb | body | ub | |
---|---|---|---|
nodes | |||
X1 | None | variables[area_use][X1, pv] | 500.0 |
X2 | None | variables[area_use][X2, pv] | 1300.0 |
X3 | None | variables[area_use][X3, pv] | 900.0 |
Updating the optimisation problem in-place¶
If we want to update a parameter value or fix a decision variable, we can do so now that we have built the optimisation problem
m.backend.update_parameter("flow_cap_max", m.inputs.flow_cap_max * 2)
m.backend.get_parameter("flow_cap_max", as_backend_objs=False).sel(
techs="pv"
).to_series().dropna()
carriers nodes electricity N1 inf X1 500.0 X2 500.0 X3 100.0 gas N1 inf X1 inf X2 inf X3 inf heat N1 inf X1 inf X2 inf X3 inf Name: flow_cap_max, dtype: float64
Solve the optimisation problem¶
Once we have all of our optimisation problem components set up as we desire, we can solve the problem.
m.solve()
[2024-01-27 14:24:00] INFO Optimisation model | starting model in plan mode.
[2024-01-27 14:24:00] INFO Backend: solver finished running. Time since start of solving optimisation problem: 0:00:00.451932
[2024-01-27 14:24:00] INFO Postprocessing: started
[2024-01-27 14:24:01] INFO Postprocessing: zero threshold of 1e-10 not required
[2024-01-27 14:24:01] INFO Postprocessing: ended. Time since start of solving optimisation problem: 0:00:00.608444
[2024-01-27 14:24:01] INFO Model: loaded model_data
The results are stored in m._model_data
and can be accessed by the public property m.results
m.results
<xarray.Dataset> Dimensions: (nodes: 4, techs: 12, carriers: 3, timesteps: 48, costs: 1) Coordinates: * techs (techs) object 'N1_to_X2' ... 'supply_grid_po... * carriers (carriers) <U11 'electricity' 'gas' 'heat' * nodes (nodes) object 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 2005-07-01 ... 200... * costs (costs) object 'monetary' Data variables: (12/19) flow_cap (nodes, techs, carriers) float64 nan nan ... nan link_flow_cap (techs) float64 189.9 10.38 567.7 ... nan nan flow_out (nodes, techs, carriers, timesteps) float64 n... flow_in (nodes, techs, carriers, timesteps) float64 n... flow_export (nodes, techs, carriers, timesteps) float64 n... area_use (nodes, techs) float64 nan nan nan ... nan nan ... ... cost_investment (nodes, techs, costs) float64 0.05158 ... nan cost (nodes, techs, costs) float64 0.05158 ... nan capacity_factor (nodes, techs, carriers, timesteps) float64 0... systemwide_capacity_factor (techs, carriers) float64 0.0 0.0 ... 0.0 0.0 systemwide_levelised_cost (carriers, techs, costs) float64 nan nan ... nan total_levelised_cost (carriers, costs) float64 0.08043 ... 0.09471 Attributes: termination_condition: optimal calliope_version_defined: 0.7.0 calliope_version_initialised: 0.7.0.dev2 applied_overrides: scenario: None defaults: {'available_area': inf, 'bigM': 1000000000... allow_operate_mode: 1 config: {'build': {'backend': 'pyomo', 'ensure_fea... applied_custom_math: ['custom_math.yaml'] math: {'constraints': {'flow_capacity_per_storag... name: Urban-scale example model
- nodes: 4
- techs: 12
- carriers: 3
- timesteps: 48
- costs: 1
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
array(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype=object)
- carriers(carriers)<U11'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], dtype='<U11')
- nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
array(['2005-07-01T00:00:00.000000000', '2005-07-01T01:00:00.000000000', '2005-07-01T02:00:00.000000000', '2005-07-01T03:00:00.000000000', '2005-07-01T04:00:00.000000000', '2005-07-01T05:00:00.000000000', '2005-07-01T06:00:00.000000000', '2005-07-01T07:00:00.000000000', '2005-07-01T08:00:00.000000000', '2005-07-01T09:00:00.000000000', '2005-07-01T10:00:00.000000000', '2005-07-01T11:00:00.000000000', '2005-07-01T12:00:00.000000000', '2005-07-01T13:00:00.000000000', '2005-07-01T14:00:00.000000000', '2005-07-01T15:00:00.000000000', '2005-07-01T16:00:00.000000000', '2005-07-01T17:00:00.000000000', '2005-07-01T18:00:00.000000000', '2005-07-01T19:00:00.000000000', '2005-07-01T20:00:00.000000000', '2005-07-01T21:00:00.000000000', '2005-07-01T22:00:00.000000000', '2005-07-01T23:00:00.000000000', '2005-07-02T00:00:00.000000000', '2005-07-02T01:00:00.000000000', '2005-07-02T02:00:00.000000000', '2005-07-02T03:00:00.000000000', '2005-07-02T04:00:00.000000000', '2005-07-02T05:00:00.000000000', '2005-07-02T06:00:00.000000000', '2005-07-02T07:00:00.000000000', '2005-07-02T08:00:00.000000000', '2005-07-02T09:00:00.000000000', '2005-07-02T10:00:00.000000000', '2005-07-02T11:00:00.000000000', '2005-07-02T12:00:00.000000000', '2005-07-02T13:00:00.000000000', '2005-07-02T14:00:00.000000000', '2005-07-02T15:00:00.000000000', '2005-07-02T16:00:00.000000000', '2005-07-02T17:00:00.000000000', '2005-07-02T18:00:00.000000000', '2005-07-02T19:00:00.000000000', '2005-07-02T20:00:00.000000000', '2005-07-02T21:00:00.000000000', '2005-07-02T22:00:00.000000000', '2005-07-02T23:00:00.000000000'], dtype='datetime64[ns]')
- costs(costs)object'monetary'
array(['monetary'], dtype=object)
- flow_cap(nodes, techs, carriers)float64nan nan 189.9 nan ... nan nan nan
- description :
- A technology's flow capacity, also known as its nominal or nameplate capacity.
- unit :
- power
- is_result :
- 1
array([[[ nan, nan, 1.8987211e+02], [ nan, nan, 1.0382599e+01], [ nan, nan, 5.6770227e+02], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan], [ nan, nan, nan]], [[ nan, nan, nan], [ nan, nan, nan], [ nan, nan, 5.6770227e+02], [2.7476645e+02, nan, nan], [4.7452088e+01, nan, nan], [ nan, nan, nan], [2.6044701e+02, 6.4307904e+02, 2.0835761e+02], ... [ nan, 2.2726339e+02, 1.9317388e+02], [ nan, nan, nan], [2.6934435e+02, nan, nan], [ nan, nan, 3.6513767e+02], [1.4358886e+01, nan, nan], [ nan, 2.2726339e+02, nan], [ nan, nan, nan]], [[ nan, nan, nan], [ nan, nan, 1.0382599e+01], [ nan, nan, nan], [ nan, nan, nan], [4.7452088e+01, nan, nan], [ nan, 1.8352941e-02, 1.5600000e-02], [ nan, nan, nan], [6.4927357e+01, nan, nan], [ nan, nan, 9.3982291e+00], [1.0000000e+02, nan, nan], [ nan, 1.8352941e-02, nan], [ nan, nan, nan]]])
- link_flow_cap(techs)float64189.9 10.38 567.7 ... nan nan nan
- description :
- A transmission technology's flow capacity, also known as its nominal or nameplate capacity.
- unit :
- power
- is_result :
- 1
array([189.87211 , 10.382599, 567.70227 , 274.76645 , 47.452088, nan, nan, nan, nan, nan, nan, nan])
- flow_out(nodes, techs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- The outflow of a technology per timestep, also known as the flow discharged (from `storage` technologies) or the flow received (by `transmission` technologies) on a link.
- unit :
- energy
- is_result :
- 1
array([[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [5.2469889e+01, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [8.3685615e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [8.5869798e+01, 7.2541074e+01, 7.2915564e+01, ..., 1.6303621e+02, 1.1680008e+02, 9.2852036e+01]], ... [[0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [0.0000000e+00, 1.8352941e-02, 1.8352941e-02, ..., 1.8352941e-02, 1.8352941e-02, 1.8352941e-02], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]]])
- flow_in(nodes, techs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- The inflow to a technology per timestep, also known as the flow consumed (by `storage` technologies) or the flow sent (by `transmission` technologies) on a link.
- unit :
- energy
- is_result :
- 1
array([[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [136.32565 , 71.606325 , 72.915564 , ..., 162.10148 , 116.80008 , 91.917322 ]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ 10.382599 , 0.93474975, 0. , ..., 0.93472555, 0. , 0.93471415]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ]], ... [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]]])
- flow_export(nodes, techs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- The flow of a carrier exported outside the system boundaries by a technology per timestep.
- unit :
- energy
- is_result :
- 1
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[ 0., 0., 0., ..., 0., 0., 0.], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]])
- area_use(nodes, techs)float64nan nan nan nan ... 700.0 nan nan
- description :
- The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.
- unit :
- area
- is_result :
- 1
array([[ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, 0. , nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, 100.5122, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, 700. , nan, nan]])
- source_use(nodes, techs, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- The carrier flow consumed from outside the system boundaries by a `supply` technology.
- unit :
- energy
- is_result :
- 1
array([[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ... [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [-0.0000000e+00, 4.8052305e+00, 1.1306472e+01, ..., 1.0563477e+02, 4.1552015e+01, 1.0442145e+00], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [-0.0000000e+00, 1.8352941e-02, 1.8352941e-02, ..., 1.8352941e-02, 1.8352941e-02, 1.8352941e-02], [ nan, nan, nan, ..., nan, nan, nan]]])
- source_cap(nodes, techs)float64nan nan nan ... 77.9 0.01835 nan
- description :
- The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.
- unit :
- power
- is_result :
- 1
array([[ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, 0.0000000e+00, 6.4307904e+02, 3.4114372e+01], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, 1.1185572e+01, 2.2726339e+02, nan], [ nan, nan, nan, nan, nan, nan, nan, nan, nan, 7.7900000e+01, 1.8352941e-02, nan]])
- unmet_demand(nodes, carriers, timesteps)float64nan nan nan nan ... 0.0 0.0 0.0 0.0
- is_result :
- 1
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., ... 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]])
- flow_out_inc_eff(nodes, techs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- Outflows after taking efficiency losses into account.
- is_result :
- 1
array([[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [5.66104098e+01, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [9.26045550e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [9.26459831e+01, 7.82654586e+01, 7.86695004e+01, ..., 1.75901776e+02, 1.26017045e+02, 1.00179206e+02]], ... [[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [0.00000000e+00, 1.83529410e-02, 1.83529410e-02, ..., 1.83529410e-02, 1.83529410e-02, 1.83529410e-02], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]]])
- flow_in_inc_eff(nodes, techs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- Inflows after taking efficiency losses into account.
- is_result :
- 1
array([[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [136.32565 , 71.606325 , 72.915564 , ..., 162.10148 , 116.80008 , 91.917322 ]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ 10.382599 , 0.93474975, 0. , ..., 0.93472555, 0. , 0.93471415]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ]], ... [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]]])
- cost_var(nodes, techs, costs, timesteps)float64nan nan nan nan ... nan nan nan nan
- description :
- The operating costs per timestep of a technology.
- unit :
- cost_per_time
- is_result :
- 1
array([[[[ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan]], ..., [[ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan]]], ... [[[ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan]], ..., [[ nan, nan, nan, ..., nan, nan, nan]], [[0.00000000e+00, 4.58823525e-04, 4.58823525e-04, ..., 4.58823525e-04, 4.58823525e-04, 4.58823525e-04]], [[ nan, nan, nan, ..., nan, nan, nan]]]])
- cost_investment_flow_cap(nodes, techs, carriers, costs)float64nan nan 85.44 nan ... nan nan nan
- description :
- The investment costs associated with the nominal/rated capacity of a technology.
- is_result :
- 1
array([[[[ nan], [ nan], [8.54424495e+01]], [[ nan], [ nan], [6.22955940e+00]], [[ nan], [ nan], [2.55466021e+02]], [[ nan], [ nan], [ nan]], [[ nan], [ nan], [ nan]], ... [[ nan], [ nan], [ nan]], [[ nan], [ nan], [ nan]], [[1.35000000e+05], [ nan], [ nan]], [[ nan], [1.83529410e-02], [ nan]], [[ nan], [ nan], [ nan]]]])
- cost_investment(nodes, techs, costs)float640.05158 0.003761 ... 1.108e-05 nan
- description :
- The installation costs of a technology, including annualised investment costs and annual maintenance costs.
- unit :
- cost
- is_result :
- 1
array([[[5.15782463e-02], [3.76054000e-03], [1.54214790e-01], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [1.54214790e-01], [8.29328496e-03], [7.16123980e-04], [ nan], [1.17916212e+02], ... [5.02595452e+00], [ nan], [ nan], [ nan], [1.17016579e+01], [1.37189970e-01], [ nan]], [[ nan], [3.76054000e-03], [ nan], [ nan], [7.16123980e-04], [7.34534303e-04], [ nan], [ nan], [ nan], [3.73846013e+01], [1.10789487e-05], [ nan]]])
- cost(nodes, techs, costs)float640.05158 0.003761 ... 0.01148 nan
- description :
- The total annualised costs of a technology, including installation and operation costs.
- unit :
- cost
- is_result :
- 1
array([[[5.15782463e-02], [3.76054000e-03], [1.54214790e-01], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [1.54214790e-01], [8.29328496e-03], [7.16123980e-04], [ nan], [1.53478246e+02], ... [1.20827193e+01], [ nan], [ nan], [ nan], [6.56781029e+00], [4.42419697e+01], [ nan]], [[ nan], [3.76054000e-03], [ nan], [ nan], [7.16123980e-04], [2.56982840e-03], [ nan], [ nan], [ nan], [3.73846013e+01], [1.14816671e-02], [ nan]]])
- capacity_factor(nodes, techs, carriers, timesteps)float640.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
- is_result :
- 1
array([[[[0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ], [0.27634332, 0. , 0. , ..., 0. , 0. , 0. ]], [[0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ], [0.80601798, 0. , 0. , ..., 0. , 0. , 0. ]], [[0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ], [0.15125851, 0.12778014, 0.1284398 , ..., 0.28718612, 0.20574179, 0.16355763]], ... [[0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ]], [[0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 1. , 1. , ..., 1. , 1. , 1. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ]], [[0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ], [0. , 0. , 0. , ..., 0. , 0. , 0. ]]]])
- systemwide_capacity_factor(techs, carriers)float640.0 0.0 0.4178 ... 0.0799 0.0 0.0
- is_result :
- 1
array([[0. , 0. , 0.41781733], [0. , 0. , 0.39070121], [0. , 0. , 0.20989428], [0.33000724, 0. , 0. ], [0.17785253, 0. , 0. ], [0. , 0. , 0.16175317], [0.72767514, 0. , 0.72767514], [0. , 0. , 0. ], [0. , 0. , 0. ], [0.20185729, 0. , 0. ], [0. , 0.57989306, 0. ], [0.07990226, 0. , 0. ]])
- systemwide_levelised_cost(carriers, techs, costs)float64nan nan nan ... nan nan nan
- is_result :
- 1
array([[[ nan], [ nan], [ nan], [1.90545276e-06], [1.76779380e-06], [ nan], [1.68713049e-02], [ nan], [ nan], [3.96667954e-02], [ nan], [1.15739560e-01]], [[ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [2.50216872e-02], [ nan]], [[1.35449594e-05], [1.93133737e-05], [2.69627104e-05], [ nan], [ nan], [8.05711442e-03], [2.10891310e-02], [ nan], [ nan], [ nan], [ nan], [ nan]]])
- total_levelised_cost(carriers, costs)float640.08043 0.03431 0.09471
- is_result :
- 1
array([[0.08042675], [0.03431306], [0.09470535]])
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- timestepsPandasIndex
PandasIndex(DatetimeIndex(['2005-07-01 00:00:00', '2005-07-01 01:00:00', '2005-07-01 02:00:00', '2005-07-01 03:00:00', '2005-07-01 04:00:00', '2005-07-01 05:00:00', '2005-07-01 06:00:00', '2005-07-01 07:00:00', '2005-07-01 08:00:00', '2005-07-01 09:00:00', '2005-07-01 10:00:00', '2005-07-01 11:00:00', '2005-07-01 12:00:00', '2005-07-01 13:00:00', '2005-07-01 14:00:00', '2005-07-01 15:00:00', '2005-07-01 16:00:00', '2005-07-01 17:00:00', '2005-07-01 18:00:00', '2005-07-01 19:00:00', '2005-07-01 20:00:00', '2005-07-01 21:00:00', '2005-07-01 22:00:00', '2005-07-01 23:00:00', '2005-07-02 00:00:00', '2005-07-02 01:00:00', '2005-07-02 02:00:00', '2005-07-02 03:00:00', '2005-07-02 04:00:00', '2005-07-02 05:00:00', '2005-07-02 06:00:00', '2005-07-02 07:00:00', '2005-07-02 08:00:00', '2005-07-02 09:00:00', '2005-07-02 10:00:00', '2005-07-02 11:00:00', '2005-07-02 12:00:00', '2005-07-02 13:00:00', '2005-07-02 14:00:00', '2005-07-02 15:00:00', '2005-07-02 16:00:00', '2005-07-02 17:00:00', '2005-07-02 18:00:00', '2005-07-02 19:00:00', '2005-07-02 20:00:00', '2005-07-02 21:00:00', '2005-07-02 22:00:00', '2005-07-02 23:00:00'], dtype='datetime64[ns]', name='timesteps', freq=None))
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- termination_condition :
- optimal
- calliope_version_defined :
- 0.7.0
- calliope_version_initialised :
- 0.7.0.dev2
- applied_overrides :
- scenario :
- None
- defaults :
- {'available_area': inf, 'bigM': 1000000000.0, 'objective_cost_weights': 1, 'area_use': inf, 'area_use_max': inf, 'area_use_min': 0, 'area_use_per_flow_cap': nan, 'cap_method': 'continuous', 'color': nan, 'cost_area_use': 0, 'cost_depreciation_rate': 1, 'cost_export': 0, 'cost_flow_cap': 0, 'cost_flow_cap_per_distance': 0, 'cost_flow_in': 0, 'cost_flow_out': 0, 'cost_interest_rate': 0, 'cost_om_annual': 0, 'cost_om_annual_investment_fraction': 0, 'cost_purchase': 0, 'cost_purchase_per_distance': 0, 'cost_source_cap': 0, 'cost_storage_cap': 0, 'cyclic_storage': True, 'distance': nan, 'export_max': inf, 'flow_cap': inf, 'flow_cap_max': inf, 'flow_cap_max_systemwide': inf, 'flow_cap_min': 0, 'flow_cap_min_systemwide': 0, 'flow_cap_per_storage_cap_max': inf, 'flow_cap_per_storage_cap_min': 0, 'flow_cap_per_unit': nan, 'flow_in_eff': 1.0, 'flow_in_eff_per_distance': 1.0, 'flow_out_eff': 1.0, 'flow_out_eff_per_distance': 1.0, 'flow_out_min_relative': 0, 'flow_out_parasitic_eff': 1.0, 'flow_ramping': 1.0, 'force_async_flow': False, 'include_storage': False, 'integer_dispatch': False, 'lifetime': inf, 'name': nan, 'one_way': False, 'purchased_units': inf, 'purchased_units_max': inf, 'purchased_units_max_systemwide': inf, 'purchased_units_min': 0, 'purchased_units_min_systemwide': 0, 'sink_unit': 'absolute', 'sink_use_equals': nan, 'sink_use_max': inf, 'sink_use_min': 0, 'source_cap': inf, 'source_cap_equals_flow_cap': False, 'source_cap_max': inf, 'source_cap_min': 0, 'source_eff': 1.0, 'source_unit': 'absolute', 'source_use_equals': nan, 'source_use_max': inf, 'source_use_min': 0, 'storage_cap': inf, 'storage_cap_max': inf, 'storage_cap_min': 0, 'storage_cap_per_unit': nan, 'storage_discharge_depth': 0, 'storage_initial': 0, 'storage_loss': 0}
- allow_operate_mode :
- 1
- config :
- {'build': {'backend': 'pyomo', 'ensure_feasibility': True, 'mode': 'plan', 'objective': 'min_cost_optimisation', 'operate_use_cap_results': False}, 'solve': {'save_logs': None, 'solver': 'cbc', 'solver_io': None, 'solver_options': None, 'spores_number': 3, 'spores_save_per_spore': False, 'spores_score_cost_class': 'spores_score', 'spores_skip_cost_op': False, 'zero_threshold': 1e-10}}
- applied_custom_math :
- ['custom_math.yaml']
- math :
- {'constraints': {'flow_capacity_per_storage_capacity_min': {'description': 'Set the lower bound of storage flow capacity relative to its storage capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage_cap AND flow_cap_per_storage_cap_min', 'equations': [{'expression': 'flow_cap >= storage_cap * flow_cap_per_storage_cap_min'}]}, 'flow_capacity_per_storage_capacity_max': {'description': 'Set the upper bound of storage flow capacity relative to its storage capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage_cap AND flow_cap_per_storage_cap_max', 'equations': [{'expression': 'flow_cap <= storage_cap * flow_cap_per_storage_cap_max'}]}, 'source_capacity_equals_flow_capacity': {'description': "Set a `supply` technology's flow capacity to equal its source capacity.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'source_cap AND source_cap_equals_flow_cap=True', 'equations': [{'expression': 'source_cap == flow_cap'}]}, 'force_zero_area_use': {'description': "Set a technology's area use to zero if its flow capacity upper bound is zero.", 'foreach': ['nodes', 'techs'], 'where': 'area_use AND flow_cap_max=0', 'equations': [{'expression': 'area_use == 0'}]}, 'area_use_per_flow_capacity': {'description': "Set a fixed relationship between a technology's flow capacity and its area use.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'area_use AND area_use_per_flow_cap', 'equations': [{'expression': 'area_use == flow_cap * area_use_per_flow_cap'}]}, 'area_use_capacity_per_loc': {'description': 'Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.', 'foreach': ['nodes'], 'where': 'area_use AND available_area', 'equations': [{'expression': 'sum(area_use, over=techs) <= available_area'}]}, 'flow_capacity_systemwide_max': {'description': 'Set an upper bound on flow capacity of a technology across all nodes in which the technology exists.', 'foreach': ['techs', 'carriers'], 'where': 'flow_cap_max_systemwide', 'equations': [{'expression': 'sum(flow_cap, over=nodes) <= flow_cap_max_systemwide'}]}, 'flow_capacity_systemwide_min': {'description': 'Set a lower bound on flow capacity of a technology across all nodes in which the technology exists.', 'foreach': ['techs', 'carriers'], 'where': 'flow_cap_min_systemwide', 'equations': [{'expression': 'sum(flow_cap, over=nodes) >= flow_cap_min_systemwide'}]}, 'balance_conversion': {'description': "Fix the relationship between a `conversion` technology's outflow and consumption.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'base_tech=conversion AND NOT include_storage=true', 'equations': [{'where': 'NOT [chp] in techs', 'expression': 'sum(flow_out_inc_eff, over=carriers) == sum(flow_in_inc_eff, over=carriers)'}, {'where': '[chp] in techs', 'expression': 'flow_out_inc_eff[carriers=electricity] == sum(flow_in_inc_eff, over=carriers)'}]}, 'flow_out_max': {'description': "Set the upper bound of a technology's outflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_out AND NOT operating_units', 'equations': [{'expression': 'flow_out <= flow_cap * timestep_resolution * flow_out_parasitic_eff'}]}, 'flow_out_min': {'description': "Set the lower bound of a technology's outflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out_min_relative AND NOT operating_units', 'equations': [{'expression': 'flow_out >= flow_cap * timestep_resolution * flow_out_min_relative'}]}, 'flow_in_max': {'description': "Set the upper bound of a technology's inflow.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_in AND NOT operating_units', 'equations': [{'expression': 'flow_in <= flow_cap * timestep_resolution'}]}, 'source_max': {'description': "Set the upper bound of a `supply` technology's source consumption.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_cap', 'equations': [{'expression': 'source_use <= timestep_resolution * source_cap'}]}, 'storage_max': {'description': 'Set the upper bound of the amount of carrier a technology can store.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'storage', 'equations': [{'expression': 'storage <= storage_cap'}]}, 'storage_discharge_depth_limit': {'description': 'Set the lower bound of the stored carrier a technology must keep in reserve at all times.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'storage AND storage_discharge_depth', 'equations': [{'expression': 'storage - storage_discharge_depth * storage_cap >= 0'}]}, 'system_balance': {'description': 'Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.', 'foreach': ['nodes', 'carriers', 'timesteps'], 'equations': [{'expression': 'sum(flow_out, over=techs) - sum(flow_in, over=techs) - $flow_export + $unmet_demand_and_unused_supply == 0'}], 'sub_expressions': {'flow_export': [{'where': 'any(carrier_export, over=techs)', 'expression': 'sum(flow_export, over=techs)'}, {'where': 'NOT any(carrier_export, over=techs)', 'expression': '0'}], 'unmet_demand_and_unused_supply': [{'where': 'config.ensure_feasibility=True', 'expression': 'unmet_demand + unused_supply'}, {'where': 'NOT config.ensure_feasibility=True', 'expression': '0'}]}}, 'balance_demand': {'description': 'Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'base_tech=demand', 'equations': [{'where': 'sink_use_equals', 'expression': 'flow_in_inc_eff == sink_use_equals * $sink_scaler'}, {'where': 'NOT sink_use_equals AND sink_use_max', 'expression': 'flow_in_inc_eff <= sink_use_max * $sink_scaler'}], 'sub_expressions': {'sink_scaler': [{'where': 'sink_unit=per_area', 'expression': 'area_use'}, {'where': 'sink_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'sink_unit=absolute', 'expression': '1'}]}}, 'balance_demand_min_use': {'description': 'Set the lower bound on the quantity of flow a `demand` technology must dump to its sink in each timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'sink_use_min AND NOT sink_use_equals AND base_tech=demand', 'equations': [{'expression': 'flow_in_inc_eff >= sink_use_min * $sink_scaler'}], 'sub_expressions': {'sink_scaler': [{'where': 'sink_unit=per_area', 'expression': 'area_use'}, {'where': 'sink_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'sink_unit=absolute', 'expression': '1'}]}}, 'balance_supply_no_storage': {'description': 'Fix the outflow of a `supply` technology to its consumption of the available source.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'base_tech=supply AND NOT include_storage=True', 'equations': [{'expression': 'flow_out_inc_eff == source_use * source_eff'}]}, 'balance_supply_with_storage': {'description': 'Fix the outflow of a `supply` technology to its consumption of the available source, with a storage buffer to temporally offset the outflow from source consumption.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'storage AND base_tech=supply', 'equations': [{'expression': 'storage == $storage_previous_step + source_use * source_eff - flow_out_inc_eff'}], 'sub_expressions': {'storage_previous_step': [{'where': 'timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True', 'expression': 'storage_initial * storage_cap'}, {'where': '(\n (timesteps=get_val_at_index(timesteps=0) AND cyclic_storage=True)\n OR NOT timesteps=get_val_at_index(timesteps=0)\n) AND NOT lookup_cluster_first_timestep=True', 'expression': '(1 - storage_loss) ** roll(timestep_resolution, timesteps=1) * roll(storage, timesteps=1)'}, {'where': 'lookup_cluster_first_timestep=True AND NOT (timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True)', 'expression': '(1 - storage_loss) ** select_from_lookup_arrays(timestep_resolution, timesteps=lookup_cluster_last_timestep) * select_from_lookup_arrays(storage, timesteps=lookup_cluster_last_timestep)'}]}}, 'source_availability_supply': {'description': "Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_use AND (source_use_equals OR source_use_max)', 'equations': [{'where': 'source_use_equals', 'expression': 'source_use == source_use_equals * $source_scaler'}, {'where': 'NOT source_use_equals AND source_use_max', 'expression': 'source_use <= source_use_max * $source_scaler'}], 'sub_expressions': {'source_scaler': [{'where': 'source_unit=per_area', 'expression': 'area_use'}, {'where': 'source_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'source_unit=absolute', 'expression': '1'}]}}, 'balance_supply_min_use': {'description': 'Set the lower bound on the quantity of its source a `supply` technology must use in each timestep.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'source_use_min AND NOT source_use_equals AND base_tech=supply', 'equations': [{'expression': 'source_use >= source_use_min * $source_scaler'}], 'sub_expressions': {'source_scaler': [{'where': 'source_unit=per_area', 'expression': 'area_use'}, {'where': 'source_unit=per_cap', 'expression': 'sum(flow_cap, over=carriers)'}, {'where': 'source_unit=absolute', 'expression': '1'}]}}, 'balance_storage': {'description': 'Fix the quantity of carrier stored in a `storage` technology at the end of each timestep based on the net flow of carrier charged and discharged and the quantity of carrier stored at the start of the timestep.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': '(include_storage=true or base_tech=storage) AND NOT (base_tech=supply OR base_tech=demand)', 'equations': [{'expression': 'storage == $storage_previous_step -\n sum(flow_out_inc_eff, over=carriers) + sum(flow_in_inc_eff, over=carriers)'}], 'sub_expressions': {'storage_previous_step': [{'where': 'timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True', 'expression': 'storage_initial * storage_cap'}, {'where': '(\n (timesteps=get_val_at_index(timesteps=0) AND cyclic_storage=True)\n OR NOT timesteps=get_val_at_index(timesteps=0)\n) AND NOT lookup_cluster_first_timestep=True', 'expression': '(1 - storage_loss) ** roll(timestep_resolution, timesteps=1) * roll(storage, timesteps=1)'}, {'where': 'lookup_cluster_first_timestep=True AND NOT (timesteps=get_val_at_index(timesteps=0) AND NOT cyclic_storage=True)', 'expression': '(1 - storage_loss) ** select_from_lookup_arrays(timestep_resolution, timesteps=lookup_cluster_last_timestep) * select_from_lookup_arrays(storage, timesteps=lookup_cluster_last_timestep)'}]}}, 'set_storage_initial': {'description': 'Fix the relationship between carrier stored in a `storage` technology at the start and end of the whole model period.', 'foreach': ['nodes', 'techs'], 'where': 'storage AND storage_initial AND cyclic_storage=True', 'equations': [{'expression': 'storage[timesteps=$final_step] * (\n (1 - storage_loss) ** timestep_resolution[timesteps=$final_step]\n) == storage_initial * storage_cap'}], 'slices': {'final_step': [{'expression': 'get_val_at_index(timesteps=-1)'}]}, 'active': True}, 'balance_transmission': {'description': 'Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.', 'foreach': ['techs', 'timesteps'], 'where': 'base_tech=transmission', 'equations': [{'expression': 'sum(flow_out_inc_eff, over=[nodes, carriers]) == sum(flow_in_inc_eff, over=[nodes, carriers])'}]}, 'symmetric_transmission': {'description': 'Fix the flow capacity of two `transmission` technologies representing the same link in the system.', 'foreach': ['nodes', 'techs'], 'where': 'base_tech=transmission', 'equations': [{'expression': 'sum(flow_cap, over=carriers) == link_flow_cap'}]}, 'export_balance': {'description': "Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_export', 'equations': [{'expression': 'flow_out >= flow_export'}]}, 'flow_export_max': {'description': "Set the upper bound of a technology's carrier export, for any technologies that can export carriers out of the system.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_export AND export_max', 'equations': [{'where': 'operating_units', 'expression': 'flow_export <= export_max * operating_units'}, {'where': 'NOT operating_units', 'expression': 'flow_export <= export_max'}]}, 'unit_commitment_milp': {'description': 'Set the upper bound of the number of integer units of technology that can exist, for any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'operating_units AND purchased_units', 'equations': [{'expression': 'operating_units <= purchased_units'}]}, 'available_flow_cap_binary': {'description': 'Limit flow capacity to zero if the technology is not operating in a given timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap <= flow_cap_max * operating_units'}]}, 'available_flow_cap_continuous': {'description': 'Limit flow capacity to the value of the `flow_cap` decision variable when the technology is operating in a given timestep.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap <= flow_cap'}]}, 'available_flow_cap_max_binary_continuous_switch': {'description': 'Force flow capacity to equal the value of the `flow_cap` decision variable if the technology is operating in a given timestep, zero otherwise.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'available_flow_cap', 'equations': [{'expression': 'available_flow_cap >= flow_cap + ((operating_units - purchased_units) * flow_cap_max)'}]}, 'flow_out_max_milp': {'description': "Set the upper bound of a technology's ability to produce carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out AND operating_units AND flow_cap_per_unit', 'equations': [{'expression': 'flow_out <= operating_units * timestep_resolution * flow_cap_per_unit * flow_out_parasitic_eff'}]}, 'flow_in_max_milp': {'description': "Set the upper bound of a technology's ability to consume carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_in AND operating_units AND flow_cap_per_unit', 'equations': [{'expression': 'flow_in <= operating_units * timestep_resolution * flow_cap_per_unit'}]}, 'flow_out_min_milp': {'description': "Set the lower bound of a technology's ability to produce carriers, for any technology using integer units to define its capacity.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out AND operating_units AND flow_out_min_relative', 'equations': [{'where': 'flow_cap_per_unit', 'expression': 'flow_out >= operating_units * timestep_resolution * flow_cap_per_unit * flow_out_min_relative'}, {'where': 'available_flow_cap', 'expression': 'flow_out >= available_flow_cap * timestep_resolution * flow_out_min_relative'}]}, 'storage_capacity_units_milp': {'description': 'Fix the storage capacity of any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'storage AND purchased_units AND storage_cap_per_unit', 'equations': [{'expression': 'storage_cap == purchased_units * storage_cap_per_unit'}]}, 'flow_capacity_units_milp': {'description': 'Fix the flow capacity of any technology using integer units to define its capacity.', 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'operating_units', 'equations': [{'where': 'flow_cap_per_unit', 'expression': 'flow_cap == purchased_units * flow_cap_per_unit'}, {'where': 'NOT flow_cap_per_unit', 'expression': 'flow_cap <= purchased_units * bigM'}]}, 'flow_capacity_max_purchase_milp': {'description': "Set the upper bound on a technology's flow capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'purchased_units AND flow_cap_max', 'equations': [{'expression': 'flow_cap <= flow_cap_max * purchased_units'}]}, 'flow_capacity_min_purchase_milp': {'description': "Set the lower bound on a technology's flow capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs', 'carriers'], 'where': 'purchased_units AND flow_cap_min', 'equations': [{'expression': 'flow_cap >= flow_cap_min * purchased_units'}]}, 'storage_capacity_max_purchase_milp': {'description': "Set the upper bound on a technology's storage capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs'], 'where': 'purchased_units AND storage_cap_max', 'equations': [{'expression': 'storage_cap <= storage_cap_max * purchased_units'}]}, 'storage_capacity_min_purchase_milp': {'description': "Set the lower bound on a technology's storage capacity, for any technology with integer capacity purchasing.", 'foreach': ['nodes', 'techs'], 'where': 'purchased_units AND storage_cap_min', 'equations': [{'expression': 'storage_cap >= storage_cap_min * purchased_units'}]}, 'unit_capacity_max_systemwide_milp': {'description': 'Set the upper bound on the total number of units of a technology that can be purchased across all nodes where the technology can exist, for any technology using integer units to define its capacity.', 'foreach': ['techs'], 'where': 'purchased_units AND purchased_units_max_systemwide', 'equations': [{'expression': 'sum(purchased_units, over=nodes) <= purchased_units_max_systemwide'}]}, 'unit_capacity_min_systemwide_milp': {'description': 'Set the lower bound on the total number of units of a technology that can be purchased across all nodes where the technology can exist, for any technology using integer units to define its capacity.', 'foreach': ['techs'], 'where': 'purchased_units AND purchased_units_max_systemwide', 'equations': [{'expression': 'sum(purchased_units, over=nodes) >= purchased_units_min_systemwide'}]}, 'async_flow_in_milp': {'description': "Set a technology's ability to have inflow in the same timestep that it has outflow, for any technology using the asynchronous flow binary switch.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'async_flow_switch', 'equations': [{'expression': 'sum(flow_in, over=carriers) <= (1 - async_flow_switch) * bigM'}]}, 'async_flow_out_milp': {'description': "Set a technology's ability to have outflow in the same timestep that it has inflow, for any technology using the asynchronous flow binary switch.", 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'async_flow_switch', 'equations': [{'expression': 'sum(flow_out, over=carriers) <= async_flow_switch * bigM'}]}, 'ramping_up': {'description': "Set the upper bound on a technology's ability to ramp outflow up beyond a certain percentage compared to the previous timestep.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_ramping AND NOT timesteps=get_val_at_index(timesteps=0)', 'equations': [{'expression': '$flow - roll($flow, timesteps=1) <= flow_ramping * flow_cap'}], 'sub_expressions': {'flow': [{'where': 'carrier_out AND NOT carrier_in', 'expression': 'flow_out / timestep_resolution'}, {'where': 'carrier_in AND NOT carrier_out', 'expression': 'flow_in / timestep_resolution'}, {'where': 'carrier_in AND carrier_out', 'expression': '(flow_out - flow_in) / timestep_resolution'}]}}, 'ramping_down': {'description': "Set the upper bound on a technology's ability to ramp outflow down beyond a certain percentage compared to the previous timestep.", 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_ramping AND NOT timesteps=get_val_at_index(timesteps=0)', 'equations': [{'expression': '-1 * flow_ramping * flow_cap <= $flow - roll($flow, timesteps=1)'}], 'sub_expressions': {'flow': [{'where': 'carrier_out AND NOT carrier_in', 'expression': 'flow_out / timestep_resolution'}, {'where': 'carrier_in AND NOT carrier_out', 'expression': 'flow_in / timestep_resolution'}, {'where': 'carrier_in AND carrier_out', 'expression': '(flow_out - flow_in) / timestep_resolution'}]}}, 'link_chp_outputs': {'description': 'Fix the relationship between heat and electricity output', 'equations': [{'expression': 'flow_out[carriers=electricity] * heat_to_power_ratio == flow_out[carriers=heat]'}], 'foreach': ['nodes', 'techs', 'timesteps'], 'where': '[chp] in techs'}}, 'variables': {'flow_cap': {'description': "A technology's flow capacity, also known as its nominal or nameplate capacity.", 'unit': 'power', 'foreach': ['nodes', 'techs', 'carriers'], 'bounds': {'min': 'flow_cap_min', 'max': 'flow_cap_max'}}, 'link_flow_cap': {'description': "A transmission technology's flow capacity, also known as its nominal or nameplate capacity.", 'unit': 'power', 'foreach': ['techs'], 'where': 'base_tech=transmission', 'bounds': {'min': 0, 'max': inf}}, 'flow_out': {'description': 'The outflow of a technology per timestep, also known as the flow discharged (from `storage` technologies) or the flow received (by `transmission` technologies) on a link.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_out', 'bounds': {'min': 0, 'max': inf}}, 'flow_in': {'description': 'The inflow to a technology per timestep, also known as the flow consumed (by `storage` technologies) or the flow sent (by `transmission` technologies) on a link.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_in', 'bounds': {'min': 0, 'max': inf}}, 'flow_export': {'description': 'The flow of a carrier exported outside the system boundaries by a technology per timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'carrier_export', 'bounds': {'min': 0, 'max': inf}}, 'area_use': {'description': 'The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.', 'unit': 'area', 'foreach': ['nodes', 'techs'], 'where': '(area_use_min OR area_use_max OR area_use_per_flow_cap OR sink_unit=per_area OR source_unit=per_area)', 'bounds': {'min': 'area_use_min', 'max': 'area_use_max'}}, 'source_use': {'description': 'The carrier flow consumed from outside the system boundaries by a `supply` technology.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'base_tech=supply', 'bounds': {'min': 0, 'max': inf}}, 'source_cap': {'description': 'The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.', 'unit': 'power', 'foreach': ['nodes', 'techs'], 'where': 'base_tech=supply', 'bounds': {'min': 'source_cap_min', 'max': 'source_cap_max'}}, 'storage_cap': {'description': 'The upper limit on a carrier that can be stored by a technology in any timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs'], 'where': 'include_storage=True OR base_tech=storage', 'domain': 'real', 'bounds': {'min': 'storage_cap_min', 'max': 'storage_cap_max'}, 'active': True}, 'storage': {'description': 'The carrier stored by a `storage` technology in each timestep.', 'unit': 'energy', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'include_storage=True OR base_tech=storage', 'bounds': {'min': 0, 'max': inf}}, 'purchased_units': {'description': 'Integer number of a technology that has been purchased,\nfor any technology set to require integer capacity purchasing.\nThis is used to allow installation of fixed capacity units of technologies (\nif `flow_cap_max` == `flow_cap_min`) and/or to set a fixed cost for a technology,\nirrespective of its installed capacity.\nOn top of a fixed technology cost,\na continuous cost for the quantity of installed capacity can still be applied.\n\nSince technology capacity is no longer a continuous decision variable,\nit is possible for these technologies to have a lower bound set on outflow/consumption\nwhich will only be enforced in those timesteps that the technology is operating.\nOtherwise, the same lower bound forces the technology to produce/consume\nthat minimum amount of carrier in *every* timestep.\n', 'unit': 'integer', 'foreach': ['nodes', 'techs'], 'where': 'cap_method=integer', 'domain': 'integer', 'bounds': {'min': 'purchased_units_min', 'max': 'purchased_units_max'}}, 'operating_units': {'description': 'Integer number of a technology that is operating in each timestep, for any technology set to require integer capacity purchasing.', 'unit': 'integer', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'integer_dispatch=True AND cap_method=integer', 'domain': 'integer', 'bounds': {'min': 0, 'max': inf}}, 'available_flow_cap': {'description': 'Flow capacity that will be set to zero if the technology is not operating in a given timestep and will be set to the value of the decision variable `flow_cap` otherwise.', 'unit': 'power', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'integer_dispatch=True AND flow_cap_max AND NOT flow_cap_per_unit', 'bounds': {'min': 0, 'max': inf}}, 'async_flow_switch': {'description': 'Binary switch to force asynchronous outflow/consumption of technologies with both `flow_in` and `flow_out` defined. This ensures that a technology with carrier flow efficiencies < 100% cannot produce and consume a flow simultaneously to remove unwanted carrier from the system.', 'unit': 'integer', 'foreach': ['nodes', 'techs', 'timesteps'], 'where': 'force_async_flow=True', 'domain': 'integer', 'bounds': {'min': 0, 'max': 1}}, 'unmet_demand': {'description': 'Virtual source of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined supply capacity to meet demand.', 'unit': 'energy', 'foreach': ['nodes', 'carriers', 'timesteps'], 'where': 'config.ensure_feasibility=True', 'bounds': {'min': 0, 'max': inf}}, 'unused_supply': {'description': 'Virtual sink of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. In model results, the negation of this variable is combined with `unmet_demand` and presented as only one variable: `unmet_demand`. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined consumption capacity to meet required outflow (e.g. from renewables without the possibility of curtailment).', 'unit': 'energy', 'foreach': ['nodes', 'carriers', 'timesteps'], 'where': 'config.ensure_feasibility=True', 'bounds': {'min': -inf, 'max': 0}}}, 'objectives': {'min_cost_optimisation': {'description': 'Minimise the total cost of installing and operating all technologies in the system. If multiple cost classes are present (e.g., monetary and co2 emissions), the weighted sum of total costs is minimised. Cost class weights can be defined in the indexed parameter `objective_cost_weights`.', 'equations': [{'where': 'any(cost, over=[nodes, techs, costs])', 'expression': 'sum(\n sum(cost, over=[nodes, techs])\n * objective_cost_weights,\n over=costs\n) + $unmet_demand'}, {'where': 'NOT any(cost, over=[nodes, techs, costs])', 'expression': '$unmet_demand'}], 'sub_expressions': {'unmet_demand': [{'where': 'config.ensure_feasibility=True', 'expression': 'sum(\n sum(unmet_demand - unused_supply, over=[carriers, nodes])\n * timestep_weights,\n over=timesteps\n) * bigM'}, {'where': 'NOT config.ensure_feasibility=True', 'expression': '0'}]}, 'sense': 'minimise', 'active': True}}, 'global_expressions': {'flow_out_inc_eff': {'description': 'Outflows after taking efficiency losses into account.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_out', 'equations': [{'where': 'base_tech=transmission', 'expression': 'flow_out / (\n flow_out_eff * flow_out_parasitic_eff *\n flow_out_eff_per_distance ** default_if_empty(distance, 1)\n)'}, {'where': 'NOT base_tech=transmission', 'expression': 'flow_out / (flow_out_eff * flow_out_parasitic_eff)'}]}, 'flow_in_inc_eff': {'description': 'Inflows after taking efficiency losses into account.', 'foreach': ['nodes', 'techs', 'carriers', 'timesteps'], 'where': 'flow_in', 'equations': [{'where': 'base_tech=transmission', 'expression': 'flow_in * flow_in_eff * flow_in_eff_per_distance ** default_if_empty(distance, 1)'}, {'where': 'NOT base_tech=transmission', 'expression': 'flow_in * flow_in_eff'}]}, 'cost_var': {'description': 'The operating costs per timestep of a technology.', 'unit': 'cost_per_time', 'foreach': ['nodes', 'techs', 'costs', 'timesteps'], 'where': 'cost_export OR cost_flow_in OR cost_flow_out', 'equations': [{'expression': 'timestep_weights * ($cost_export + $cost_flow_out + $cost_flow_in)'}], 'sub_expressions': {'cost_export': [{'where': 'flow_export', 'expression': 'sum(cost_export * default_if_empty(flow_export, 0), over=carriers)'}, {'where': 'NOT flow_export', 'expression': '0'}], 'cost_flow_in': [{'where': 'base_tech=supply', 'expression': 'cost_flow_in * source_use'}, {'where': 'NOT base_tech=supply', 'expression': 'sum(cost_flow_in * default_if_empty(flow_in, 0), over=carriers)'}], 'cost_flow_out': [{'expression': 'sum(cost_flow_out * default_if_empty(flow_out, 0), over=carriers)'}]}}, 'cost_investment_flow_cap': {'description': 'The investment costs associated with the nominal/rated capacity of a technology.', 'foreach': ['nodes', 'techs', 'carriers', 'costs'], 'where': 'flow_cap AND (cost_flow_cap OR cost_flow_cap_per_distance)', 'equations': [{'expression': '$cost_sum * flow_cap'}], 'sub_expressions': {'cost_sum': [{'where': 'base_tech=transmission', 'expression': '(cost_flow_cap + cost_flow_cap_per_distance * default_if_empty(distance, 0)) * 0.5'}, {'where': 'NOT base_tech=transmission', 'expression': 'cost_flow_cap'}]}}, 'cost_investment_storage_cap': {'description': 'The investment costs associated with the storage capacity of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_storage_cap AND storage_cap', 'equations': [{'expression': 'cost_storage_cap * storage_cap'}]}, 'cost_investment_source_cap': {'description': 'The investment costs associated with the source consumption capacity of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_source_cap AND source_cap', 'equations': [{'expression': 'cost_source_cap * source_cap'}]}, 'cost_investment_area_use': {'description': 'The investment costs associated with the area used by a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_area_use AND area_use', 'equations': [{'expression': 'cost_area_use * area_use'}]}, 'cost_investment_purchase': {'description': 'The investment costs associated with the binary purchase of a technology.', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_purchase AND purchased_units', 'equations': [{'where': 'base_tech=transmission', 'expression': '(cost_purchase + cost_purchase_per_distance * default_if_empty(distance, 0)) * purchased_units * 0.5'}, {'where': 'NOT base_tech=transmission', 'expression': 'cost_purchase * purchased_units'}]}, 'cost_investment': {'description': 'The installation costs of a technology, including annualised investment costs and annual maintenance costs.', 'unit': 'cost', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_investment_flow_cap OR cost_investment_storage_cap OR cost_investment_source_cap OR cost_investment_area_use OR cost_investment_purchase', 'equations': [{'expression': '$annualisation_weight * (\n $depreciation_rate * (\n sum(default_if_empty(cost_investment_flow_cap, 0), over=carriers) +\n default_if_empty(cost_investment_storage_cap, 0) +\n default_if_empty(cost_investment_source_cap, 0) +\n default_if_empty(cost_investment_area_use, 0) +\n default_if_empty(cost_investment_purchase, 0)\n ) * (1 + cost_om_annual_investment_fraction)\n + sum(cost_om_annual * default_if_empty(flow_cap, 0), over=carriers)\n)\n'}], 'sub_expressions': {'annualisation_weight': [{'expression': 'sum(timestep_resolution * timestep_weights, over=timesteps) / 8760'}], 'depreciation_rate': [{'where': 'cost_depreciation_rate', 'expression': 'cost_depreciation_rate'}, {'where': 'NOT cost_depreciation_rate AND cost_interest_rate=0', 'expression': '1 / lifetime'}, {'where': 'NOT cost_depreciation_rate AND cost_interest_rate>0', 'expression': '(cost_interest_rate * ((1 + cost_interest_rate) ** lifetime)) / (((1 + cost_interest_rate) ** lifetime) - 1)'}]}}, 'cost': {'description': 'The total annualised costs of a technology, including installation and operation costs.', 'unit': 'cost', 'foreach': ['nodes', 'techs', 'costs'], 'where': 'cost_investment OR cost_var', 'equations': [{'expression': '$cost_investment + $cost_var_sum'}], 'sub_expressions': {'cost_investment': [{'where': 'cost_investment', 'expression': 'cost_investment'}, {'where': 'NOT cost_investment', 'expression': '0'}], 'cost_var_sum': [{'where': 'cost_var', 'expression': 'sum(cost_var, over=timesteps)'}, {'where': 'NOT cost_var', 'expression': '0'}]}, 'active': True}}}
- name :
- Urban-scale example model
We can also view the data within the backend directly
m.backend.get_variable("flow_cap", as_backend_objs=False).to_series().dropna()
nodes techs carriers N1 N1_to_X2 heat 189.87211 N1_to_X3 heat 10.382599 X1_to_N1 heat 567.70227 X1 X1_to_N1 heat 567.70227 X1_to_X2 electricity 274.76645 X1_to_X3 electricity 47.452088 chp electricity 260.44701 gas 643.07904 heat 208.35761 demand_electricity electricity 1.307938 demand_heat heat 1.719711 pv electricity 0.0 supply_gas gas 643.07904 supply_grid_power electricity 34.114372 X2 N1_to_X2 heat 189.87211 X1_to_X2 electricity 274.76645 boiler gas 227.26339 heat 193.17388 demand_electricity electricity 269.34435 demand_heat heat 365.13767 pv electricity 14.358886 supply_gas gas 227.26339 X3 N1_to_X3 heat 10.382599 X1_to_X3 electricity 47.452088 boiler gas 0.018353 heat 0.0156 demand_electricity electricity 64.927357 demand_heat heat 9.398229 pv electricity 100.0 supply_gas gas 0.018353 Name: flow_cap, dtype: object
Save¶
# We can save at any point, which will dump the entire m._model_data to file.
# NetCDF is recommended, as it retains most of the data and can be reloaded into a Calliope model at a later date.
output_path = Path(".") / "outputs" / "4_calliope_model_object"
output_path.mkdir(parents=True, exist_ok=True)
m.to_netcdf(output_path / "example.nc") # Saves a single file
m.to_csv(
output_path / "csv_files", allow_overwrite=True
) # Saves a file for each xarray DataArray