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()
[2025-03-14 18:56:21] INFO Model: initialising
[2025-03-14 18:56:21] INFO Model: preprocessing stage 1 (model_run)
[2025-03-14 18:56:23] INFO Model: preprocessing stage 2 (model_data)
[2025-03-14 18:56:23] INFO Model: preprocessing complete
# Get information on the model
print(m.info())
[2025-03-14 18:56:23] WARNING /home/docs/checkouts/readthedocs.org/user_builds/calliope/conda/latest/lib/python3.12/site-packages/calliope/model.py:439: 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/34) 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 name: Urban-scale example model timestamp_model_creation: 1741978581.124547
- 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])
- 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
- name :
- Urban-scale example model
- timestamp_model_creation :
- 1741978581.124547
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/34) 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 name: Urban-scale example model timestamp_model_creation: 1741978581.124547
- 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])
- 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
- name :
- Urban-scale example model
- timestamp_model_creation :
- 1741978581.124547
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()
[2025-03-14 18:56:23] INFO Model: backend build starting
[2025-03-14 18:56:23] INFO Math preprocessing | added file 'plan'.
[2025-03-14 18:56:23] INFO Math preprocessing | added file 'additional_math.yaml'.
[2025-03-14 18:56:23] INFO Math preprocessing | validated math against schema.
[2025-03-14 18:56:23] INFO Optimisation Model | parameters | Generated.
[2025-03-14 18:56:25] INFO Optimisation Model | Validated math strings.
[2025-03-14 18:56:25] INFO Optimisation Model | variables | Generated.
[2025-03-14 18:56:26] INFO Optimisation Model | global_expressions | Generated.
[2025-03-14 18:56:27] INFO Optimisation Model | constraints | Generated.
[2025-03-14 18:56:27] INFO Optimisation Model | piecewise_constraints | Generated.
[2025-03-14 18:56:27] INFO Optimisation Model | objectives | Generated.
[2025-03-14 18:56:27] 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/110) 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 0x7730bbe36a80>], 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 0x7730bbe37110>, 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 0x7730bbe36f80>], dtype=object)
- base_tech(techs)objectparameters[base_tech][0] ... par...
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'link_flow_cap', 'balance_demand', 'balance_transmission', 'source_use', 'cost_operation_variable', 'balance_conversion', 'cost_investment_flow_cap', 'flow_in_inc_eff', 'balance_supply_no_storage', '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 0x7730bbe36d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe369e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe368f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe366c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe368a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36710>], 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 0x7730bbe36260>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36530>, 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', 'flow_in_max'}
- 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 0x7730bbe35540>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe351d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35220>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7730bbe35590>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe353b0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35e00>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35630>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35950>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe37e30>], [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', 'flow_out_max'}
- 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 0x7730bbe9f610>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f570>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f4d0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7730bbe9f160>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f5c0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36120>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f3e0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9ec60>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f700>, 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 0x7730bbe9f020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9ed50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe343c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe34e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe07250>], 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 0x7730bbeac2d0>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeac5f0>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeac3c0>, 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 0x7730bbeaca50>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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 0x7730bbeae120>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae170>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae1c0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae210>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae2b0>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead2c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead1d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead950>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeade50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae0d0>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeade00>, 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 0x7730bbe06580>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe075c0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe06c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe06120>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe065d0>, 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 0x7730bbe05860>, 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 0x7730bbe9d220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe19630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1a2b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe19ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1bac0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1be30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe198b0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe19d10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1bf20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1b570>], 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 0x7730bbe1a490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe129e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe124e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10820>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13e80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13a70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13340>], 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 0x7730bbe11360>, 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 0x7730bbe9dae0>, 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 0x7730bbe0e440>, 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 0x7730bbe0fa20>, 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 0x7730bbe0c730>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e300>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0db80>]], 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 0x7730bbeadb80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead360>], 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 0x7730bbeacd20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeadae0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae530>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaed00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaed50>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object)
- distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff', 'flow_out_inc_eff', 'cost_investment_flow_cap'}
- 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 0x7730bbeaea80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae3a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaee90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaeee0>, 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 0x7730bbeaeda0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaf430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaf700>, 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 0x7730bbeafa70>], [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 0x7730bbeba990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeba8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeb8690>], 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 0x7730bbebae40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeba8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbebb2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbebb340>], 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 0x7730bbfcc0a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe888c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe8a710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe8b2a0>], 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 0x7730bbe36cb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36d50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe37340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe37250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe364e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe363f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe360d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36e40>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7730bbe8ae90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeada40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeadc70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfcf3e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfcf840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfbac10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfbaf30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba120>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba2b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb9f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8af0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb85f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba440>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8a00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb82d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8910>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfbafd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8d20>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f5c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ed50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f200>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0eda0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cb90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fc50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c870>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cff0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0df40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0eb20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e210>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0dcc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0eee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d090>]]], dtype=object)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'cost_operation_fixed', 'source_max', 'flow_out_max', 'cost_investment_annualised', 'flow_in_max'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb80a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8f50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb9b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfcea80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe370c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe34640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c690>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cc30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ead0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c9b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c5f0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0caa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c3c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d4f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c1e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0df90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ddb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d9a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fcf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d0e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e6c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cdc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0dbd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0de50>], dtype=object)
- timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- obj_type :
- parameters
- references :
- {'cost_operation_fixed', 'min_cost_optimisation', 'cost_investment_annualised', 'cost_operation_variable'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0dd60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fe80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f7f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ccd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10f50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe100a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe101e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe100f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe106e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe119f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13c00>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13de0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13bb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12300>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe114a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13fc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe123f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe132f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11cc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe120d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10ff0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13a20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11180>], 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_conversion', 'balance_supply_no_storage'}
- 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 `link_from` to `link_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 :
- {'area_use_per_flow_capacity', 'cost_operation_fixed', 'cost_investment_flow_cap', 'flow_out_max', 'symmetric_transmission', 'flow_in_max'}
- 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 0x7730b88ac2d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ac0d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f5a750>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7730b8f5bdd0>], ... [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88af1d0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ae7d0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88af4d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ad0d0>], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ae250>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88af450>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ac7d0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88acdd0>, 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 0x7730b88ae950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ac8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ae2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ae8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88aebd0>, 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 :
- {'flow_out_inc_eff', 'system_balance', 'export_balance', 'cost_operation_variable', 'link_chp_outputs', '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 0x7730b88ad350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ae1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b88ac350>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef7dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef6350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef62d0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef5c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef70d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef7350>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef78d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef6050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbef6dd0>]], ... ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b83731d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8373250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b83732d0>], [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 0x7730b8373350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b83733d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8373450>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348b50>], [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 :
- {'flow_in_inc_eff', 'system_balance', 'flow_in_max', 'cost_operation_variable'}
- 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 0x7730b8f5b9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f585d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730bbecacd0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b83492d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8349250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8349350>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b83494d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348f50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b834a7d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b834a850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b834a8d0>]], ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f722d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f72350>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 :
- {'export_balance', 'system_balance', 'cost_operation_variable'}
- 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 0x7730b8fbd5d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbd650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbd6d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbec50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbecd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbed50>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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_per_flow_capacity', 'area_use_capacity_per_loc', '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 0x7730b8fbf1d0>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbf150>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbf450>, nan, nan]], dtype=object)
- source_use(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'balance_supply_no_storage', 'source_max', 'source_availability_supply', 'cost_operation_variable'}
- 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 0x7730b8f586d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f2d350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f5b950>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f082d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f08450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f08550>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8f08850>, ... [[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 0x7730b8ff69d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8ff6a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8ff6ad0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcc0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcc150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcc1d0>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcc250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcc2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcc350>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcd8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcd950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcd9d0>], [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 0x7730b8fce450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce350>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcdd50>, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcde50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcea50>, nan]], dtype=object)
- unmet_demand(nodes, carriers, timesteps)objectnan ... variables[unmet_demand][...
- obj_type :
- variables
- references :
- {'min_cost_optimisation', 'system_balance'}
- coords_in_name :
- False
- 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 0x7730b8f5ba50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcf3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbf050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fbf850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcded0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fceed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce7d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcebd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcf850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce1d0>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e617d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e618d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e619d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e61fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e620d0>]]], dtype=object)
- unused_supply(nodes, carriers, timesteps)objectnan ... variables[unused_supply]...
- obj_type :
- variables
- references :
- {'min_cost_optimisation', 'system_balance'}
- 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 0x7730b8fcf2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fcf650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8fce9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e623d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e630d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e63050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e62d50>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e913d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e914d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e915d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e916d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e917d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e918d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e919d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8e91c50>]]], dtype=object)
- flow_out_inc_eff(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'balance_conversion', 'balance_transmission', 'balance_supply_no_storage'}
- 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 0x7730bbe60820>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730bbe60c70>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730bbe61f60>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b88608e0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8860940>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b88609a0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8860a00>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8860a60>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8860ac0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8861ae0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8861b40>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8861ba0>]], ... ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8e7f370>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8e7f3d0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8e7f430>], [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 0x7730b8373350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b83733d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8373450>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7730b8348b50>], [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_conversion', 'balance_demand', 'balance_transmission'}
- 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 0x7730b8e3a530>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8e3a4a0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8e39cf0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893ceb0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893cee0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893cf10>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893cf40>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893cf70>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893cfa0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893d7b0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893d7e0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b893d810>]], ... <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b889d720>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b889d750>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7730bbea3cd0>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7730bbea1bd0>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7730bbea3790>, ..., <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7730bbfe3ca0>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7730bbfe2110>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7730bbfe0ee0>]], [[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 0x7730b8395a20>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396f20>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396d70>]], [[nan], [nan], [nan]], [[nan], [nan], [nan]], ... [[nan], [nan], [nan]], [[nan], [nan], [nan]], [[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396560>], [nan], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8394f10>], [nan]], [[nan], [nan], [nan]]]], dtype=object)
- cost_investment(nodes, techs, costs)objectparameters[cost_flow_cap_per_dis...
- obj_type :
- global_expressions
- references :
- {'cost_operation_fixed', 'cost_investment_annualised'}
- 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 0x7730b8395a20>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396f20>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396d70>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83954e0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8397850>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8395810>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8395510>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8395c90>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83945b0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8394b80>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396320>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83949d0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8394f70>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8396560>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b8394f10>], [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 0x7730b8e3b5e0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f2e90>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3160>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f31f0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3130>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f2d10>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f05e0>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3280>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f33d0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3430>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3490>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f34f0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3550>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f35b0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3610>], [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 0x7730b83893c0>], [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 0x7730b8e3b5e0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f2e90>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3160>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f31f0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3130>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f2d10>], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89dc280>], ... [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89ddc60>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89dee30>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89dd090>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f3490>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7730b83f34f0>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89dde40>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89dd690>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7730b89dc8b0>], [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 0x7730b8e5b930>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x7730b8e5b9a0>, 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 0x7730b8936740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8937e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8935c50>], 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 0x7730d13eb5b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730d13ea660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730d13ebcb0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5ad60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5b4d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5b230>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5ae40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e592b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e589f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5a900>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e58f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e58910>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da60b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da6120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da6190>], [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 0x7730b8da6200>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da6270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da62e0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da75b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da7620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da7690>], [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 0x7730b8e59630>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8937ee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da7e00>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb8f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb8fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb9010>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb9080>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb90f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb9160>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fba430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fba4a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fba510>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e377e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e37850>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7730b83a1cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a2040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a1d30>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a3230>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a32a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a3310>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a3380>, ... [[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 0x7730b83c48a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c4910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c4980>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5d30>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5e80>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c7150>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c71c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c7230>], [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 0x7730b83a1860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89880c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89882f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89883d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988440>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89884b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988520>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954c20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954c90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954d00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954d70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954de0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954ec0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955010>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955080>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89550f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955160>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89551d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89552b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955320>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955390>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955400>]]], 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 0x7730b8f8b850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8b8c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8b930>], [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 0x7730b8f8b9a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8ba10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8ba80>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d44de0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d44e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d44ec0>], [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 0x7730b8d45160>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d47070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d45860>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88902f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8890360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88903d0>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88917f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8891860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88918d0>], [nan, nan, nan, ..., nan, nan, nan], [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 0x7730b8891940>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88919b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8891a20>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8892cf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8892d60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8892dd0>], [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 0x7730b8893a80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893af0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88939a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893a10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88935b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893540>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d463c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d45240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d464a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d466d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d465f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d467b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46820>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7730b825ac80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825aba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825ad60>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825b1c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825a970>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825ab30>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825ac10>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825a900>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825a9e0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825aa50>, 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 0x7730b82cfe70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82cfee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82cff50>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82dd2b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82dd320>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82dd390>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7730bbed5f70>, 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/77) 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 0x7730bbe36a80>], 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 0x7730bbe37110>, 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 0x7730bbe36f80>], dtype=object)
- base_tech(techs)objectparameters[base_tech][0] ... par...
- obj_type :
- parameters
- references :
- {'flow_out_inc_eff', 'link_flow_cap', 'balance_demand', 'balance_transmission', 'source_use', 'cost_operation_variable', 'balance_conversion', 'cost_investment_flow_cap', 'flow_in_inc_eff', 'balance_supply_no_storage', '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 0x7730bbe36d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe369e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe368f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe366c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe368a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36710>], 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 0x7730bbe36260>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36530>, 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', 'flow_in_max'}
- 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 0x7730bbe35540>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe351d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35220>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7730bbe35590>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe353b0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35e00>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35630>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35950>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe37e30>], [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', 'flow_out_max'}
- 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 0x7730bbe9f610>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f570>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f4d0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7730bbe9f160>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f5c0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36120>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f3e0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9ec60>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9f700>, 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 0x7730bbe9f020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe9ed50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe343c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe34e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe07250>], 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 0x7730bbeac2d0>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeac5f0>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeac3c0>, 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 0x7730bbeaca50>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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 0x7730bbeae120>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae170>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae1c0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae210>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae2b0>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead2c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead1d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead950>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeade50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae0d0>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeade00>, 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 0x7730bbe06580>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe075c0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe06c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe06120>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe065d0>, 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 0x7730bbe05860>, 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 0x7730bbe9d220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe19630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1a2b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe19ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1bac0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1be30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe198b0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe19d10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1bf20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe1b570>], 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 0x7730bbe1a490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe129e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe124e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10820>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13e80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13a70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13340>], 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 0x7730bbe11360>, 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 0x7730bbe9dae0>, 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 0x7730bbe0e440>, 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 0x7730bbe0fa20>, 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 0x7730bbe0c730>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e300>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0db80>]], 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 0x7730bbeadb80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbead360>], 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 0x7730bbeacd20>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeadae0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae530>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaed00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaed50>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object)
- distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff', 'flow_out_inc_eff', 'cost_investment_flow_cap'}
- 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 0x7730bbeaea80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae3a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeae710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaee90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaeee0>, 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 0x7730bbeaeda0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaf430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeaf700>, 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 0x7730bbeafa70>], [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 0x7730bbeba990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeba8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeb8690>], 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 0x7730bbebae40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeba8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbebb2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbebb340>], 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 0x7730bbfcc0a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe888c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe8a710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe8b2a0>], 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 0x7730bbe36cb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36d50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe37340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe37250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe364e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe363f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe360d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe36e40>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7730bbe8ae90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeada40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbeadc70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfcf3e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfcf840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfbac10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfbaf30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba120>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba2b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb9f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8af0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8e10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb85f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfba440>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8a00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb82d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8910>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfbafd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8d20>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f5c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ed50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f200>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0eda0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cb90>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fc50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c870>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cff0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0df40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0eb20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e210>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0dcc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0eee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d090>]]], dtype=object)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'cost_operation_fixed', 'source_max', 'flow_out_max', 'cost_investment_annualised', 'flow_in_max'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb80a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8460>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8f50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb9b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfb8230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbfcea80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe370c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe34640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe35770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cc80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c690>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cc30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ead0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d450>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c9b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c5f0>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0caa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c3c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d4f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c1e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0df90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ddb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d9a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fcf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0d0e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e6c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c280>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cdc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0cb40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0dbd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0de50>], dtype=object)
- timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- obj_type :
- parameters
- references :
- {'cost_operation_fixed', 'min_cost_optimisation', 'cost_investment_annualised', 'cost_operation_variable'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0dd60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fe80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f520>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0f7f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0ccd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0fbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0e800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe0c4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10f50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe100a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe101e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe100f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe106e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe119f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13c00>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13de0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13bb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12300>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe114a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13fc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe123f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe132f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11cc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe120d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe12b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe10ff0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe13a20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7730bbe11180>], 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_conversion', 'balance_supply_no_storage'}
- 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 `link_from` to `link_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 0x7730b8e5b930>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x7730b8e5b9a0>, 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 0x7730b8936740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8937e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8935c50>], 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 0x7730d13eb5b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730d13ea660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730d13ebcb0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5ad60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5b4d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5b230>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5ae40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e592b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e589f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e5a900>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e58f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e58910>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da60b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da6120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da6190>], [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 0x7730b8da6200>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da6270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da62e0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da75b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da7620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da7690>], [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 0x7730b8e59630>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8937ee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8da7e00>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb8f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb8fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb9010>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb9080>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb90f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fb9160>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fba430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fba4a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8fba510>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e377e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8e37850>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7730b83a1cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a2040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a1d30>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a3230>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a32a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a3310>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83a3380>, ... [[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 0x7730b83c48a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c4910>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c4980>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5d30>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c5e80>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c7150>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c71c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b83c7230>], [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 0x7730b83a1860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89880c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89882f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89883d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988440>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89884b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8988520>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954c20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954c90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954d00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954d70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954de0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954ec0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954f30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8954fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955010>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955080>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89550f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955160>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89551d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b89552b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955320>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955390>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8955400>]]], 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 0x7730b8f8b850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8b8c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8b930>], [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 0x7730b8f8b9a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8ba10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8f8ba80>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d44de0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d44e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d44ec0>], [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 0x7730b8d45160>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d47070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d45860>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88902f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8890360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88903d0>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88917f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8891860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88918d0>], [nan, nan, nan, ..., nan, nan, nan], [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 0x7730b8891940>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88919b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8891a20>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8892cf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8892d60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8892dd0>], [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 0x7730b8893a80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893af0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88939a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893a10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b88935b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893540>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8893850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d463c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d45240>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d464a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d466d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d465f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d467b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b8d46820>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7730b825ac80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825aba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825ad60>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825b1c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825a970>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825ab30>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825ac10>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825a900>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825a9e0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b825aa50>, 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 0x7730b82cfe70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82cfee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82cff50>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82dd2b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82dd320>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7730b82dd390>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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()
[2025-03-14 18:56:28] INFO Optimisation model | starting model in plan mode.
[2025-03-14 18:56:28] INFO Backend: solver finished running. Time since start of solving optimisation problem: 0:00:00.226477
[2025-03-14 18:56:28] INFO Postprocessing: zero threshold of 1e-10 not required
[2025-03-14 18:56:28] INFO Postprocessing: ended. Time since start of solving optimisation problem: 0:00:00.316881
[2025-03-14 18:56:28] INFO Backend: model solve completed. Time since start of solving optimisation problem: 0:00:00.318786
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/13) 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: 1741978581.124547 timestamp_build_start: 1741978583.173289 timestamp_build_complete: 1741978587.699104 timestamp_solve_start: 1741978588.211622 timestamp_solve_complete: 1741978588.530408
- 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
- name :
- Urban-scale example model
- timestamp_model_creation :
- 1741978581.124547
- timestamp_build_start :
- 1741978583.173289
- timestamp_build_complete :
- 1741978587.699104
- timestamp_solve_start :
- 1741978588.211622
- timestamp_solve_complete :
- 1741978588.530408
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