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-12-16 11:50:50] INFO Model: initialising
[2024-12-16 11:50:50] INFO Model: preprocessing stage 1 (model_run)
[2024-12-16 11:50:53] INFO Model: preprocessing stage 2 (model_data)
[2024-12-16 11:50:53] INFO Model: preprocessing complete
# Get information on the model
print(m.info())
[2024-12-16 11:50:53] WARNING /home/docs/checkouts/readthedocs.org/user_builds/calliope/conda/v0.7.0.dev5/lib/python3.12/site-packages/calliope/model.py:502: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. msize = dict(self._model_data.dims)
Model name: Urban-scale example model Model size: {'costs': 1, 'techs': 12, 'carriers': 3, 'nodes': 4, 'timesteps': 48} (30 valid node:tech:carrier combinations)
Model data¶
m._model_data
is an xarray Dataset, a hidden property of the Model as you are expected to access the data via the public property inputs
m.inputs
<xarray.Dataset> Size: 88kB Dimensions: (costs: 1, techs: 12, carriers: 3, nodes: 4, timesteps: 48) Coordinates: * costs (costs) object 8B 'monetary' * techs (techs) object 96B 'N1_to_X2' ... 'supply_gri... * carriers (carriers) object 24B 'electricity' 'gas' 'heat' * nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 384B 2005-07-01 ..... Data variables: (12/35) cost_interest_rate (costs) float64 8B 0.1 bigM float64 8B 1e+06 objective_cost_weights (costs) float64 8B 1.0 base_tech (techs) object 96B 'transmission' ... 'supply' carrier_export (techs, carriers) float64 288B nan nan ... nan carrier_in (nodes, techs, carriers) float64 1kB nan ... nan ... ... longitude (nodes) float64 32B -0.1247 -0.1613 ... -0.1311 source_use_equals (techs, timesteps) float64 5kB nan nan ... nan sink_use_equals (timesteps, techs, nodes) float64 18kB nan ..... definition_matrix (nodes, techs, carriers) bool 144B False ... ... timestep_resolution (timesteps) float64 384B 1.0 1.0 1.0 ... 1.0 1.0 timestep_weights (timesteps) float64 384B 1.0 1.0 1.0 ... 1.0 1.0 Attributes: calliope_version_defined: 0.7.0 calliope_version_initialised: 0.7.0.dev5 applied_overrides: scenario: None defaults: {'bigM': 1000000000.0, 'objective_cost_wei... allow_operate_mode: 1 config: {'init': {'name': 'Urban-scale example mod... name: Urban-scale example model timestamp_model_creation: 1734349850.375516
- 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]')
- cost_interest_rate(costs)float640.1
- is_result :
- False
- default :
- 0
array([0.1])
- bigM()float641e+06
- is_result :
- False
- default :
- 1000000000.0
array(1000000.)
- objective_cost_weights(costs)float641.0
- is_result :
- False
- default :
- 1
array([1.])
- 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_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]])
- 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(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_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(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])
- 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)
- 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_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]])
- distance(techs)float643.0 4.0 3.0 10.0 ... nan nan nan
- is_result :
- False
- default :
- 1.0
array([ 3., 4., 3., 10., 5., nan, nan, nan, nan, nan, nan, nan])
- techs_inheritance(techs)object'heat_pipes' 'heat_pipes' ... nan
- is_result :
- False
array(['heat_pipes', 'heat_pipes', 'heat_pipes', 'power_lines', 'power_lines', nan, nan, nan, nan, nan, nan, nan], dtype=object)
- 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])
- 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]]])
- available_area(nodes)float64nan 500.0 1.3e+03 900.0
- is_result :
- False
- default :
- inf
array([ nan, 500., 1300., 900.])
- 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])
- 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.dev5
- applied_overrides :
- scenario :
- None
- defaults :
- {'bigM': 1000000000.0, 'objective_cost_weights': 1, 'color': nan, 'name': nan, 'cap_method': 'continuous', 'integer_dispatch': False, 'include_storage': False, 'force_async_flow': False, 'flow_cap_per_storage_cap_min': 0, 'flow_cap_per_storage_cap_max': inf, 'flow_cap': inf, 'flow_cap_max': inf, 'flow_cap_max_systemwide': inf, 'flow_cap_min': 0, 'flow_cap_min_systemwide': 0, 'flow_out_min_relative': 0, 'flow_cap_per_unit': nan, 'flow_in_eff': 1.0, 'flow_out_eff': 1.0, 'flow_out_parasitic_eff': 1.0, 'flow_ramping': 1.0, 'export_max': inf, 'lifetime': inf, 'area_use': inf, 'area_use_max': inf, 'area_use_min': 0, 'area_use_per_flow_cap': nan, '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, 'cyclic_storage': True, 'purchased_units_min_systemwide': 0, 'purchased_units_max_systemwide': inf, 'purchased_units': inf, 'purchased_units_min': 0, 'purchased_units_max': inf, 'sink_unit': 'absolute', 'sink_use_min': 0, 'sink_use_max': inf, 'sink_use_equals': nan, 'source_unit': 'absolute', 'source_cap_equals_flow_cap': False, 'source_eff': 1.0, 'source_use_min': 0, 'source_use_max': inf, 'source_use_equals': nan, 'source_cap': inf, 'source_cap_max': inf, 'source_cap_min': 0, 'one_way': False, 'distance': 1.0, 'flow_in_eff_per_distance': 1.0, 'flow_out_eff_per_distance': 1.0, 'cost_flow_cap_per_distance': 0, 'cost_purchase_per_distance': 0, 'cost_flow_cap': 0, 'cost_export': 0, 'cost_interest_rate': 0, 'cost_om_annual': 0, 'cost_om_annual_investment_fraction': 0, 'cost_flow_in': 0, 'cost_flow_out': 0, 'cost_purchase': 0, 'cost_area_use': 0, 'cost_source_cap': 0, 'cost_storage_cap': 0, 'cost_depreciation_rate': 1, 'available_area': inf}
- allow_operate_mode :
- 1
- config :
- {'init': {'name': 'Urban-scale example model', 'calliope_version': '0.7.0', 'time_subset': ['2005-07-01', '2005-07-02'], 'time_resample': None, 'time_cluster': None, 'time_format': 'ISO8601', 'distance_unit': 'km', 'broadcast_param_data': True}, 'build': {'add_math': ['additional_math.yaml'], 'ignore_mode_math': False, 'backend': 'pyomo', 'ensure_feasibility': True, 'mode': 'plan', 'objective': 'min_cost_optimisation', 'operate_use_cap_results': False, 'pre_validate_math_strings': True}, 'solve': {'spores_number': 3, 'spores_score_cost_class': 'spores_score', 'spores_save_per_spore': False, 'spores_skip_cost_op': False, 'save_logs': None, 'solver_io': None, 'solver_options': None, 'solver': 'cbc', 'zero_threshold': 1e-10, 'shadow_prices': []}}
- name :
- Urban-scale example model
- timestamp_model_creation :
- 1734349850.375516
Until we solve the model, inputs
is the same as _model_data
m._model_data
<xarray.Dataset> Size: 88kB Dimensions: (costs: 1, techs: 12, carriers: 3, nodes: 4, timesteps: 48) Coordinates: * costs (costs) object 8B 'monetary' * techs (techs) object 96B 'N1_to_X2' ... 'supply_gri... * carriers (carriers) object 24B 'electricity' 'gas' 'heat' * nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 384B 2005-07-01 ..... Data variables: (12/35) cost_interest_rate (costs) float64 8B 0.1 bigM float64 8B 1e+06 objective_cost_weights (costs) float64 8B 1.0 base_tech (techs) object 96B 'transmission' ... 'supply' carrier_export (techs, carriers) float64 288B nan nan ... nan carrier_in (nodes, techs, carriers) float64 1kB nan ... nan ... ... longitude (nodes) float64 32B -0.1247 -0.1613 ... -0.1311 source_use_equals (techs, timesteps) float64 5kB nan nan ... nan sink_use_equals (timesteps, techs, nodes) float64 18kB nan ..... definition_matrix (nodes, techs, carriers) bool 144B False ... ... timestep_resolution (timesteps) float64 384B 1.0 1.0 1.0 ... 1.0 1.0 timestep_weights (timesteps) float64 384B 1.0 1.0 1.0 ... 1.0 1.0 Attributes: calliope_version_defined: 0.7.0 calliope_version_initialised: 0.7.0.dev5 applied_overrides: scenario: None defaults: {'bigM': 1000000000.0, 'objective_cost_wei... allow_operate_mode: 1 config: {'init': {'name': 'Urban-scale example mod... name: Urban-scale example model timestamp_model_creation: 1734349850.375516
- 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]')
- cost_interest_rate(costs)float640.1
- is_result :
- False
- default :
- 0
array([0.1])
- bigM()float641e+06
- is_result :
- False
- default :
- 1000000000.0
array(1000000.)
- objective_cost_weights(costs)float641.0
- is_result :
- False
- default :
- 1
array([1.])
- 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_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]])
- 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(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_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(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])
- 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)
- 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_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]])
- distance(techs)float643.0 4.0 3.0 10.0 ... nan nan nan
- is_result :
- False
- default :
- 1.0
array([ 3., 4., 3., 10., 5., nan, nan, nan, nan, nan, nan, nan])
- techs_inheritance(techs)object'heat_pipes' 'heat_pipes' ... nan
- is_result :
- False
array(['heat_pipes', 'heat_pipes', 'heat_pipes', 'power_lines', 'power_lines', nan, nan, nan, nan, nan, nan, nan], dtype=object)
- 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])
- 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]]])
- available_area(nodes)float64nan 500.0 1.3e+03 900.0
- is_result :
- False
- default :
- inf
array([ nan, 500., 1300., 900.])
- 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])
- 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.dev5
- applied_overrides :
- scenario :
- None
- defaults :
- {'bigM': 1000000000.0, 'objective_cost_weights': 1, 'color': nan, 'name': nan, 'cap_method': 'continuous', 'integer_dispatch': False, 'include_storage': False, 'force_async_flow': False, 'flow_cap_per_storage_cap_min': 0, 'flow_cap_per_storage_cap_max': inf, 'flow_cap': inf, 'flow_cap_max': inf, 'flow_cap_max_systemwide': inf, 'flow_cap_min': 0, 'flow_cap_min_systemwide': 0, 'flow_out_min_relative': 0, 'flow_cap_per_unit': nan, 'flow_in_eff': 1.0, 'flow_out_eff': 1.0, 'flow_out_parasitic_eff': 1.0, 'flow_ramping': 1.0, 'export_max': inf, 'lifetime': inf, 'area_use': inf, 'area_use_max': inf, 'area_use_min': 0, 'area_use_per_flow_cap': nan, '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, 'cyclic_storage': True, 'purchased_units_min_systemwide': 0, 'purchased_units_max_systemwide': inf, 'purchased_units': inf, 'purchased_units_min': 0, 'purchased_units_max': inf, 'sink_unit': 'absolute', 'sink_use_min': 0, 'sink_use_max': inf, 'sink_use_equals': nan, 'source_unit': 'absolute', 'source_cap_equals_flow_cap': False, 'source_eff': 1.0, 'source_use_min': 0, 'source_use_max': inf, 'source_use_equals': nan, 'source_cap': inf, 'source_cap_max': inf, 'source_cap_min': 0, 'one_way': False, 'distance': 1.0, 'flow_in_eff_per_distance': 1.0, 'flow_out_eff_per_distance': 1.0, 'cost_flow_cap_per_distance': 0, 'cost_purchase_per_distance': 0, 'cost_flow_cap': 0, 'cost_export': 0, 'cost_interest_rate': 0, 'cost_om_annual': 0, 'cost_om_annual_investment_fraction': 0, 'cost_flow_in': 0, 'cost_flow_out': 0, 'cost_purchase': 0, 'cost_area_use': 0, 'cost_source_cap': 0, 'cost_storage_cap': 0, 'cost_depreciation_rate': 1, 'available_area': inf}
- allow_operate_mode :
- 1
- config :
- {'init': {'name': 'Urban-scale example model', 'calliope_version': '0.7.0', 'time_subset': ['2005-07-01', '2005-07-02'], 'time_resample': None, 'time_cluster': None, 'time_format': 'ISO8601', 'distance_unit': 'km', 'broadcast_param_data': True}, 'build': {'add_math': ['additional_math.yaml'], 'ignore_mode_math': False, 'backend': 'pyomo', 'ensure_feasibility': True, 'mode': 'plan', 'objective': 'min_cost_optimisation', 'operate_use_cap_results': False, 'pre_validate_math_strings': True}, 'solve': {'spores_number': 3, 'spores_score_cost_class': 'spores_score', 'spores_save_per_spore': False, 'spores_skip_cost_op': False, 'save_logs': None, 'solver_io': None, 'solver_options': None, 'solver': 'cbc', 'zero_threshold': 1e-10, 'shadow_prices': []}}
- name :
- Urban-scale example model
- timestamp_model_creation :
- 1734349850.375516
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-12-16 11:50:53] INFO Model: backend build starting
[2024-12-16 11:50:53] INFO Math preprocessing | added file 'plan'.
[2024-12-16 11:50:53] INFO Math preprocessing | added file 'additional_math.yaml'.
[2024-12-16 11:50:53] INFO Math preprocessing | validated math against schema.
[2024-12-16 11:50:53] INFO Optimisation Model | parameters | Generated.
[2024-12-16 11:50:56] INFO Optimisation Model | Validated math strings.
[2024-12-16 11:50:56] INFO Optimisation Model | variables | Generated.
[2024-12-16 11:50:57] INFO Optimisation Model | global_expressions | Generated.
[2024-12-16 11:50:59] INFO Optimisation Model | constraints | Generated.
[2024-12-16 11:50:59] INFO Optimisation Model | piecewise_constraints | Generated.
[2024-12-16 11:50:59] INFO Optimisation Model | objectives | Generated.
[2024-12-16 11:50:59] INFO Model: backend build complete
As with the calliope Model
, the backend has its own dataset containing all the arrays of backend objects
m.backend._dataset
<xarray.Dataset> Size: 778kB Dimensions: (costs: 1, techs: 12, carriers: 3, nodes: 4, timesteps: 48) Coordinates: * costs (costs) object 8B 'monetary' * techs (techs) object 96B 'N1_to_X2' ... 'su... * carriers (carriers) object 24B 'electricity' .... * nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 384B 2005-... Data variables: (12/111) cost_interest_rate (costs) object 8B parameters[cost_int... bigM object 8B parameters[bigM][0] objective_cost_weights (costs) object 8B parameters[objectiv... base_tech (techs) object 96B parameters[base_te... carrier_export (techs, carriers) object 288B nan ...... carrier_in (nodes, techs, carriers) object 1kB n... ... ... source_availability_supply (nodes, techs, timesteps) object 18kB ... balance_transmission (techs, timesteps) object 5kB constra... symmetric_transmission (nodes, techs) object 384B constraint... export_balance (nodes, techs, carriers, timesteps) object 55kB ... link_chp_outputs (nodes, techs, timesteps) object 18kB ... min_cost_optimisation object 8B objectives[min_cost_optimis...
- 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]')
- cost_interest_rate(costs)objectparameters[cost_interest_rate][0]
- obj_type :
- parameters
- references :
- {'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- Interest rate.
- description :
- Used when computing levelized costs and technology depreciation_rate (relative to lifetime).
- unit :
- fraction
- default :
- 0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003dae0>], dtype=object)
- bigM()objectparameters[bigM][0]
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- None
- description :
- BigM is a large value used to define certain optimisation problems. See https://en.wikipedia.org/wiki/Big_M_method for more information. This value should be larger than the largest values that any decision variables can take, but should not be **too** large (i.e., do not set it greater than 3 orders of magnitude above the numeric range of the model). If too large, numerical problems may arise in the optimisation.
- unit :
- None
- default :
- 1000000000.0
- original_dtype :
- float64
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003de00>, dtype=object)
- objective_cost_weights(costs)objectparameters[objective_cost_weight...
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- None
- description :
- Weightings for cost classes to apply in the objective function.
- unit :
- None
- default :
- 1
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003ccd0>], dtype=object)
- base_tech(techs)objectparameters[base_tech][0] ... par...
- obj_type :
- parameters
- references :
- {'cost_operation_variable', 'link_flow_cap', 'balance_demand', 'balance_supply_no_storage', 'balance_transmission', 'flow_in_inc_eff', 'source_use', 'balance_conversion', 'flow_out_inc_eff', 'cost_investment_flow_cap', 'symmetric_transmission', 'source_cap'}
- coords_in_name :
- False
- title :
- Abstract base technology name.
- description :
- Should be the name of one of the abstract base classes, from which some initial parameter defaults will be derived and with which certain base math will be triggered.
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e4e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e5d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e6c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e8a0>], dtype=object)
- carrier_export(techs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_export'}
- coords_in_name :
- False
- title :
- None
- description :
- Carrier(s) produced by this technology that can be exported out of the system boundaries without having to go to a pre-defined `sink` (i.e., via a `demand` technology). Must be a subset of `carrier_out`.
- unit :
- None
- default :
- nan
- original_dtype :
- float64
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 0x7f8f2003ec10>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003eb20>, nan, nan], [nan, nan, nan], [nan, nan, nan]], dtype=object)
- carrier_in(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_in_max', 'flow_in'}
- coords_in_name :
- False
- title :
- None
- description :
- Carrier(s) consumed by this technology. Only `transmission`, `conversion`, `storage`, and `demand` technologies can define this parameter
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fac0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fbb0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fc50>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7f8f2003fca0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fc00>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003f390>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fa20>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003f0c0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fd40>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]]], dtype=object)
- carrier_out(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_out_max', 'flow_out'}
- coords_in_name :
- False
- title :
- None
- description :
- Carrier(s) produced by this technology. Only `transmission`, `conversion`, `storage`, and `supply` technologies can define this parameter
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044870>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044910>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044a50>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7f8f20044aa0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044a00>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003f5c0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044b40>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044500>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044820>, nan], [nan, nan, nan]]], dtype=object)
- color(techs)objectparameters[color][0] ... paramet...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- Color that can be used when plotting results.
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200440f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044eb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044690>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200450e0>], dtype=object)
- cost_flow_cap(nodes, techs, costs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
- title :
- Cost of flow capacity.
- description :
- Cost per unit of the decision variable `flow_cap`.
- unit :
- $\text{power}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20045680>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200459f0>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20045810>, nan]], [[nan, nan, nan]]]], dtype=object)
- cost_flow_out(techs, costs, carriers, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier outflow cost
- description :
- Cost per unit of `flow_in` in each timestep.
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200457c0>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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_cap_max(techs, carriers, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
- title :
- Maximum rated flow capacity.
- description :
- Limits `flow_cap` to a maximum.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047390>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200475c0>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046e40>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047610>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200476b0>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20045b80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046ad0>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200472a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200473e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047570>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047250>, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], dtype=object)
- flow_out_eff(techs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
- title :
- Outflow efficiency
- description :
- Conversion efficiency from the technology to `sink`/`flow_out` (tech dependent). Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044ff0>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046fd0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047480>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046d50>, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], dtype=object)
- heat_to_power_ratio(techs)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'link_chp_outputs'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046b20>, nan, nan, nan, nan, nan], dtype=object)
- lifetime(techs)objectparameters[lifetime][0] ... para...
- obj_type :
- parameters
- references :
- {'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- Technology lifetime
- description :
- Must be defined if fixed capital costs are defined. A reasonable value for many technologies is around 20-25 years.
- unit :
- years.
- default :
- inf
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047ca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200600f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200605a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200605f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200606e0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200607d0>], dtype=object)
- name(techs)objectparameters[name][0] ... paramete...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Technology long-name.
- description :
- Long name of technology, which can be used in post-processing (e.g., plotting).
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060870>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060b90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060c80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060d20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060e60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060eb0>], dtype=object)
- area_use_max(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- title :
- Maximum usable area.
- description :
- If set to a finite value, limits the upper bound of the `area_use` decision variable to this value.
- unit :
- $\text{area}$.
- default :
- inf
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060b40>, nan, nan], dtype=object)
- area_use_per_flow_cap(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use_per_flow_capacity', 'area_use'}
- coords_in_name :
- False
- title :
- Area use per flow capacity
- description :
- If set, forces `area_use` to follow `flow_cap` with the given numerical ratio (e.g. setting to 1.5 means that `area_use == 1.5 * flow_cap`).
- unit :
- $\frac{\text{area}}{\text{power}}$.
- default :
- nan
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060690>, nan, nan], dtype=object)
- flow_out_parasitic_eff(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'flow_out_max'}
- coords_in_name :
- False
- title :
- Plant parasitic efficiency
- description :
- Additional losses as flow gets transferred from the plant to the carrier, e.g. due to plant parasitic consumption. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061040>, nan, nan], dtype=object)
- source_unit(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'source_availability_supply', 'area_use'}
- coords_in_name :
- False
- title :
- Source unit
- description :
- Sets the unit of `Source` to either `absolute` (unit: `energy`), `per_area` (unit: `energy/area`), or `per_cap` (unit: `energy/power`). `per_area` uses the `area_use` decision variable to scale the source while `per_cap` uses the `flow_cap` decision variable.
- unit :
- None
- default :
- absolute
- original_dtype :
- object
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061130>, nan, nan], dtype=object)
- cost_flow_in(techs, costs)objectnan ... parameters[cost_flow_in][2]
- obj_type :
- parameters
- references :
- {'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier inflow cost.
- description :
- Cost per unit of `flow_in` in each timestep.
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
array([[nan], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061ef0>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061810>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200614a0>]], dtype=object)
- source_use_max(techs)objectnan ... parameters[source_use_ma...
- obj_type :
- parameters
- references :
- {'source_availability_supply'}
- coords_in_name :
- False
- title :
- Maximum bound on sink.
- description :
- Maximum sink use to remove a carrier from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated by `source_unit`.
- unit :
- None
- default :
- inf
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061bd0>], dtype=object)
- cost_flow_cap_per_distance(techs, costs)objectparameters[cost_flow_cap_per_dis...
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
- title :
- Cost of flow capacity, per unit distance
- description :
- Cost per unit of the decision variable `flow_cap` and per unit distance of a transmission link. Applied to transmission links only.
- unit :
- $(\text{power}\times\text{distance})^{-1}$
- default :
- 0
- original_dtype :
- float64
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200622b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061f90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200623a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062df0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062e40>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object)
- distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'cost_investment_flow_cap', 'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Distance spanned by link.
- description :
- Used for `..._per_distance` constraints. If not defined, it will be automatically derived from latitude/longitude of nodes in a link.
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200626c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200625d0>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- techs_inheritance(techs)objectparameters[techs_inheritance][0]...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200619f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200629e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063890>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- flow_out_eff_per_distance(techs)objectparameters[flow_out_eff_per_dist...
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
- title :
- Outflow (i.e., import from node) efficiency per distance of transmission links.
- description :
- Total link efficiency will be calculated as $\text{flow\_out\_eff}\times{}\text{flow\_out\_eff\_per\_distance}^\text{distance}$. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063980>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063d90>, nan, nan, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- cost_export(nodes, techs, costs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier export cost.
- description :
- Cost per unit of `flow_export` in each timestep. Usually used in the negative sense, as a subsidy.
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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]]]]], dtype=object)
- cost_om_annual(nodes, techs, costs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Annual O&M costs
- description :
- Annual costs applied per unit `flow_cap`. These costs are not subject to being recalculated relative to technology lifetime, only scaled to reflect the fraction of one year that the model represents (e.g., 7 days ~= 0.02 of a year).
- unit :
- $\text{power}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ee5c20>], [nan], [nan]]], dtype=object)
- available_area(nodes)objectnan ... parameters[available_are...
- obj_type :
- parameters
- references :
- {'area_use_capacity_per_loc'}
- coords_in_name :
- False
- title :
- Available area at the given node.
- description :
- Limits the total area that can be occupied by all technologies which have the `area_use` decision variable activated.
- unit :
- $\text{area}$.
- default :
- inf
- original_dtype :
- float64
array([nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20efc0f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20eb1ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20eb2c60>], dtype=object)
- latitude(nodes)objectparameters[latitude][0] ... para...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Latitude (WGS84 / EPSG4326).
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20eb3f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2000f390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed4280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed55e0>], dtype=object)
- longitude(nodes)objectparameters[longitude][0] ... par...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Longitude (WGS84 / EPSG4326).
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2000f4d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ece8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ecf700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ecf430>], dtype=object)
- source_use_equals(techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'source_availability_supply'}
- coords_in_name :
- False
- title :
- Required sink use.
- description :
- Required amount of carrier removal from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated by `source_unit`.
- unit :
- None
- default :
- nan
- original_dtype :
- float64
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 0x7f8f20edbf70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed83c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edbc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed82d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed9130>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edab70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed9f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edba20>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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
- obj_type :
- parameters
- references :
- {'balance_demand'}
- coords_in_name :
- False
- title :
- Required sink use.
- description :
- Required amount of carrier removal from the system (e.g., electricity demand, transport distance). Unit dictated by `sink_unit`.
- unit :
- None
- default :
- nan
- original_dtype :
- float64
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]...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- bool
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ece3a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef8280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef8780>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef9270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef83c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef9220>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed9a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048b40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048a00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048e60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048e10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048d20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048500>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20049450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2004ab70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2004abc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2004ac10>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070eb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070f00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070ff0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071040>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070dc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200710e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070a50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071130>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200711d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200712c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071310>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200713b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071450>]]], dtype=object)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'cost_investment_annualised', 'flow_in_max', 'source_max', 'flow_out_max', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20049ea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048f00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edaf30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb8e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edbd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed94a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200714f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071720>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071ae0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071b80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071bd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071c20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071d10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071d60>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200720d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072120>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200721c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072210>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200722b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071fe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072300>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200723a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200723f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200724e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072530>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200725d0>], dtype=object)
- timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- obj_type :
- parameters
- references :
- {'cost_operation_variable', 'min_cost_optimisation', 'cost_investment_annualised', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200715e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072cb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072d50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072da0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072df0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072e40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072e90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200730c0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200734d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073570>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200735c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200736b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200737a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200737f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073890>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200738e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073930>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073980>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200739d0>], dtype=object)
- cap_method()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Capacity method switch.
- description :
- One of 'continuous' (LP model) or 'integer' (integer/binary unit capacity).
- unit :
- None
- default :
- continuous
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- integer_dispatch()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Integer dispatch switch.
- description :
- When true, will limit per-timestep out/inflows relative to the number of units of a technology that are in operation. Requires `cap_method=integer`.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- include_storage()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Storage method switch.
- description :
- When true, math will be triggered to allow discontinuous carrier inflow and outflows across timesteps.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- force_async_flow()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Force asynchronous out/inflow.
- description :
- If True, non-zero `flow_out` and `flow_in` cannot both occur in the same timestep.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum flow capacity per storage capacity
- description :
- ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum flow capacity per storage capacity
- description :
- ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a maximum. If `cap_method=integer`, this will be scaled by the number of integer units of a technology purchased.
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum rated flow capacity.
- description :
- This acts as lower limit (lower bound) for flow_cap. If `cap_method` = integer, this will be scaled by the number of integer units of a technology purchased. !!! note If `cap_method` = continuous (which is set by default), then setting `flow_cap_min` to any value greater than 0 forces the model to always respect that limit, which in turn forces investment into the technology. Use this to enforce given investment plans, or to account for existing technologies that cannot be decommissioned. An example: If `cap_method` = continuous and `flow_cap_min` = 100, then flow_cap has to be at least 100. This means that going to 0 is not possible, unless you switch to `cap_method` = integer (see [cap_method][]).
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a minimum. NOTE: this will _force_ the sum of `flow_cap` to a minimum value unless `cap_method` is set to `integer`.
- unit :
- power.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_out_min_relative()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum outflow
- description :
- Set to a value between 0 and 1 to force minimum `flow_out` as a fraction of the technology rated capacity. If non-zero and `cap_method` is `continuous`, this will force the technology to operate above its minimum value at every timestep.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Flow capacity per purchased unit
- description :
- Set the capacity of each integer unit of a technology purchased, if `cap_method` is `integer`.
- unit :
- $\frac{\text{power}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_in_eff()float64nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Inflow efficiency
- description :
- Conversion efficiency from `source`/`flow_in` (tech dependent) into the technology. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_ramping()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Ramping rate
- description :
- limit maximum outflow / inflow / outflow - inflow (technology base class dependent) to a fraction of maximum capacity, which increases by that fraction at each timestep.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- export_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum allowed carrier export
- description :
- If `carrier_export` is defined, limit the allowed export of produced carrier for a technology.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- area_use_min()float64nan
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- title :
- Minimum usable area.
- description :
- Limits the lower bound of the `area_use` decision variable to this value.
- unit :
- $\text{area}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum storage capacity.
- description :
- Limit upper bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum storage capacity.
- description :
- Limit lower bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage capacity per purchased unit.
- description :
- Set the storage capacity of each integer unit of a technology purchased.
- unit :
- $\frac{\text{energy}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_discharge_depth()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage depth of discharge.
- description :
- Defines the minimum level of storage state of charge, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_initial()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Initial storage level.
- description :
- Set stored flow in device at the first timestep, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_loss()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage loss rate
- description :
- Rate of storage loss per hour, used to calculate lost stored flow as `(1 - storage_loss)^hours_per_timestep`.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cyclic_storage()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cyclic storage switch.
- description :
- If true, link storage levels in the last model timestep with the first model timestep. `inter_cluster_storage` custom math must be included if using time clustering and setting this to `true`. This must be set to `false` if using `operate` mode.
- unit :
- boolean.
- default :
- True
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum installed integer units of a technology.
- description :
- sets the lower bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum installed integer units of a technology.
- description :
- sets the upper bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum number of purchased units
- description :
- Limits the lower bound of units purchased if `cap_method` is `integer`.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum number of purchased units.
- description :
- Limits the upper bound of units purchased if `cap_method` is `integer`. If set to `1`, will effectively set the `purchased_units` to a binary decision variable.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_unit()float64nan
- obj_type :
- parameters
- references :
- {'balance_demand', 'area_use'}
- coords_in_name :
- False
- title :
- Sink unit
- description :
- Sets the unit of `Sink` to either `absolute` (unit: `energy`), `per_area` (unit: `energy/area`), or `per_cap` (unit: `energy/power`). `per_area` uses the `area_use` decision variable to scale the sink while `per_cap` uses the `flow_cap` decision variable.
- unit :
- None
- default :
- absolute
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_use_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum bound on sink.
- description :
- Minimum sink use to remove a carrier from the system (e.g., electricity demand, transport distance). Unit dictated by `sink_unit`.
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_use_max()float64nan
- obj_type :
- parameters
- references :
- {'balance_demand'}
- coords_in_name :
- False
- title :
- Maximum bound on sink.
- description :
- Maximum sink use to remove a carrier from the system (e.g., electricity demand, transport distance). Unit dictated by `sink_unit`.
- unit :
- None
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_cap_equals_flow_cap()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Source capacity equals flow capacity.
- description :
- If true, the decision variables `source_cap` and `flow_cap` are forced to equal one another.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_eff()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage'}
- coords_in_name :
- False
- title :
- Source inflow efficiency
- description :
- Conversion efficiency from the technology from `source`. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_use_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum bound on source.
- description :
- Minimum source use to add a carrier from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated by `source_unit`.
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_cap_max()float64nan
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- title :
- Maximum installed source consumption capacity.
- description :
- Upper limit on `source_cap` decision variable.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum installed source consumption capacity
- description :
- Lower limit on `source_cap` decision variable.
- unit :
- power.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- one_way()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- One way transmission.
- description :
- Forces a transmission technology to only move flow in one direction on the link, i.e. from `from` to `to`.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_in_eff_per_distance()float64nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Inflow (i.e., export from node) efficiency per distance of transmission links.
- description :
- Total link efficiency will be calculated as $\text{flow\_in\_eff}\times{}\text{flow\_in\_eff\_per\_distance}^\text{distance}$. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_purchase_per_distance()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Purchase cost per unit distance for transmission techs.
- description :
- Cost applied if the binary variable `purchased` is 1 or per unit of the integer variable `units`. Requires the parameter `cap_method` to be `integer`.
- unit :
- $(\text{purchased\_units}\times\text{distance})^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_om_annual_investment_fraction()float64nan
- obj_type :
- parameters
- references :
- {'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Fractional annual O&M costs.
- description :
- Add a fraction of the sum of all investment costs except `cost_om_annual` as an additional cost, to represent fixed annual O&M costs. Warning: the sum of all investment costs includes not just those associated with `flow_cap` but also others like those associated with `area_use`!
- unit :
- fraction / total investment.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_purchase()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Purchase cost.
- description :
- Cost applied to the variable `purchased_units`. Requires the parameter `cap_method` to be `integer`.
- unit :
- $\text{purchased\_unit}^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_area_use()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cost of area use.
- description :
- Cost per unit `area_use`.
- unit :
- $\text{area}^{-1}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_source_cap()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cost of source flow capacity.
- description :
- Cost per unit `source_cap`.
- unit :
- $\text{power}^{-1}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_storage_cap()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cost of storage capacity.
- description :
- Cost per unit `storage_cap`, i.e., the maximum available capacity of the storage technology's "reservoir".
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_depreciation_rate()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- Depreciation rate.
- description :
- Applied to "annualise" investment costs so they are comparable to variable costs. If not provided, this will be calculated using technology `lifetime` and `cost_interest_rate`.
- unit :
- fraction.
- default :
- 1
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- variables
- references :
- {'flow_in_max', 'area_use_per_flow_capacity', 'cost_investment_flow_cap', 'symmetric_transmission', 'flow_out_max', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Technology flow (a.k.a. nominal) capacity
- description :
- A technology's flow capacity, also known as its nominal or nameplate capacity.
- default :
- 0
- unit :
- power
- yaml_snippet :
- foreach: - nodes - techs - carriers bounds: min: 0 max: flow_cap_max
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c91d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200ca0d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cb350>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7f8f200c8b50>], ... [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cbe50>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c92d0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c86d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c9ad0>], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cbf50>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c8d50>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cac50>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cb5d0>, 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
- title :
- Link flow capacity
- description :
- A transmission technology's flow capacity, also known as its nominal or nameplate capacity.
- default :
- 0
- unit :
- power
- yaml_snippet :
- foreach: - techs where: base_tech=transmission bounds: min: 0 max: .inf
array([<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c85d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cbb50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200cb7d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c96d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c98d0>, 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 :
- {'cost_operation_variable', 'link_chp_outputs', 'export_balance', 'system_balance', 'flow_out_inc_eff', 'flow_out_max'}
- coords_in_name :
- False
- title :
- Carrier outflow
- 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.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_out bounds: min: 0 max: .inf
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20094650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200c8c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f201a9dd0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20350050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203500d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20350150>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203501d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20350250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203502d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20351850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203518d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20351950>]], ... ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344cd0>], [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 0x7f8f20344d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344e50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203463d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20346450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203464d0>], [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 :
- {'cost_operation_variable', 'system_balance', 'flow_in_max', 'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Carrier inflow
- 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.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_in bounds: min: 0 max: .inf
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203472d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20347150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200967d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203a8850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203a88d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203a8950>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203a89d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203a8a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203a8ad0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203aa050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203aa0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203aa150>]], ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dbdb50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dbdbd0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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_operation_variable', 'system_balance', 'export_balance'}
- coords_in_name :
- False
- title :
- Carrier export
- description :
- The flow of a carrier exported outside the system boundaries by a technology per timestep.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_export bounds: min: 0 max: .inf
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 0x7f8f20d32950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d329d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d32a50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd0050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd00d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd0150>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 :
- {'area_use_capacity_per_loc', 'area_use_per_flow_capacity', 'source_availability_supply'}
- coords_in_name :
- False
- title :
- Area utilisation
- description :
- The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.
- default :
- 0
- unit :
- area
- yaml_snippet :
- 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: 0 max: area_use_max
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 0x7f8f20dd0850>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd2ad0>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd22d0>, nan, nan]], dtype=object)
- source_use(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'cost_operation_variable', 'balance_supply_no_storage', 'source_max', 'source_availability_supply'}
- coords_in_name :
- False
- title :
- Source flow use
- description :
- The carrier flow consumed from outside the system boundaries by a `supply` technology.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - techs - timesteps where: base_tech=supply bounds: min: 0 max: .inf
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 0x7f8f20dd2f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd09d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd3ad0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d44ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d44f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d44fd0>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d45050>, ... [[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 0x7f8f20deafd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20deb050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20deb0d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d286d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d28750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d287d0>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d28850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d288d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d28950>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d29ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d29f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d29fd0>], [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
- title :
- Source flow capacity
- description :
- The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.
- default :
- 0
- unit :
- power
- yaml_snippet :
- foreach: - nodes - techs where: base_tech=supply bounds: min: 0 max: source_cap_max
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 0x7f8f200ef750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200eed50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200ec2d0>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200ed5d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200ef450>, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200ef4d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd0ed0>, nan]], dtype=object)
- unmet_demand(nodes, carriers, timesteps)objectnan ... variables[unmet_demand][...
- obj_type :
- variables
- references :
- {'system_balance', 'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Unmet demand (load shedding)
- 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.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - carriers - timesteps where: config.ensure_feasibility=True bounds: min: 0 max: .inf
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 0x7f8f20d2abd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b4d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2ac50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2ab50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2ba50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2b5d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d2a850>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1dbd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1dc50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1dcd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1dd50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1ddd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1de50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1ded0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1df50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1dfd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20d1e4d0>]]], dtype=object)
- unused_supply(nodes, carriers, timesteps)objectnan ... variables[unused_supply]...
- obj_type :
- variables
- references :
- {'system_balance', 'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Unused supply (curtailment)
- 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).
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - carriers - timesteps where: config.ensure_feasibility=True bounds: min: -.inf max: 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], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f201ab1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200eddd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20ee12d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f201abd50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200ec3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20095dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f200947d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20095950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20094450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20dd01d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20095fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20095d50>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20486fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20487050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f204870d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20487150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f204871d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20487250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f204872d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20487350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f204873d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20487450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f204874d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20487550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f204875d0>]]], 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
- title :
- Carrier outflow including losses
- description :
- Outflows after taking efficiency losses into account.
- default :
- 0
- yaml_snippet :
- 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 ** distance\n)" - where: NOT base_tech=transmission expression: flow_out / (flow_out_eff * flow_out_parasitic_eff)
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ea6a70>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20e43610>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20e41b10>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041cc70>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041ccd0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041cd30>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041cd90>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041cdf0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041ce50>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041de70>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041ded0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041df30>]], ... ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041b4f0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041b550>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f2041b5b0>], [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 0x7f8f20344d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20344e50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203463d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f20346450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7f8f203464d0>], [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_demand', 'balance_transmission', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Carrier inflow including losses
- description :
- Inflows after taking efficiency losses into account.
- default :
- 0
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: flow_in equations: - where: base_tech=transmission expression: flow_in * flow_in_eff * flow_in_eff_per_distance ** distance - where: NOT base_tech=transmission expression: flow_in * flow_in_eff
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20e417e0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20e42e90>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20e43190>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec78b0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec7100>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec53c0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec7640>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec4eb0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec45b0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec7580>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec4a90>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20ec7730>]], ... <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20eb8220>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20eba980>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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_operation_variable(nodes, techs, costs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'cost'}
- coords_in_name :
- False
- title :
- Variable operating costs
- description :
- The operating costs per timestep of a technology.
- default :
- 0
- unit :
- cost_per_time
- yaml_snippet :
- 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: any(carrier_export, over=carriers) AND any(cost_export, over=carriers) expression: sum(cost_export * flow_export, over=carriers) - where: NOT (any(carrier_export, over=carriers) AND any(cost_export, over=carriers)) 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 * flow_in, over=carriers) cost_flow_out: - expression: sum(cost_flow_out * flow_out, over=carriers)
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.expr.numeric_expr.ProductExpression object at 0x7f8f20d72c50>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7f8f20d73880>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7f8f20ed3b20>, ..., <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7f8f20010cd0>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7f8f20010280>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7f8f20011780>]], [[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
- title :
- Flow capacity investment costs
- description :
- The investment costs associated with the nominal/rated capacity of a technology.
- default :
- 0
- yaml_snippet :
- 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 * distance) * 0.5 - where: NOT base_tech=transmission expression: cost_flow_cap
array([[[[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7b2e0>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7bf40>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d783a0>]], [[nan], [nan], [nan]], [[nan], [nan], [nan]], ... [[nan], [nan], [nan]], [[nan], [nan], [nan]], [[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7ae30>], [nan], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d79ba0>], [nan]], [[nan], [nan], [nan]]]], dtype=object)
- cost_investment(nodes, techs, costs)objectparameters[cost_flow_cap_per_dis...
- obj_type :
- global_expressions
- references :
- {'cost_investment_annualised', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Total investment costs
- description :
- The installation costs of a technology, including those linked to the nameplate capacity, land use, storage size, and binary/integer unit purchase.
- default :
- 0
- unit :
- cost
- yaml_snippet :
- 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: sum(default_if_empty(cost_investment_flow_cap, 0), over=carriers) + default_if_empty(cost_investment_storage_cap, 0) + default_if_empty(cost_investment_source_cap, 0) + default_if_empty(cost_investment_area_use, 0) + default_if_empty(cost_investment_purchase, 0)
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7b2e0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7bf40>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d783a0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d789a0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d78d60>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7b2b0>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d79900>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7b0a0>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d79e70>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d79510>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7a3b0>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7a440>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7ae00>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d7ae30>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f20d79ba0>], [nan]]], dtype=object)
- cost_investment_annualised(nodes, techs, costs)object(parameters[timestep_resolution]...
- obj_type :
- global_expressions
- references :
- {'cost'}
- coords_in_name :
- False
- title :
- Equivalent annual investment costs
- description :
- An annuity factor has been applied to scale lifetime investment costs to annual values that can be directly compared to operation costs. If the modeling period is not equal to one full year, this will be scaled accordingly.
- default :
- 0
- unit :
- cost
- yaml_snippet :
- foreach: - nodes - techs - costs where: cost_investment equations: - expression: $annualisation_weight * $depreciation_rate * cost_investment 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)
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f202a2350>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f202a33a0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50370>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50c40>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50e50>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50ee0>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50e20>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50fa0>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef51090>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef510f0>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef51150>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef511b0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef51210>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef51270>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef512d0>], [nan]]], dtype=object)
- cost_operation_fixed(nodes, techs, costs)objectnan nan nan ... nan nan
- obj_type :
- global_expressions
- references :
- {'cost'}
- coords_in_name :
- False
- title :
- Total fixed operation costs
- description :
- The fixed, annual operation costs of a technology, which are calculated relative to investment costs. If the modeling period is not equal to one full year, this will be scaled accordingly.
- default :
- 0
- unit :
- cost
- yaml_snippet :
- foreach: - nodes - techs - costs where: cost_investment AND (cost_om_annual OR cost_om_annual_investment_fraction) equations: - expression: "$annualisation_weight * (\n sum(cost_om_annual * flow_cap, over=carriers) +\n cost_investment * cost_om_annual_investment_fraction\n)" sub_expressions: annualisation_weight: - expression: sum(timestep_resolution * timestep_weights, over=timesteps) / 8760
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], [<pyomo.core.expr.numeric_expr.ProductExpression object at 0x7f8f20232ec0>], [nan], [nan]]], dtype=object)
- cost(nodes, techs, costs)object(parameters[timestep_resolution]...
- obj_type :
- global_expressions
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Total costs
- description :
- The total annualised costs of a technology, including installation and operation costs.
- default :
- 0
- unit :
- cost
- yaml_snippet :
- foreach: - nodes - techs - costs where: cost_investment_annualised OR cost_operation_variable OR cost_operation_fixed equations: - expression: default_if_empty(cost_investment_annualised, 0) + $cost_operation_sum + default_if_empty(cost_operation_fixed, 0) sub_expressions: cost_operation_sum: - where: cost_operation_variable expression: sum(cost_operation_variable, over=timesteps) - where: NOT cost_operation_variable expression: '0' active: true
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f202a2350>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f202a33a0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50370>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50c40>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50e50>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef50ee0>], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b59c0>], ... [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b4130>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b5b10>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b42e0>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef51150>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7f8f1ef511b0>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b5720>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b4280>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7f8f204b5780>], [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.
- yaml_snippet :
- foreach: - nodes - techs - carriers where: area_use AND area_use_per_flow_cap equations: - expression: area_use == flow_cap * area_use_per_flow_cap
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 0x7f8f20dc9cc0>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x7f8f20dc9320>, 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.
- yaml_snippet :
- foreach: - nodes where: area_use AND available_area equations: - expression: sum(area_use, over=techs) <= available_area
array([nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032d160>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200aff50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200ae970>], 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.
- yaml_snippet :
- 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)
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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_out AND NOT operating_units equations: - expression: flow_out <= flow_cap * timestep_resolution * flow_out_parasitic_eff
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dcacf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dc81a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b5b0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efccc20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc520>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efccbb0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc2f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc750>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc600>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efce3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efce430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efce4a0>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a200>], [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 0x7f8f2017a270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a350>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017b620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017b690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017b700>], [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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_in AND NOT operating_units equations: - expression: flow_in <= flow_cap * timestep_resolution
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e7ae40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e7add0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e039a0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef99cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9bd90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9be70>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef99470>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b460>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200aef90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200af1c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200aec10>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d147c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d14830>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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.
- yaml_snippet :
- foreach: - nodes - techs - timesteps where: source_cap equations: - expression: source_use <= timestep_resolution * source_cap
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 0x7f8f2032da90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6f460>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6f000>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4de0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4ec0>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4f30>, ... [[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 0x7f8f20d8e3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8e430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8e4a0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f7e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f850>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f8c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f9a0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfcd00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfcd70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfcde0>], [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.
- yaml_snippet :
- 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'
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 0x7f8f201e40c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfeb30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfd710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032c6e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032c4b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032d320>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f4d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f7e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032fa80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032e510>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e4a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e5f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e6d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e7b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e890>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e900>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e970>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e9e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9ea50>]]], 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.
- yaml_snippet :
- 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'
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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: base_tech=supply AND NOT include_storage=True equations: - expression: flow_out_inc_eff == source_use * source_eff
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 0x7f8f1eec47c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec4830>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec48a0>], [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 0x7f8f1eec4910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec4980>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec49f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec5cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec5d30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec5da0>], [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.
- yaml_snippet :
- 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'
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 0x7f8f2032c8a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032db00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032cd70>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef98910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dc9550>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7c40>], [nan, nan, nan, ..., nan, nan, nan], [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 0x7f8f1eec6740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7f50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec75b0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20452820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451710>], [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.
- yaml_snippet :
- 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])
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef25550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef26350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef248a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef262e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e6d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6f2a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e7acf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9f850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9faf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9eac0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9fa80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9ef90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9fee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9f380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f204511d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451630>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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.
- yaml_snippet :
- foreach: - nodes - techs where: base_tech=transmission equations: - expression: sum(flow_cap, over=carriers) == link_flow_cap
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dff8c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c03d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c04b0>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0520>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c02f0>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0590>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0600>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0670>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c06e0>, 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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: flow_export equations: - expression: flow_out >= flow_export
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 0x7f8f202f4ad0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f4b40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f4bb0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f5e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f5ef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f5f60>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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
- yaml_snippet :
- foreach: - nodes - techs - timesteps where: '[chp] in techs' equations: - expression: flow_out[carriers=electricity] * heat_to_power_ratio == flow_out[carriers=heat]
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`.
- yaml_snippet :
- 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
array(<pyomo.core.kernel.objective.objective object at 0x7f8f20456810>, 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> Size: 89kB Dimensions: (costs: 1, techs: 12, carriers: 3, nodes: 4, timesteps: 48) Coordinates: * costs (costs) object 8B 'monetary' * techs (techs) object 96B 'N1_to_X2' ... 'su... * carriers (carriers) object 24B 'electricity' .... * nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 384B 2005-... Data variables: (12/78) cost_interest_rate (costs) object 8B parameters[cost_int... bigM object 8B parameters[bigM][0] objective_cost_weights (costs) object 8B parameters[objectiv... base_tech (techs) object 96B parameters[base_te... carrier_export (techs, carriers) object 288B nan ...... carrier_in (nodes, techs, carriers) object 1kB n... ... ... cost_om_annual_investment_fraction float64 8B nan cost_purchase float64 8B nan cost_area_use float64 8B nan cost_source_cap float64 8B nan cost_storage_cap float64 8B nan cost_depreciation_rate float64 8B nan
- 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]')
- cost_interest_rate(costs)objectparameters[cost_interest_rate][0]
- obj_type :
- parameters
- references :
- {'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- Interest rate.
- description :
- Used when computing levelized costs and technology depreciation_rate (relative to lifetime).
- unit :
- fraction
- default :
- 0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003dae0>], dtype=object)
- bigM()objectparameters[bigM][0]
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- None
- description :
- BigM is a large value used to define certain optimisation problems. See https://en.wikipedia.org/wiki/Big_M_method for more information. This value should be larger than the largest values that any decision variables can take, but should not be **too** large (i.e., do not set it greater than 3 orders of magnitude above the numeric range of the model). If too large, numerical problems may arise in the optimisation.
- unit :
- None
- default :
- 1000000000.0
- original_dtype :
- float64
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003de00>, dtype=object)
- objective_cost_weights(costs)objectparameters[objective_cost_weight...
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- None
- description :
- Weightings for cost classes to apply in the objective function.
- unit :
- None
- default :
- 1
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003ccd0>], dtype=object)
- base_tech(techs)objectparameters[base_tech][0] ... par...
- obj_type :
- parameters
- references :
- {'cost_operation_variable', 'link_flow_cap', 'balance_demand', 'balance_supply_no_storage', 'balance_transmission', 'flow_in_inc_eff', 'source_use', 'balance_conversion', 'flow_out_inc_eff', 'cost_investment_flow_cap', 'symmetric_transmission', 'source_cap'}
- coords_in_name :
- False
- title :
- Abstract base technology name.
- description :
- Should be the name of one of the abstract base classes, from which some initial parameter defaults will be derived and with which certain base math will be triggered.
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e4e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e5d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e6c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003e8a0>], dtype=object)
- carrier_export(techs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_export'}
- coords_in_name :
- False
- title :
- None
- description :
- Carrier(s) produced by this technology that can be exported out of the system boundaries without having to go to a pre-defined `sink` (i.e., via a `demand` technology). Must be a subset of `carrier_out`.
- unit :
- None
- default :
- nan
- original_dtype :
- float64
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 0x7f8f2003ec10>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003eb20>, nan, nan], [nan, nan, nan], [nan, nan, nan]], dtype=object)
- carrier_in(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_in_max', 'flow_in'}
- coords_in_name :
- False
- title :
- None
- description :
- Carrier(s) consumed by this technology. Only `transmission`, `conversion`, `storage`, and `demand` technologies can define this parameter
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fac0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fbb0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fc50>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7f8f2003fca0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fc00>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003f390>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fa20>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003f0c0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003fd40>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]]], dtype=object)
- carrier_out(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_out_max', 'flow_out'}
- coords_in_name :
- False
- title :
- None
- description :
- Carrier(s) produced by this technology. Only `transmission`, `conversion`, `storage`, and `supply` technologies can define this parameter
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044870>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044910>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044a50>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7f8f20044aa0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044a00>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2003f5c0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044b40>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044500>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044820>, nan], [nan, nan, nan]]], dtype=object)
- color(techs)objectparameters[color][0] ... paramet...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- Color that can be used when plotting results.
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200440f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044eb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044690>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200450e0>], dtype=object)
- cost_flow_cap(nodes, techs, costs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
- title :
- Cost of flow capacity.
- description :
- Cost per unit of the decision variable `flow_cap`.
- unit :
- $\text{power}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20045680>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200459f0>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20045810>, nan]], [[nan, nan, nan]]]], dtype=object)
- cost_flow_out(techs, costs, carriers, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier outflow cost
- description :
- Cost per unit of `flow_in` in each timestep.
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200457c0>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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_cap_max(techs, carriers, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
- title :
- Maximum rated flow capacity.
- description :
- Limits `flow_cap` to a maximum.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047390>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200475c0>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046e40>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047610>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200476b0>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20045b80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046ad0>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200472a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200473e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047570>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047250>, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], dtype=object)
- flow_out_eff(techs, carriers)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
- title :
- Outflow efficiency
- description :
- Conversion efficiency from the technology to `sink`/`flow_out` (tech dependent). Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20044ff0>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046fd0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047480>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046d50>, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], dtype=object)
- heat_to_power_ratio(techs)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'link_chp_outputs'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20046b20>, nan, nan, nan, nan, nan], dtype=object)
- lifetime(techs)objectparameters[lifetime][0] ... para...
- obj_type :
- parameters
- references :
- {'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- Technology lifetime
- description :
- Must be defined if fixed capital costs are defined. A reasonable value for many technologies is around 20-25 years.
- unit :
- years.
- default :
- inf
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20047ca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200600f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200605a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200605f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200606e0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200607d0>], dtype=object)
- name(techs)objectparameters[name][0] ... paramete...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Technology long-name.
- description :
- Long name of technology, which can be used in post-processing (e.g., plotting).
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060870>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060b90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060c80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060d20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060e60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060eb0>], dtype=object)
- area_use_max(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- title :
- Maximum usable area.
- description :
- If set to a finite value, limits the upper bound of the `area_use` decision variable to this value.
- unit :
- $\text{area}$.
- default :
- inf
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060b40>, nan, nan], dtype=object)
- area_use_per_flow_cap(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use_per_flow_capacity', 'area_use'}
- coords_in_name :
- False
- title :
- Area use per flow capacity
- description :
- If set, forces `area_use` to follow `flow_cap` with the given numerical ratio (e.g. setting to 1.5 means that `area_use == 1.5 * flow_cap`).
- unit :
- $\frac{\text{area}}{\text{power}}$.
- default :
- nan
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20060690>, nan, nan], dtype=object)
- flow_out_parasitic_eff(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'flow_out_max'}
- coords_in_name :
- False
- title :
- Plant parasitic efficiency
- description :
- Additional losses as flow gets transferred from the plant to the carrier, e.g. due to plant parasitic consumption. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061040>, nan, nan], dtype=object)
- source_unit(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'source_availability_supply', 'area_use'}
- coords_in_name :
- False
- title :
- Source unit
- description :
- Sets the unit of `Source` to either `absolute` (unit: `energy`), `per_area` (unit: `energy/area`), or `per_cap` (unit: `energy/power`). `per_area` uses the `area_use` decision variable to scale the source while `per_cap` uses the `flow_cap` decision variable.
- unit :
- None
- default :
- absolute
- original_dtype :
- object
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061130>, nan, nan], dtype=object)
- cost_flow_in(techs, costs)objectnan ... parameters[cost_flow_in][2]
- obj_type :
- parameters
- references :
- {'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier inflow cost.
- description :
- Cost per unit of `flow_in` in each timestep.
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
array([[nan], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061ef0>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061810>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200614a0>]], dtype=object)
- source_use_max(techs)objectnan ... parameters[source_use_ma...
- obj_type :
- parameters
- references :
- {'source_availability_supply'}
- coords_in_name :
- False
- title :
- Maximum bound on sink.
- description :
- Maximum sink use to remove a carrier from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated by `source_unit`.
- unit :
- None
- default :
- inf
- original_dtype :
- float64
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061bd0>], dtype=object)
- cost_flow_cap_per_distance(techs, costs)objectparameters[cost_flow_cap_per_dis...
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap'}
- coords_in_name :
- False
- title :
- Cost of flow capacity, per unit distance
- description :
- Cost per unit of the decision variable `flow_cap` and per unit distance of a transmission link. Applied to transmission links only.
- unit :
- $(\text{power}\times\text{distance})^{-1}$
- default :
- 0
- original_dtype :
- float64
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200622b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20061f90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200623a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062df0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062e40>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object)
- distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'cost_investment_flow_cap', 'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Distance spanned by link.
- description :
- Used for `..._per_distance` constraints. If not defined, it will be automatically derived from latitude/longitude of nodes in a link.
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200626c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200625d0>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- techs_inheritance(techs)objectparameters[techs_inheritance][0]...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- object
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200619f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20062850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200629e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063890>, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- flow_out_eff_per_distance(techs)objectparameters[flow_out_eff_per_dist...
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff'}
- coords_in_name :
- False
- title :
- Outflow (i.e., import from node) efficiency per distance of transmission links.
- description :
- Total link efficiency will be calculated as $\text{flow\_out\_eff}\times{}\text{flow\_out\_eff\_per\_distance}^\text{distance}$. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063980>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20063d90>, nan, nan, nan, nan, nan, nan, nan, nan, nan], dtype=object)
- cost_export(nodes, techs, costs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier export cost.
- description :
- Cost per unit of `flow_export` in each timestep. Usually used in the negative sense, as a subsidy.
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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]]]]], dtype=object)
- cost_om_annual(nodes, techs, costs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Annual O&M costs
- description :
- Annual costs applied per unit `flow_cap`. These costs are not subject to being recalculated relative to technology lifetime, only scaled to reflect the fraction of one year that the model represents (e.g., 7 days ~= 0.02 of a year).
- unit :
- $\text{power}^{-1}$.
- default :
- 0
- original_dtype :
- float64
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], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ee5c20>], [nan], [nan]]], dtype=object)
- available_area(nodes)objectnan ... parameters[available_are...
- obj_type :
- parameters
- references :
- {'area_use_capacity_per_loc'}
- coords_in_name :
- False
- title :
- Available area at the given node.
- description :
- Limits the total area that can be occupied by all technologies which have the `area_use` decision variable activated.
- unit :
- $\text{area}$.
- default :
- inf
- original_dtype :
- float64
array([nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20efc0f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20eb1ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20eb2c60>], dtype=object)
- latitude(nodes)objectparameters[latitude][0] ... para...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Latitude (WGS84 / EPSG4326).
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20eb3f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2000f390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed4280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed55e0>], dtype=object)
- longitude(nodes)objectparameters[longitude][0] ... par...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Longitude (WGS84 / EPSG4326).
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2000f4d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ece8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ecf700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ecf430>], dtype=object)
- source_use_equals(techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'source_availability_supply'}
- coords_in_name :
- False
- title :
- Required sink use.
- description :
- Required amount of carrier removal from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated by `source_unit`.
- unit :
- None
- default :
- nan
- original_dtype :
- float64
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 0x7f8f20edbf70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed83c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edbc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed82d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed9130>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edab70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed9f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edba20>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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
- obj_type :
- parameters
- references :
- {'balance_demand'}
- coords_in_name :
- False
- title :
- Required sink use.
- description :
- Required amount of carrier removal from the system (e.g., electricity demand, transport distance). Unit dictated by `sink_unit`.
- unit :
- None
- default :
- nan
- original_dtype :
- float64
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]...
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- bool
array([[[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ece3a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef8280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef8780>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef9270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef83c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ef9220>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed9a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048b40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048a00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048e60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048e10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048dc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048d20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048500>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20049450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2004ab70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2004abc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f2004ac10>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070eb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070f00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070ff0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071040>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070dc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200710e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070a50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071130>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20070050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200711d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200712c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071310>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200713b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071450>]]], dtype=object)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'cost_investment_annualised', 'flow_in_max', 'source_max', 'flow_out_max', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20049ea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20048f00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edaf30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edb8e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20edbd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed94a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20ed8e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200714f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071720>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071ae0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071b80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071bd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071c20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071d10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071d60>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200720d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072120>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200721c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072210>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200722b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071fe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072300>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20071270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200723a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200723f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200724e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072530>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200725d0>], dtype=object)
- timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- obj_type :
- parameters
- references :
- {'cost_operation_variable', 'min_cost_optimisation', 'cost_investment_annualised', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200715e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072cb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072d50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072da0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072df0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072e40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072e90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20072f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200730c0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200734d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073570>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200735c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200736b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200737a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200737f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073890>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200738e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073930>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f20073980>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7f8f200739d0>], dtype=object)
- cap_method()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Capacity method switch.
- description :
- One of 'continuous' (LP model) or 'integer' (integer/binary unit capacity).
- unit :
- None
- default :
- continuous
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- integer_dispatch()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Integer dispatch switch.
- description :
- When true, will limit per-timestep out/inflows relative to the number of units of a technology that are in operation. Requires `cap_method=integer`.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- include_storage()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Storage method switch.
- description :
- When true, math will be triggered to allow discontinuous carrier inflow and outflows across timesteps.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- force_async_flow()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Force asynchronous out/inflow.
- description :
- If True, non-zero `flow_out` and `flow_in` cannot both occur in the same timestep.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum flow capacity per storage capacity
- description :
- ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum flow capacity per storage capacity
- description :
- ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a maximum. If `cap_method=integer`, this will be scaled by the number of integer units of a technology purchased.
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum rated flow capacity.
- description :
- This acts as lower limit (lower bound) for flow_cap. If `cap_method` = integer, this will be scaled by the number of integer units of a technology purchased. !!! note If `cap_method` = continuous (which is set by default), then setting `flow_cap_min` to any value greater than 0 forces the model to always respect that limit, which in turn forces investment into the technology. Use this to enforce given investment plans, or to account for existing technologies that cannot be decommissioned. An example: If `cap_method` = continuous and `flow_cap_min` = 100, then flow_cap has to be at least 100. This means that going to 0 is not possible, unless you switch to `cap_method` = integer (see [cap_method][]).
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a minimum. NOTE: this will _force_ the sum of `flow_cap` to a minimum value unless `cap_method` is set to `integer`.
- unit :
- power.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_out_min_relative()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum outflow
- description :
- Set to a value between 0 and 1 to force minimum `flow_out` as a fraction of the technology rated capacity. If non-zero and `cap_method` is `continuous`, this will force the technology to operate above its minimum value at every timestep.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Flow capacity per purchased unit
- description :
- Set the capacity of each integer unit of a technology purchased, if `cap_method` is `integer`.
- unit :
- $\frac{\text{power}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_in_eff()float64nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Inflow efficiency
- description :
- Conversion efficiency from `source`/`flow_in` (tech dependent) into the technology. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_ramping()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Ramping rate
- description :
- limit maximum outflow / inflow / outflow - inflow (technology base class dependent) to a fraction of maximum capacity, which increases by that fraction at each timestep.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- export_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum allowed carrier export
- description :
- If `carrier_export` is defined, limit the allowed export of produced carrier for a technology.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- area_use_min()float64nan
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- title :
- Minimum usable area.
- description :
- Limits the lower bound of the `area_use` decision variable to this value.
- unit :
- $\text{area}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum storage capacity.
- description :
- Limit upper bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum storage capacity.
- description :
- Limit lower bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage capacity per purchased unit.
- description :
- Set the storage capacity of each integer unit of a technology purchased.
- unit :
- $\frac{\text{energy}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_discharge_depth()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage depth of discharge.
- description :
- Defines the minimum level of storage state of charge, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_initial()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Initial storage level.
- description :
- Set stored flow in device at the first timestep, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_loss()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage loss rate
- description :
- Rate of storage loss per hour, used to calculate lost stored flow as `(1 - storage_loss)^hours_per_timestep`.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cyclic_storage()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cyclic storage switch.
- description :
- If true, link storage levels in the last model timestep with the first model timestep. `inter_cluster_storage` custom math must be included if using time clustering and setting this to `true`. This must be set to `false` if using `operate` mode.
- unit :
- boolean.
- default :
- True
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum installed integer units of a technology.
- description :
- sets the lower bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum installed integer units of a technology.
- description :
- sets the upper bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum number of purchased units
- description :
- Limits the lower bound of units purchased if `cap_method` is `integer`.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum number of purchased units.
- description :
- Limits the upper bound of units purchased if `cap_method` is `integer`. If set to `1`, will effectively set the `purchased_units` to a binary decision variable.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_unit()float64nan
- obj_type :
- parameters
- references :
- {'balance_demand', 'area_use'}
- coords_in_name :
- False
- title :
- Sink unit
- description :
- Sets the unit of `Sink` to either `absolute` (unit: `energy`), `per_area` (unit: `energy/area`), or `per_cap` (unit: `energy/power`). `per_area` uses the `area_use` decision variable to scale the sink while `per_cap` uses the `flow_cap` decision variable.
- unit :
- None
- default :
- absolute
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_use_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum bound on sink.
- description :
- Minimum sink use to remove a carrier from the system (e.g., electricity demand, transport distance). Unit dictated by `sink_unit`.
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_use_max()float64nan
- obj_type :
- parameters
- references :
- {'balance_demand'}
- coords_in_name :
- False
- title :
- Maximum bound on sink.
- description :
- Maximum sink use to remove a carrier from the system (e.g., electricity demand, transport distance). Unit dictated by `sink_unit`.
- unit :
- None
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_cap_equals_flow_cap()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Source capacity equals flow capacity.
- description :
- If true, the decision variables `source_cap` and `flow_cap` are forced to equal one another.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_eff()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage'}
- coords_in_name :
- False
- title :
- Source inflow efficiency
- description :
- Conversion efficiency from the technology from `source`. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_use_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum bound on source.
- description :
- Minimum source use to add a carrier from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated by `source_unit`.
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_cap_max()float64nan
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- title :
- Maximum installed source consumption capacity.
- description :
- Upper limit on `source_cap` decision variable.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- source_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum installed source consumption capacity
- description :
- Lower limit on `source_cap` decision variable.
- unit :
- power.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- one_way()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- One way transmission.
- description :
- Forces a transmission technology to only move flow in one direction on the link, i.e. from `from` to `to`.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_in_eff_per_distance()float64nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Inflow (i.e., export from node) efficiency per distance of transmission links.
- description :
- Total link efficiency will be calculated as $\text{flow\_in\_eff}\times{}\text{flow\_in\_eff\_per\_distance}^\text{distance}$. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_purchase_per_distance()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Purchase cost per unit distance for transmission techs.
- description :
- Cost applied if the binary variable `purchased` is 1 or per unit of the integer variable `units`. Requires the parameter `cap_method` to be `integer`.
- unit :
- $(\text{purchased\_units}\times\text{distance})^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_om_annual_investment_fraction()float64nan
- obj_type :
- parameters
- references :
- {'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Fractional annual O&M costs.
- description :
- Add a fraction of the sum of all investment costs except `cost_om_annual` as an additional cost, to represent fixed annual O&M costs. Warning: the sum of all investment costs includes not just those associated with `flow_cap` but also others like those associated with `area_use`!
- unit :
- fraction / total investment.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_purchase()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Purchase cost.
- description :
- Cost applied to the variable `purchased_units`. Requires the parameter `cap_method` to be `integer`.
- unit :
- $\text{purchased\_unit}^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_area_use()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cost of area use.
- description :
- Cost per unit `area_use`.
- unit :
- $\text{area}^{-1}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_source_cap()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cost of source flow capacity.
- description :
- Cost per unit `source_cap`.
- unit :
- $\text{power}^{-1}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_storage_cap()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cost of storage capacity.
- description :
- Cost per unit `storage_cap`, i.e., the maximum available capacity of the storage technology's "reservoir".
- unit :
- $\text{energy}^{-1}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cost_depreciation_rate()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- Depreciation rate.
- description :
- Applied to "annualise" investment costs so they are comparable to variable costs. If not provided, this will be calculated using technology `lifetime` and `cost_interest_rate`.
- unit :
- fraction.
- default :
- 1
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- 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> Size: 362kB Dimensions: (nodes: 4, techs: 12, carriers: 3, timesteps: 48) Coordinates: * techs (techs) object 96B 'N1_to_X2' ... 'supply_gri... * carriers (carriers) object 24B 'electricity' 'gas' 'heat' * nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 384B 2005-07-01 ..... Data variables: (12/14) area_use_per_flow_capacity (nodes, techs, carriers) object 1kB nan ... nan area_use_capacity_per_loc (nodes) object 32B nan ... constraints[area_u... balance_conversion (nodes, techs, timesteps) object 18kB nan ...... flow_out_max (nodes, techs, carriers, timesteps) object 55kB ... flow_in_max (nodes, techs, carriers, timesteps) object 55kB ... source_max (nodes, techs, timesteps) object 18kB nan ...... ... ... balance_supply_no_storage (nodes, techs, carriers, timesteps) object 55kB ... source_availability_supply (nodes, techs, timesteps) object 18kB nan ...... balance_transmission (techs, timesteps) object 5kB constraints[bal... symmetric_transmission (nodes, techs) object 384B constraints[symmet... export_balance (nodes, techs, carriers, timesteps) object 55kB ... link_chp_outputs (nodes, techs, timesteps) object 18kB 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.
- yaml_snippet :
- foreach: - nodes - techs - carriers where: area_use AND area_use_per_flow_cap equations: - expression: area_use == flow_cap * area_use_per_flow_cap
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 0x7f8f20dc9cc0>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x7f8f20dc9320>, 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.
- yaml_snippet :
- foreach: - nodes where: area_use AND available_area equations: - expression: sum(area_use, over=techs) <= available_area
array([nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032d160>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200aff50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200ae970>], 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.
- yaml_snippet :
- 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)
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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_out AND NOT operating_units equations: - expression: flow_out <= flow_cap * timestep_resolution * flow_out_parasitic_eff
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dcacf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dc81a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b5b0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efccc20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc520>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efccbb0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc2f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc750>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efcc600>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efce3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efce430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1efce4a0>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a200>], [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 0x7f8f2017a270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017a350>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017b620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017b690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2017b700>], [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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_in AND NOT operating_units equations: - expression: flow_in <= flow_cap * timestep_resolution
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e7ae40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e7add0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e039a0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef99cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9bd90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9be70>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef99470>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b460>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200aef90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200af1c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f200aec10>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d147c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d14830>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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.
- yaml_snippet :
- foreach: - nodes - techs - timesteps where: source_cap equations: - expression: source_use <= timestep_resolution * source_cap
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 0x7f8f2032da90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6f460>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6f000>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4de0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4ec0>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f201e4f30>, ... [[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 0x7f8f20d8e3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8e430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8e4a0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f7e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f850>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f8c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d8f9a0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfcd00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfcd70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfcde0>], [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.
- yaml_snippet :
- 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'
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 0x7f8f201e40c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfeb30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dfd710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032c6e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032c4b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032d320>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f4d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032f7e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032fa80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032e510>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e3c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e4a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e5f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e6d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e7b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e890>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e900>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e970>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9e9e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9ea50>]]], 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.
- yaml_snippet :
- 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'
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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: base_tech=supply AND NOT include_storage=True equations: - expression: flow_out_inc_eff == source_use * source_eff
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 0x7f8f1eec47c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec4830>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec48a0>], [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 0x7f8f1eec4910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec4980>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec49f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec5cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec5d30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec5da0>], [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.
- yaml_snippet :
- 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'
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 0x7f8f2032c8a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032db00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f2032cd70>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9b770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef98910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dc9550>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7c40>], [nan, nan, nan, ..., nan, nan, nan], [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 0x7f8f1eec6740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec7f50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1eec75b0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20452820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451710>], [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.
- yaml_snippet :
- 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])
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef25550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef26350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef248a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef262e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e6d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6f2a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20d6e430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20e7acf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9f850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9faf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9eac0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9fa80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9ef90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9fee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f1ef9f380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f204511d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20451630>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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.
- yaml_snippet :
- foreach: - nodes - techs where: base_tech=transmission equations: - expression: sum(flow_cap, over=carriers) == link_flow_cap
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f20dff8c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c03d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c04b0>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0520>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c02f0>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0590>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0600>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c0670>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202c06e0>, 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.
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: flow_export equations: - expression: flow_out >= flow_export
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 0x7f8f202f4ad0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f4b40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f4bb0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f5e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f5ef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7f8f202f5f60>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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
- yaml_snippet :
- foreach: - nodes - techs - timesteps where: '[chp] in techs' equations: - expression: flow_out[carriers=electricity] * heat_to_power_ratio == flow_out[carriers=heat]
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 | NaN | variables[area_use][0] | 500.0 |
X2 | NaN | variables[area_use][1] | 1300.0 |
X3 | NaN | 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 | NaN | variables[area_use][X1, pv] | 500.0 |
X2 | NaN | variables[area_use][X2, pv] | 1300.0 |
X3 | NaN | 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 X1 500.0 X2 500.0 X3 100.0 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-12-16 11:50:59] INFO Optimisation model | starting model in plan mode.
[2024-12-16 11:51:00] INFO Backend: solver finished running. Time since start of solving optimisation problem: 0:00:00.392772
[2024-12-16 11:51:00] INFO Postprocessing: zero threshold of 1e-10 not required
[2024-12-16 11:51:00] INFO Postprocessing: ended. Time since start of solving optimisation problem: 0:00:00.513629
[2024-12-16 11:51:00] INFO Backend: model solve completed. Time since start of solving optimisation problem: 0:00:00.515474
The results are stored in m._model_data
and can be accessed by the public property m.results
m.results
<xarray.Dataset> Size: 379kB Dimensions: (nodes: 4, techs: 12, carriers: 3, timesteps: 48, costs: 1) Coordinates: * techs (techs) object 96B 'N1_to_X2' ... 'supply_gri... * carriers (carriers) <U11 132B 'electricity' 'gas' 'heat' * nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3' * timesteps (timesteps) datetime64[ns] 384B 2005-07-01 ..... * costs (costs) object 8B 'monetary' Data variables: (12/21) flow_cap (nodes, techs, carriers) float64 1kB nan ... nan link_flow_cap (techs) float64 96B 189.9 10.38 ... nan nan flow_out (nodes, techs, carriers, timesteps) float64 55kB ... flow_in (nodes, techs, carriers, timesteps) float64 55kB ... flow_export (nodes, techs, carriers, timesteps) float64 55kB ... area_use (nodes, techs) float64 384B nan nan ... nan nan ... ... cost_operation_fixed (nodes, techs, costs) float64 384B nan ... nan cost (nodes, techs, costs) float64 384B 0.05158 ..... capacity_factor (nodes, techs, carriers, timesteps) float64 55kB ... systemwide_capacity_factor (techs, carriers) float64 288B 0.0 0.0 ... 0.0 systemwide_levelised_cost (carriers, techs, costs) float64 288B nan ...... total_levelised_cost (carriers, costs) float64 24B 0.08043 ... 0.0... Attributes: (12/14) termination_condition: optimal calliope_version_defined: 0.7.0 calliope_version_initialised: 0.7.0.dev5 applied_overrides: scenario: None defaults: {'bigM': 1000000000.0, 'objective_cost_wei... ... ... name: Urban-scale example model timestamp_model_creation: 1734349850.375516 timestamp_build_start: 1734349853.235978 timestamp_build_complete: 1734349859.350502 timestamp_solve_start: 1734349859.89467 timestamp_solve_complete: 1734349860.410144
- 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
- title :
- Technology flow (a.k.a. nominal) capacity
- description :
- A technology's flow capacity, also known as its nominal or nameplate capacity.
- default :
- 0
- 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
- title :
- Link flow capacity
- description :
- A transmission technology's flow capacity, also known as its nominal or nameplate capacity.
- default :
- 0
- 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
- title :
- Carrier outflow
- 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.
- default :
- 0
- 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
- title :
- Carrier inflow
- 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.
- default :
- 0
- 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
- title :
- Carrier export
- description :
- The flow of a carrier exported outside the system boundaries by a technology per timestep.
- default :
- 0
- 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
- title :
- Area utilisation
- description :
- The area in space utilised directly (e.g., solar PV panels) or indirectly (e.g., biofuel crops) by a technology.
- default :
- 0
- 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
- title :
- Source flow use
- description :
- The carrier flow consumed from outside the system boundaries by a `supply` technology.
- default :
- 0
- 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
- title :
- Source flow capacity
- description :
- The upper limit on a flow that can be consumed from outside the system boundaries by a `supply` technology in each timestep.
- default :
- 0
- 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
- title :
- Carrier outflow including losses
- description :
- Outflows after taking efficiency losses into account.
- default :
- 0
- 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
- title :
- Carrier inflow including losses
- description :
- Inflows after taking efficiency losses into account.
- default :
- 0
- 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_operation_variable(nodes, techs, costs, timesteps)float64nan nan nan nan ... nan nan nan nan
- title :
- Variable operating costs
- description :
- The operating costs per timestep of a technology.
- default :
- 0
- 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
- title :
- Flow capacity investment costs
- description :
- The investment costs associated with the nominal/rated capacity of a technology.
- default :
- 0
- 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)float6485.44 6.23 255.5 ... 0.01835 nan
- title :
- Total investment costs
- description :
- The installation costs of a technology, including those linked to the nameplate capacity, land use, storage size, and binary/integer unit purchase.
- default :
- 0
- unit :
- cost
- is_result :
- 1
array([[[8.54424495e+01], [6.22955940e+00], [2.55466021e+02], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan], [ nan]], [[ nan], [ nan], [2.55466021e+02], [1.37383225e+01], [1.18630220e+00], [ nan], [1.95335257e+05], ... [8.32579423e+03], [ nan], [ nan], [ nan], [1.93844961e+04], [2.27263390e+02], [ nan]], [[ nan], [6.22955940e+00], [ nan], [ nan], [1.18630220e+00], [1.21680000e+00], [ nan], [ nan], [ nan], [1.35000000e+05], [1.83529410e-02], [ nan]]])
- cost_investment_annualised(nodes, techs, costs)float640.05158 0.003761 ... 1.108e-05 nan
- title :
- Equivalent annual investment costs
- description :
- An annuity factor has been applied to scale lifetime investment costs to annual values that can be directly compared to operation costs. If the modeling period is not equal to one full year, this will be scaled accordingly.
- default :
- 0
- 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], [8.14941904e+01], [1.10789487e-05], [ nan]]])
- cost_operation_fixed(nodes, techs, costs)float64nan nan nan nan ... -44.11 nan nan
- title :
- Total fixed operation costs
- description :
- The fixed, annual operation costs of a technology, which are calculated relative to investment costs. If the modeling period is not equal to one full year, this will be scaled accordingly.
- default :
- 0
- unit :
- cost
- 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], [-44.10958904], [ nan], [ nan]]])
- cost(nodes, techs, costs)float640.05158 0.003761 ... 0.01148 nan
- title :
- Total costs
- description :
- The total annualised costs of a technology, including installation and operation costs.
- default :
- 0
- 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.dev5
- applied_overrides :
- scenario :
- None
- defaults :
- {'bigM': 1000000000.0, 'objective_cost_weights': 1, 'color': nan, 'name': nan, 'cap_method': 'continuous', 'integer_dispatch': False, 'include_storage': False, 'force_async_flow': False, 'flow_cap_per_storage_cap_min': 0, 'flow_cap_per_storage_cap_max': inf, 'flow_cap': inf, 'flow_cap_max': inf, 'flow_cap_max_systemwide': inf, 'flow_cap_min': 0, 'flow_cap_min_systemwide': 0, 'flow_out_min_relative': 0, 'flow_cap_per_unit': nan, 'flow_in_eff': 1.0, 'flow_out_eff': 1.0, 'flow_out_parasitic_eff': 1.0, 'flow_ramping': 1.0, 'export_max': inf, 'lifetime': inf, 'area_use': inf, 'area_use_max': inf, 'area_use_min': 0, 'area_use_per_flow_cap': nan, '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, 'cyclic_storage': True, 'purchased_units_min_systemwide': 0, 'purchased_units_max_systemwide': inf, 'purchased_units': inf, 'purchased_units_min': 0, 'purchased_units_max': inf, 'sink_unit': 'absolute', 'sink_use_min': 0, 'sink_use_max': inf, 'sink_use_equals': nan, 'source_unit': 'absolute', 'source_cap_equals_flow_cap': False, 'source_eff': 1.0, 'source_use_min': 0, 'source_use_max': inf, 'source_use_equals': nan, 'source_cap': inf, 'source_cap_max': inf, 'source_cap_min': 0, 'one_way': False, 'distance': 1.0, 'flow_in_eff_per_distance': 1.0, 'flow_out_eff_per_distance': 1.0, 'cost_flow_cap_per_distance': 0, 'cost_purchase_per_distance': 0, 'cost_flow_cap': 0, 'cost_export': 0, 'cost_interest_rate': 0, 'cost_om_annual': 0, 'cost_om_annual_investment_fraction': 0, 'cost_flow_in': 0, 'cost_flow_out': 0, 'cost_purchase': 0, 'cost_area_use': 0, 'cost_source_cap': 0, 'cost_storage_cap': 0, 'cost_depreciation_rate': 1, 'available_area': inf}
- allow_operate_mode :
- 1
- config :
- {'init': {'name': 'Urban-scale example model', 'calliope_version': '0.7.0', 'time_subset': ['2005-07-01', '2005-07-02'], 'time_resample': None, 'time_cluster': None, 'time_format': 'ISO8601', 'distance_unit': 'km', 'broadcast_param_data': True}, 'build': {'add_math': ['additional_math.yaml'], 'ignore_mode_math': False, 'backend': 'pyomo', 'ensure_feasibility': True, 'mode': 'plan', 'objective': 'min_cost_optimisation', 'operate_use_cap_results': False, 'pre_validate_math_strings': True}, 'solve': {'spores_number': 3, 'spores_score_cost_class': 'spores_score', 'spores_save_per_spore': False, 'spores_skip_cost_op': False, 'save_logs': None, 'solver_io': None, 'solver_options': None, 'solver': 'cbc', 'zero_threshold': 1e-10, 'shadow_prices': []}}
- name :
- Urban-scale example model
- timestamp_model_creation :
- 1734349850.375516
- timestamp_build_start :
- 1734349853.235978
- timestamp_build_complete :
- 1734349859.350502
- timestamp_solve_start :
- 1734349859.89467
- timestamp_solve_complete :
- 1734349860.410144
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