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-06-27 09:30:58] INFO Model: initialising
[2025-06-27 09:30:58] INFO Model: preprocessing stage 1 (model_run)
[2025-06-27 09:30:59] INFO Model: preprocessing stage 2 (model_data)
[2025-06-27 09:30:59] INFO Model: preprocessing complete
# Get information on the model
print(m.info())
[2025-06-27 09:30:59] WARNING /home/docs/checkouts/readthedocs.org/user_builds/calliope/conda/v0.7.0.dev6/lib/python3.12/site-packages/calliope/model.py:441: 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.dev6
applied_overrides:
scenario: None
defaults: {'bigM': 1000000000.0, 'objective_cost_wei...
allow_operate_mode: 1
name: Urban-scale example model
timestamp_model_creation: 1751016658.302937- 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.dev6
- applied_overrides :
- scenario :
- None
- defaults :
- {'bigM': 1000000000.0, 'objective_cost_weights': 1, 'spores_baseline_cost': inf, 'spores_slack': 0, 'spores_score': 0, '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 :
- 1751016658.302937
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.dev6
applied_overrides:
scenario: None
defaults: {'bigM': 1000000000.0, 'objective_cost_wei...
allow_operate_mode: 1
name: Urban-scale example model
timestamp_model_creation: 1751016658.302937- 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.dev6
- applied_overrides :
- scenario :
- None
- defaults :
- {'bigM': 1000000000.0, 'objective_cost_weights': 1, 'spores_baseline_cost': inf, 'spores_slack': 0, 'spores_score': 0, '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 :
- 1751016658.302937
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-06-27 09:30:59] INFO Model: backend build starting
[2025-06-27 09:30:59] INFO Math preprocessing | added file 'plan'.
[2025-06-27 09:30:59] INFO Math preprocessing | added file 'additional_math.yaml'.
[2025-06-27 09:30:59] INFO Math preprocessing | validated math against schema.
[2025-06-27 09:31:00] INFO Optimisation Model | parameters | Generated.
[2025-06-27 09:31:02] INFO Optimisation Model | Validated math strings.
[2025-06-27 09:31:02] INFO Optimisation Model | variables | Generated.
[2025-06-27 09:31:03] INFO Optimisation Model | global_expressions | Generated.
[2025-06-27 09:31:04] INFO Optimisation Model | constraints | Generated.
[2025-06-27 09:31:04] INFO Optimisation Model | piecewise_constraints | Generated.
[2025-06-27 09:31:04] INFO Optimisation Model | objectives | Generated.
[2025-06-27 09:31:04] 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/113)
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 0x7bbb737a6fd0>], 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 0x7bbb737a7250>, 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 0x7bbb737a6e40>], dtype=object) - base_tech(techs)objectparameters[base_tech][0] ... par...
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap', 'source_cap', 'cost_operation_variable', 'link_flow_cap', 'symmetric_transmission', 'balance_demand', 'flow_out_inc_eff', 'balance_conversion', 'balance_supply_no_storage', 'flow_in_inc_eff', 'balance_transmission', 'source_use'}
- 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 0x7bbb737a6c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6a80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a69e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a68f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a67b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5ea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6530>], 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 0x7bbb737a6350>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6440>, 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 0x7bbb737a5540>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5450>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a4be0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7bbb737a53b0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a54f0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5b80>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5680>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a58b0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5130>], [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 0x7bbb73723f70>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737238e0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737104b0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7bbb73711a90>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711270>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a7020>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737124e0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371c050>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73721040>, 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 0x7bbb737a5090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a57c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a59a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a4cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371c730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371c140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371e580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d270>], 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 0x7bbb7370f250>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e440>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370eda0>, 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 0x7bbb7370fac0>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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 0x7bbb737011d0>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364e990>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4d20>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4c80>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4c30>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73700690>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703110>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701a90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73702580>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737032a0>, 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 0x7bbb73701b80>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703cf0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370cd70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4a00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703e30>, 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 0x7bbb73796850>, 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 0x7bbb738d7f70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e59a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e59f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e6df0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7250>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e5220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e45f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e6990>], 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 0x7bbb738e7070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e6bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e72f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738feda0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fe8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fed00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738feb70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738feb20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fea30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364ed00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73748190>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737480f0>], 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 0x7bbb738ebfc0>, nan, nan], dtype=object) - area_use_per_flow_cap(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use', 'area_use_per_flow_capacity'}
- 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 0x7bbb738cda90>, 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 0x7bbb738cc550>, nan, nan], dtype=object) - source_unit(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use', 'source_availability_supply'}
- 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 0x7bbb73749d10>, 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 0x7bbb738cdf90>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e64e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7e30>]], 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 0x7bbb738ccaf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738cc640>], 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 0x7bbb73701130>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737004b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737028a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73700eb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737026c0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object) - distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap', 'flow_in_inc_eff', 'flow_out_inc_eff'}
- coords_in_name :
- False
- title :
- Distance spanned by link.
- description :
- Used for `..._per_distance` constraints. If not defined, it will be automatically derived from latitude/longitude of nodes in a link.
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703c00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73700af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73702d00>, 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 0x7bbb73700fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737028f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701ef0>, 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 0x7bbb7370d770>], [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 0x7bbb7371fd90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703480>], 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 0x7bbb73712030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73712c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711db0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711d60>], 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 0x7bbb73710af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737129e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737117c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711ea0>], 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 0x7bbb7364cb90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364e800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364efd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364caf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364ee90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364d180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364c960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364c640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364d860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738d7f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc0f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc550>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7bbb7388f390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbbbd2adae0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fef30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738ff020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fd040>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370f5c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370c780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e350>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e3f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d950>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370fde0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370cf00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370eb70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ff70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e170>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370f610>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4780>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4190>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b42d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b40f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4140>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b41e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b45f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4aa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b44b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4690>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4820>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b47d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b49b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4af0>]]], dtype=object) - timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'flow_out_max', 'cost_operation_fixed', 'flow_in_max', 'source_max', 'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ef80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ce60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370c5a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fd400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fcaa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738ffe30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4870>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4b40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4e60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b52c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5310>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b53b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5400>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b57c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b58b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5900>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b59a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b59f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5a90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5b80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5bd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5c20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5cc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5d10>], dtype=object) - timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- obj_type :
- parameters
- references :
- {'cost_investment_annualised', 'cost_operation_variable', 'min_cost_optimisation', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6120>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b61c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6210>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b62b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6300>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b63a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b63f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b64e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b65d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6530>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b66c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6710>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6a80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6cb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6d50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6da0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6df0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6e90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b7020>], dtype=object) - spores_baseline_cost()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- The baseline optimal cost of the system used to set the maximum cost constraint when undertaking SPORES analysis. This usually only applies to `monetary` cost, but could be applied to other non-SPORES costs as necessary.
- unit :
- None
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- spores_slack()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- The amount of slack in the maximum cost constraint applied in SPORES mode. This is a fraction that is applied to the baseline cost, e.g., `0.1` would be used to set a maximum cost constraint of `spores_baseline_cost * 1.1`
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- spores_score()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- The per-tech & per-node SPORES score used to penalise technologies at nodes that have appeared in previous SPORES iterations.
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cap_method()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Capacity method switch.
- description :
- One of 'continuous' (LP model) or 'integer' (integer/binary unit capacity).
- unit :
- None
- default :
- continuous
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- integer_dispatch()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Integer dispatch switch.
- description :
- When true, will limit per-timestep out/inflows relative to the number of units of a technology that are in operation. Requires `cap_method=integer`.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- include_storage()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Storage method switch.
- description :
- When true, math will be triggered to allow discontinuous carrier inflow and outflows across timesteps.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- force_async_flow()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Force asynchronous out/inflow.
- description :
- If True, non-zero `flow_out` and `flow_in` cannot both occur in the same timestep.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum flow capacity per storage capacity
- description :
- ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum flow capacity per storage capacity
- description :
- ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a maximum. If `cap_method=integer`, this will be scaled by the number of integer units of a technology purchased.
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum rated flow capacity.
- description :
- This acts as lower limit (lower bound) for flow_cap. If `cap_method` = integer, this will be scaled by the number of integer units of a technology purchased. !!! note If `cap_method` = continuous (which is set by default), then setting `flow_cap_min` to any value greater than 0 forces the model to always respect that limit, which in turn forces investment into the technology. Use this to enforce given investment plans, or to account for existing technologies that cannot be decommissioned. An example: If `cap_method` = continuous and `flow_cap_min` = 100, then flow_cap has to be at least 100. This means that going to 0 is not possible, unless you switch to `cap_method` = integer (see [cap_method][]).
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a minimum. NOTE: this will _force_ the sum of `flow_cap` to a minimum value unless `cap_method` is set to `integer`.
- unit :
- power.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_out_min_relative()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum outflow
- description :
- Set to a value between 0 and 1 to force minimum `flow_out` as a fraction of the technology rated capacity. If non-zero and `cap_method` is `continuous`, this will force the technology to operate above its minimum value at every timestep.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Flow capacity per purchased unit
- description :
- Set the capacity of each integer unit of a technology purchased, if `cap_method` is `integer`.
- unit :
- $\frac{\text{power}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_in_eff()float64nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Inflow efficiency
- description :
- Conversion efficiency from `source`/`flow_in` (tech dependent) into the technology. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_ramping()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Ramping rate
- description :
- limit maximum outflow / inflow / outflow - inflow (technology base class dependent) to a fraction of maximum capacity, which increases by that fraction at each timestep.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- export_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum allowed carrier export
- description :
- If `carrier_export` is defined, limit the allowed export of produced carrier for a technology.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- area_use_min()float64nan
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- title :
- Minimum usable area.
- description :
- Limits the lower bound of the `area_use` decision variable to this value.
- unit :
- $\text{area}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum storage capacity.
- description :
- Limit upper bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum storage capacity.
- description :
- Limit lower bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage capacity per purchased unit.
- description :
- Set the storage capacity of each integer unit of a technology purchased.
- unit :
- $\frac{\text{energy}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_discharge_depth()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage depth of discharge.
- description :
- Defines the minimum level of storage state of charge, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_initial()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Initial storage level.
- description :
- Set stored flow in device at the first timestep, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_loss()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage loss rate
- description :
- Rate of storage loss per hour, used to calculate lost stored flow as `(1 - storage_loss)^hours_per_timestep`.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cyclic_storage()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cyclic storage switch.
- description :
- If true, link storage levels in the last model timestep with the first model timestep. `inter_cluster_storage` custom math must be included if using time clustering and setting this to `true`. This must be set to `false` if using `operate` mode.
- unit :
- boolean.
- default :
- True
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum installed integer units of a technology.
- description :
- sets the lower bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum installed integer units of a technology.
- description :
- sets the upper bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum number of purchased units
- description :
- Limits the lower bound of units purchased if `cap_method` is `integer`.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum number of purchased units.
- description :
- Limits the upper bound of units purchased if `cap_method` is `integer`. If set to `1`, will effectively set the `purchased_units` to a binary decision variable.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_unit()float64nan
- obj_type :
- parameters
- references :
- {'area_use', 'balance_demand'}
- 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 :
- {'cost_investment_flow_cap', 'flow_out_max', 'symmetric_transmission', 'cost_operation_fixed', 'flow_in_max', 'area_use_per_flow_capacity'}
- 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 0x7bbb71d44d50>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d46ed0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d47550>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7bbb71d471d0>], ... [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d45550>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d44750>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d46d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d44f50>], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d46a50>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d467d0>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d47050>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d44850>, 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 0x7bbb71b898d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8acd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8a8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d47650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b89250>, 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_max', 'cost_operation_variable', 'link_chp_outputs', 'system_balance', 'export_balance', 'flow_out_inc_eff'}
- 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 0x7bbb71b88250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8a750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b88d50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8af50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b894d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b89b50>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8a2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b881d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b889d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb738b1350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb738b32d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb738b0f50>]], ... ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71997150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb719971d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71997250>], [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 0x7bbb719972d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71997350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb719973d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197c9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197ca50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197cad0>], [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_max', 'flow_in_inc_eff', 'system_balance', '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 0x7bbb71d445d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d473d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d45c50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197d250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197d2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197d350>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197d3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197d450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197d4d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197ea50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197ead0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197eb50>]], ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7363a550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7363a5d0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 :
- {'system_balance', 'cost_operation_variable', 'export_balance'}
- coords_in_name :
- False
- title :
- Carrier export
- description :
- The flow of a carrier exported outside the system boundaries by a technology per timestep.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: carrier_export bounds: min: 0 max: .inf
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., [[<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73605850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736058d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73605950>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73606ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73606f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73606fd0>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7bbb71d465d0>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d45ed0>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d478d0>, nan, nan]], dtype=object) - source_use(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'source_max', 'cost_operation_variable', 'balance_supply_no_storage', 'source_availability_supply'}
- coords_in_name :
- False
- title :
- Source flow use
- description :
- The carrier flow consumed from outside the system boundaries by a `supply` technology.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - techs - timesteps where: base_tech=supply bounds: min: 0 max: .inf
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736f63d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8bcd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7365cd50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73670d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73670dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73670e50>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb73670ed0>, ... [[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 0x7bbb7366af50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7366afd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7366b050>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ac650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ac6d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ac750>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ac7d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ac850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ac8d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ade50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736aded0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736adf50>], [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 0x7bbb736ae9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae8d0>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736aead0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae2d0>, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736aefd0>, nan]], dtype=object) - unmet_demand(nodes, carriers, timesteps)objectnan ... variables[unmet_demand][...
- obj_type :
- variables
- references :
- {'system_balance', 'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Unmet demand (load shedding)
- description :
- Virtual source of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined supply capacity to meet demand.
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - carriers - timesteps where: config.ensure_feasibility=True bounds: min: 0 max: .inf
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d46b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736afc50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d47f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71d44fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736adfd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8a450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71b8abd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736f7550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736072d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7365cb50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7365d350>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c19fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a3d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a4d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a5d0>]]], dtype=object) - unused_supply(nodes, carriers, timesteps)objectnan ... variables[unused_supply]...
- obj_type :
- variables
- references :
- {'system_balance', 'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Unused supply (curtailment)
- description :
- Virtual sink of carrier flow to ensure model feasibility. This should only be considered a debugging rather than a modelling tool as it may distort the model in other ways due to the large impact it has on the objective function value. In model results, the negation of this variable is combined with `unmet_demand` and presented as only one variable: `unmet_demand`. When present in a model in which it has been requested, it indicates an inability for technologies in the model to reach a sufficient combined consumption capacity to meet required outflow (e.g. from renewables without the possibility of curtailment).
- default :
- 0
- unit :
- energy
- yaml_snippet :
- foreach: - nodes - carriers - timesteps where: config.ensure_feasibility=True bounds: min: -.inf max: 0
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1b2d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736ae250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb736af7d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1afd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1b1d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1af50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1ad50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1a8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1b5d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1b550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71c1b250>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf98d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf99d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9d50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cf9fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cfa050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cfa0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71cfa150>]]], dtype=object) - flow_out_inc_eff(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'balance_transmission', 'balance_supply_no_storage', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Carrier outflow including losses
- description :
- Outflows after taking efficiency losses into account.
- default :
- 0
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: flow_out equations: - where: base_tech=transmission expression: "flow_out / (\n flow_out_eff * flow_out_parasitic_eff *\n flow_out_eff_per_distance ** distance\n)" - where: NOT base_tech=transmission expression: flow_out / (flow_out_eff * flow_out_parasitic_eff)
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71afa530>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbbb4553d90>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb719c1fc0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71d3c4c0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71d3cdf0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71d3c790>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71d3c9d0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71d3c250>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71d3c220>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb7376f160>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb7376c4c0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb7376c670>]], ... ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71b77760>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71b777c0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71b77820>], [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 0x7bbb719972d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb71997350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb719973d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197c9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197ca50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x7bbb7197cad0>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object) - flow_in_inc_eff(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'balance_demand', 'balance_transmission', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Carrier inflow including losses
- description :
- Inflows after taking efficiency losses into account.
- default :
- 0
- yaml_snippet :
- foreach: - nodes - techs - carriers - timesteps where: flow_in equations: - where: base_tech=transmission expression: flow_in * flow_in_eff * flow_in_eff_per_distance ** distance - where: NOT base_tech=transmission expression: flow_in * flow_in_eff
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738cac80>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ba52a0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ba5bd0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9360>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9390>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac93c0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac93f0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9420>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9450>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9c60>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9c90>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71ac9cc0>]], ... <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71b11bd0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71b11c00>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7bbb7375f550>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7bbb7375e3b0>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7bbb738f4640>, ..., <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7bbb71a3ec20>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7bbb71a3d390>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x7bbb71a3d3f0>]], [[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 0x7bbb738d8610>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738da500>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738da680>]], [[nan], [nan], [nan]], [[nan], [nan], [nan]], ... [[nan], [nan], [nan]], [[nan], [nan], [nan]], [[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f2e30>], [nan], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f3550>], [nan]], [[nan], [nan], [nan]]]], dtype=object) - cost_investment(nodes, techs, costs)objectparameters[cost_flow_cap_per_dis...
- obj_type :
- global_expressions
- references :
- {'cost_investment_annualised', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- Total investment costs
- description :
- The installation costs of a technology, including those linked to the nameplate capacity, land use, storage size, and binary/integer unit purchase.
- default :
- 0
- unit :
- cost
- yaml_snippet :
- foreach: - nodes - techs - costs where: cost_investment_flow_cap OR cost_investment_storage_cap OR cost_investment_source_cap OR cost_investment_area_use OR cost_investment_purchase equations: - expression: sum(default_if_empty(cost_investment_flow_cap, 0), over=carriers) + default_if_empty(cost_investment_storage_cap, 0) + default_if_empty(cost_investment_source_cap, 0) + default_if_empty(cost_investment_area_use, 0) + default_if_empty(cost_investment_purchase, 0)
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738d8610>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738da500>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738da680>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738d8af0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738da470>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738d9f90>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738d9090>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738db160>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f3dc0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f0280>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738d90f0>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738da200>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f1d50>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f2e30>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb738f3550>], [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 0x7bbb71d92f20>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81780>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81ed0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81f60>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81ea0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81a80>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81750>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81ff0>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82140>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c821a0>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82200>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82260>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c822c0>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82320>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82380>], [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 0x7bbb71c4b4f0>], [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 0x7bbb71d92f20>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81780>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81ed0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81f60>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81ea0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c81a80>], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1fb80>], ... [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1e920>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1eb60>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1ebf0>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82200>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x7bbb71c82260>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1ebc0>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1f010>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x7bbb71a1ee30>], [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 0x7bbb7387d010>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x7bbb912474d0>, 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 0x7bbb912459b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb91247230>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb91245f60>], 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 0x7bbb71b32200>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b32ba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b33e00>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71baa890>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ba8210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bab8c0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71baba80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bab930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71babaf0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71baa0b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ba98d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ba9e80>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e5f0>], [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 0x7bbb71c8e660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e6d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e740>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8fa10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8fa80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8faf0>], [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 0x7bbb71b30fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b32430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8fe70>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45ef0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45fd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a46040>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a47310>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a47380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a473f0>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bd06e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bd0750>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7bbb71b2acf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2b070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2ad60>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2a2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b29e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b29fd0>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b29f60>, ... [[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 0x7bbb7191cc20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191cc90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191cd00>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191dfd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e0b0>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e200>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191f4d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191f540>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191f5b0>], [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 0x7bbb71c8fb60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2aeb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb737465f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb737464a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73745cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7387f380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7387f0e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb912466d0>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc17f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc18d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1940>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc19b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1a20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1a90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1b70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1be0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1d30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1ef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1fd0>]]], 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 0x7bbb719bc210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc2f0>], [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 0x7bbb719bc360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc3d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc440>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bd710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bd780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bd7f0>], [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 0x7bbb719bea50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bee40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719beac0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad40c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad4130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad41a0>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad55c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad5630>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad56a0>], [nan, nan, nan, ..., nan, nan, nan], [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 0x7bbb71ad5710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad5780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad57f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6ac0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6b30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6ba0>], [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 0x7bbb71cc3930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc39a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc38c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3c40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3d90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3a10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719beb30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bec80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71d2fb60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71d2fa10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6dd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6f90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7af0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7a80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7000>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7b60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6d60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7150>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7230>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7bbb7189aba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ac10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ac80>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189a660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ae40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189a890>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ad60>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189aeb0>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189acf0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189b2a0>, 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 0x7bbb717201a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71720210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71720280>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71721550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb717215c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71721630>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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`.
- sense :
- minimise
- 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' active: true
array(<pyomo.core.kernel.objective.objective object at 0x7bbb73726bd0>, 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/80)
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 0x7bbb737a6fd0>], 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 0x7bbb737a7250>, 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 0x7bbb737a6e40>], dtype=object) - base_tech(techs)objectparameters[base_tech][0] ... par...
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap', 'source_cap', 'cost_operation_variable', 'link_flow_cap', 'symmetric_transmission', 'balance_demand', 'flow_out_inc_eff', 'balance_conversion', 'balance_supply_no_storage', 'flow_in_inc_eff', 'balance_transmission', 'source_use'}
- 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 0x7bbb737a6c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6a80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a69e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a68f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a67b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5ea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6530>], 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 0x7bbb737a6350>, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6440>, 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 0x7bbb737a5540>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5450>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a4be0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7bbb737a53b0>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a54f0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5b80>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5680>, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a58b0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5130>], [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 0x7bbb73723f70>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737238e0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737104b0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x7bbb73711a90>], ... [nan, nan, nan]], [[nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711270>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a7020>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737124e0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371c050>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73721040>, 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 0x7bbb737a5090>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a57c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a5220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a6a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a59a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737a4cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371c730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371c140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7371e580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d270>], 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 0x7bbb7370f250>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e440>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370eda0>, 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 0x7bbb7370fac0>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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 0x7bbb737011d0>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364e990>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4d20>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4c80>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4cd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4c30>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73700690>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703110>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701a90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703700>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73702580>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737032a0>, 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 0x7bbb73701b80>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703cf0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370cd70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4a00>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703e30>, 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 0x7bbb73796850>, 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 0x7bbb738d7f70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7610>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e59a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e59f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7660>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e6df0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7250>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e5220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e45f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e6990>], 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 0x7bbb738e7070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e6bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e72f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738feda0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fe8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fed00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738feb70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738feb20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fea30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364ed00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73748190>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737480f0>], 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 0x7bbb738ebfc0>, nan, nan], dtype=object) - area_use_per_flow_cap(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use', 'area_use_per_flow_capacity'}
- 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 0x7bbb738cda90>, 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 0x7bbb738cc550>, nan, nan], dtype=object) - source_unit(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'area_use', 'source_availability_supply'}
- 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 0x7bbb73749d10>, 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 0x7bbb738cdf90>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e64e0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738e7e30>]], 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 0x7bbb738ccaf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738cc640>], 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 0x7bbb73701130>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737004b0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737028a0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73700eb0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737026c0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object) - distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'cost_investment_flow_cap', 'flow_in_inc_eff', 'flow_out_inc_eff'}
- coords_in_name :
- False
- title :
- Distance spanned by link.
- description :
- Used for `..._per_distance` constraints. If not defined, it will be automatically derived from latitude/longitude of nodes in a link.
- unit :
- None
- default :
- 1.0
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703c00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73700af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73702d00>, 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 0x7bbb73700fa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737028f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73701ef0>, 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 0x7bbb7370d770>], [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 0x7bbb7371fd90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73703480>], 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 0x7bbb73712030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73712c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711db0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711d60>], 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 0x7bbb73710af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737129e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737117c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb73711ea0>], 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 0x7bbb7364cb90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364e800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364efd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364caf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364ee90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364d180>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364c960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364c640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7364d860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738d7f20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc0f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc550>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7bbb7388f390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbbbd2adae0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fef30>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738ff020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fd040>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370f5c0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370c780>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e350>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e3f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d950>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370fde0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370cf00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370eb70>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ff70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e170>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370d630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370f610>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4780>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4550>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4190>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b42d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b40f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4320>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4140>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b41e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b45f0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4aa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b44b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4690>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4640>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4730>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4820>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b47d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b49b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4af0>]]], dtype=object) - timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'flow_out_max', 'cost_operation_fixed', 'flow_in_max', 'source_max', 'cost_investment_annualised'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ef80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370ce60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370e990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb7370c5a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fd400>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc230>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fc4b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738fcaa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb738ffe30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4870>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4370>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4b40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4e60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5220>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5270>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b52c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5310>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5360>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b53b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5400>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5770>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b57c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5810>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5860>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5680>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b58b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5900>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5950>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b59a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b59f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5a40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5a90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5b30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5b80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5bd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5c20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5cc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5d10>], dtype=object) - timestep_weights(timesteps)objectparameters[timestep_weights][0] ...
- obj_type :
- parameters
- references :
- {'cost_investment_annualised', 'cost_operation_variable', 'min_cost_optimisation', 'cost_operation_fixed'}
- coords_in_name :
- False
- title :
- None
- description :
- None
- unit :
- None
- default :
- nan
- original_dtype :
- float64
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b4d70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6120>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b61c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6210>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6260>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b62b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6300>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6350>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b63a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b63f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6440>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6490>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b64e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b65d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6530>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b66c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6710>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6a80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6ad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6b20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6b70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6bc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6c10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6c60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6cb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6a30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6d00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b5ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6d50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6da0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6df0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6e90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6ee0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6f30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b6f80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x7bbb737b7020>], dtype=object) - spores_baseline_cost()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- The baseline optimal cost of the system used to set the maximum cost constraint when undertaking SPORES analysis. This usually only applies to `monetary` cost, but could be applied to other non-SPORES costs as necessary.
- unit :
- None
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- spores_slack()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- The amount of slack in the maximum cost constraint applied in SPORES mode. This is a fraction that is applied to the baseline cost, e.g., `0.1` would be used to set a maximum cost constraint of `spores_baseline_cost * 1.1`
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- spores_score()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- None
- description :
- The per-tech & per-node SPORES score used to penalise technologies at nodes that have appeared in previous SPORES iterations.
- unit :
- None
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cap_method()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Capacity method switch.
- description :
- One of 'continuous' (LP model) or 'integer' (integer/binary unit capacity).
- unit :
- None
- default :
- continuous
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- integer_dispatch()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Integer dispatch switch.
- description :
- When true, will limit per-timestep out/inflows relative to the number of units of a technology that are in operation. Requires `cap_method=integer`.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- include_storage()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_no_storage', 'balance_conversion'}
- coords_in_name :
- False
- title :
- Storage method switch.
- description :
- When true, math will be triggered to allow discontinuous carrier inflow and outflows across timesteps.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- force_async_flow()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Force asynchronous out/inflow.
- description :
- If True, non-zero `flow_out` and `flow_in` cannot both occur in the same timestep.
- unit :
- None
- default :
- False
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum flow capacity per storage capacity
- description :
- ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum flow capacity per storage capacity
- description :
- ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).
- unit :
- $\text{hour}^{-1}$
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a maximum. If `cap_method=integer`, this will be scaled by the number of integer units of a technology purchased.
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum rated flow capacity.
- description :
- This acts as lower limit (lower bound) for flow_cap. If `cap_method` = integer, this will be scaled by the number of integer units of a technology purchased. !!! note If `cap_method` = continuous (which is set by default), then setting `flow_cap_min` to any value greater than 0 forces the model to always respect that limit, which in turn forces investment into the technology. Use this to enforce given investment plans, or to account for existing technologies that cannot be decommissioned. An example: If `cap_method` = continuous and `flow_cap_min` = 100, then flow_cap has to be at least 100. This means that going to 0 is not possible, unless you switch to `cap_method` = integer (see [cap_method][]).
- unit :
- power or $\frac{\text{power}}{\text{unit}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum rated flow capacity.
- description :
- Limits the sum of `flow_cap` over all nodes in the model to a minimum. NOTE: this will _force_ the sum of `flow_cap` to a minimum value unless `cap_method` is set to `integer`.
- unit :
- power.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_out_min_relative()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum outflow
- description :
- Set to a value between 0 and 1 to force minimum `flow_out` as a fraction of the technology rated capacity. If non-zero and `cap_method` is `continuous`, this will force the technology to operate above its minimum value at every timestep.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Flow capacity per purchased unit
- description :
- Set the capacity of each integer unit of a technology purchased, if `cap_method` is `integer`.
- unit :
- $\frac{\text{power}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_in_eff()float64nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff'}
- coords_in_name :
- False
- title :
- Inflow efficiency
- description :
- Conversion efficiency from `source`/`flow_in` (tech dependent) into the technology. Set as value between 1 (no loss) and 0 (all lost).
- unit :
- fraction.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- flow_ramping()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Ramping rate
- description :
- limit maximum outflow / inflow / outflow - inflow (technology base class dependent) to a fraction of maximum capacity, which increases by that fraction at each timestep.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 1.0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- export_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum allowed carrier export
- description :
- If `carrier_export` is defined, limit the allowed export of produced carrier for a technology.
- unit :
- power.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- area_use_min()float64nan
- obj_type :
- parameters
- references :
- {'area_use'}
- coords_in_name :
- False
- title :
- Minimum usable area.
- description :
- Limits the lower bound of the `area_use` decision variable to this value.
- unit :
- $\text{area}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum storage capacity.
- description :
- Limit upper bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum storage capacity.
- description :
- Limit lower bound of `storage_cap` decision variable.
- unit :
- energy.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_cap_per_unit()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage capacity per purchased unit.
- description :
- Set the storage capacity of each integer unit of a technology purchased.
- unit :
- $\frac{\text{energy}}{\text{unit}}$.
- default :
- nan
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_discharge_depth()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage depth of discharge.
- description :
- Defines the minimum level of storage state of charge, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_initial()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Initial storage level.
- description :
- Set stored flow in device at the first timestep, as a fraction of total storage capacity.
- unit :
- fraction.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- storage_loss()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Storage loss rate
- description :
- Rate of storage loss per hour, used to calculate lost stored flow as `(1 - storage_loss)^hours_per_timestep`.
- unit :
- $\frac{\text{fraction}}{\text{hour}}$.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- cyclic_storage()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Cyclic storage switch.
- description :
- If true, link storage levels in the last model timestep with the first model timestep. `inter_cluster_storage` custom math must be included if using time clustering and setting this to `true`. This must be set to `false` if using `operate` mode.
- unit :
- boolean.
- default :
- True
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide minimum installed integer units of a technology.
- description :
- sets the lower bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- System-wide maximum installed integer units of a technology.
- description :
- sets the upper bound of the sum across all nodes of the decision variable `units` for a particular technology.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_min()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Minimum number of purchased units
- description :
- Limits the lower bound of units purchased if `cap_method` is `integer`.
- unit :
- integer.
- default :
- 0
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- purchased_units_max()float64nan
- obj_type :
- parameters
- references :
- set()
- coords_in_name :
- False
- title :
- Maximum number of purchased units.
- description :
- Limits the upper bound of units purchased if `cap_method` is `integer`. If set to `1`, will effectively set the `purchased_units` to a binary decision variable.
- unit :
- integer.
- default :
- inf
- original_dtype :
- float64
- is_result :
- 0
array(nan)
- sink_unit()float64nan
- obj_type :
- parameters
- references :
- {'area_use', 'balance_demand'}
- 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 0x7bbb7387d010>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x7bbb912474d0>, 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 0x7bbb912459b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb91247230>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb91245f60>], 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 0x7bbb71b32200>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b32ba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b33e00>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71baa890>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ba8210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bab8c0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71baba80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bab930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71babaf0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71baa0b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ba98d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ba9e80>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e5f0>], [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 0x7bbb71c8e660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e6d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8e740>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8fa10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8fa80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8faf0>], [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 0x7bbb71b30fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b32430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71c8fe70>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45ef0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a45fd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a46040>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a47310>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a47380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71a473f0>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bd06e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71bd0750>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 0x7bbb71b2acf0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2b070>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2ad60>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2a2e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b29e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b29fd0>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b29f60>, ... [[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 0x7bbb7191cc20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191cc90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191cd00>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191dfd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e0b0>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191e200>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191f4d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191f540>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7191f5b0>], [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 0x7bbb71c8fb60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71b2aeb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb737465f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73746350>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb737464a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb73745cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7387f380>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7387f0e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb912466d0>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc17f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc18d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1940>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc19b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1a20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1a90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1b70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1be0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1cc0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1d30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1e10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1e80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1ef0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc1fd0>]]], 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 0x7bbb719bc210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc2f0>], [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 0x7bbb719bc360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc3d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bc440>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bd710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bd780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bd7f0>], [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 0x7bbb719bea50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bee40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719beac0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad40c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad4130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad41a0>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad55c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad5630>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad56a0>], [nan, nan, nan, ..., nan, nan, nan], [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 0x7bbb71ad5710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad5780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad57f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6ac0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6b30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6ba0>], [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 0x7bbb71cc3930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc39a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc38c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3c40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3d90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71cc3a10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719beb30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb719bec80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71d2fb60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71d2fa10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6dd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6f90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7af0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7a80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7000>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7b60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad6d60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7150>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71ad7230>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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 0x7bbb7189aba0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ac10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ac80>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189a660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ae40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189a890>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189ad60>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189aeb0>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189acf0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb7189b2a0>, 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 0x7bbb717201a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71720210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71720280>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71721550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb717215c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x7bbb71721630>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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-06-27 09:31:04] INFO Optimisation model | starting model in plan mode.
[2025-06-27 09:31:04] INFO Backend: solver finished running. Time since start of solving optimisation problem: 0:00:00.183112
[2025-06-27 09:31:04] INFO Postprocessing: zero threshold of 1e-10 not required
[2025-06-27 09:31:04] INFO Postprocessing: ended. Time since start of solving optimisation problem: 0:00:00.248795
[2025-06-27 09:31:04] INFO Backend: model solve completed. Time since start of solving optimisation problem: 0:00:00.250191
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.dev6
applied_overrides:
scenario: None
defaults: {'bigM': 1000000000.0, 'objective_cost_wei...
... ...
name: Urban-scale example model
timestamp_model_creation: 1751016658.302937
timestamp_build_start: 1751016659.838172
timestamp_build_complete: 1751016664.397264
timestamp_solve_start: 1751016664.739946
timestamp_solve_complete: 1751016664.990137- 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.dev6
- applied_overrides :
- scenario :
- None
- defaults :
- {'bigM': 1000000000.0, 'objective_cost_weights': 1, 'spores_baseline_cost': inf, 'spores_slack': 0, 'spores_score': 0, '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 :
- 1751016658.302937
- timestamp_build_start :
- 1751016659.838172
- timestamp_build_complete :
- 1751016664.397264
- timestamp_solve_start :
- 1751016664.739946
- timestamp_solve_complete :
- 1751016664.990137
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