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-09-05 15:19:29] INFO Math init | loading pre-defined math.
[2025-09-05 15:19:29] INFO Math init | loading math files {'additional_math', 'storage_inter_cluster', 'base', 'milp', 'operate', 'spores'}.
[2025-09-05 15:19:29] INFO Model: preprocessing data
[2025-09-05 15:19:29] INFO Math build | building applied math with ['base', 'additional_math'].
[2025-09-05 15:19:30] INFO input data `color` not defined in model math; it will not be available in the optimisation problem.
[2025-09-05 15:19:30] INFO input data `name` not defined in model math; it will not be available in the optimisation problem.
[2025-09-05 15:19:30] INFO input data `color` not defined in model math; it will not be available in the optimisation problem.
[2025-09-05 15:19:30] INFO input data `name` not defined in model math; it will not be available in the optimisation problem.
[2025-09-05 15:19:30] INFO Model: initialisation complete
# Get information on the model
print(m.info())
[2025-09-05 15:19:30] WARNING /home/docs/checkouts/readthedocs.org/user_builds/calliope/conda/v0.7.0.dev7/lib/python3.12/site-packages/calliope/model.py:439: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. msize = dict(self.inputs.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.inputs and m.results are xarray Datasets.
m.inputs
<xarray.Dataset> Size: 86kB
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) bool 36B False False ... False
carrier_in (nodes, techs, carriers) bool 144B False ... ...
... ...
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- 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
- title :
- Interest rate.
- description :
- Used when computing levelized costs and technology depreciation_rate (relative to lifetime).
- default :
- 0
- resample_method :
- first
- unit :
- unitless
array([0.1])
- bigM()float641e+06
- title :
- Big M
- 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.
- default :
- 1000000.0
- resample_method :
- first
- unit :
- unitless
array(1000000.)
- objective_cost_weights(costs)float641.0
- title :
- Objective cost class weights.
- description :
- Weightings for cost classes to apply in the objective function.
- default :
- 1
- resample_method :
- first
- unit :
- unitless
array([1.])
- base_tech(techs)object'transmission' ... 'supply'
- 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.
- default :
- nan
- dtype :
- string
- resample_method :
- first
- one_of :
- ['demand', 'supply', 'conversion', 'storage', 'transmission']
- pivot_values_to_dim :
- None
array(['transmission', 'transmission', 'transmission', 'transmission', 'transmission', 'conversion', 'conversion', 'demand', 'demand', 'supply', 'supply', 'supply'], dtype=object) - carrier_export(techs, carriers)boolFalse False False ... False False
- title :
- 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`.
- default :
- False
- dtype :
- bool
- resample_method :
- first
- one_of :
- None
- pivot_values_to_dim :
- carriers
array([[False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [ True, False, False], [False, False, False], [False, False, False], [ True, False, False], [False, False, False], [False, False, False]]) - carrier_in(nodes, techs, carriers)boolFalse False True ... False False
- title :
- description :
- Carrier(s) consumed by this technology. Only `transmission`, `conversion`, `storage`, and `demand` technologies can define this parameter
- default :
- False
- dtype :
- bool
- resample_method :
- first
- one_of :
- None
- pivot_values_to_dim :
- carriers
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], [False, True, False], ... [False, True, False], [False, False, False], [ True, False, False], [False, False, True], [False, False, False], [False, False, False], [False, False, False]], [[False, False, False], [False, False, True], [False, False, False], [False, False, False], [ True, False, False], [False, True, False], [False, False, False], [ True, False, False], [False, False, True], [False, False, False], [False, False, False], [False, False, False]]]) - carrier_out(nodes, techs, carriers)boolFalse False True ... False False
- title :
- description :
- Carrier(s) produced by this technology. Only `transmission`, `conversion`, `storage`, and `supply` technologies can define this parameter
- default :
- False
- dtype :
- bool
- resample_method :
- first
- one_of :
- None
- pivot_values_to_dim :
- carriers
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, False, True], ... [False, False, True], [False, False, False], [False, False, False], [False, False, False], [ 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, False, True], [False, False, False], [False, False, False], [False, False, False], [ True, False, False], [False, True, False], [False, False, False]]]) - color(techs)object'#823739' '#823739' ... '#C5ABE3'
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
- title :
- Cost of flow capacity.
- description :
- Cost per unit of the decision variable `flow_cap`.
- default :
- 0
- resample_method :
- first
- unit :
- $\frac{\{cost}}{\text{power}}$
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
- title :
- Carrier outflow cost
- description :
- Cost per unit of `flow_out` in each timestep.
- default :
- 0
- resample_method :
- mean
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], ... [[[ nan, nan, nan, nan], [ nan, nan, nan, nan], [ nan, nan, nan, nan]]], [[[ nan, nan, -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
- title :
- Maximum rated flow capacity.
- description :
- Limits `flow_cap` to a maximum.
- default :
- inf
- resample_method :
- first
- unit :
- power.
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
- 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).
- default :
- 1.0
- resample_method :
- mean
- unit :
- unitless.
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
- title :
- Heat to power ratio for CHP
- description :
- Ratio of heat output to electricity output for combined heat and power (CHP) technology.
- default :
- 1
- resample_method :
- first
- unit :
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
- title :
- Technology lifetime
- description :
- Must be defined if fixed capital costs are defined. A reasonable value for many technologies is around 20-25 years.
- default :
- inf
- resample_method :
- mean
- unit :
- years.
array([25., 25., 25., 25., 25., 25., 25., nan, nan, 25., 25., 25.])
- name(techs)object'District heat distribution' ......
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
- title :
- Maximum usable area.
- description :
- If set to a finite value, limits the upper bound of the `area_use` decision variable to this value.
- default :
- inf
- resample_method :
- first
- unit :
- $\text{area}$
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
- 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`).
- default :
- nan
- resample_method :
- first
- unit :
- $\frac{\text{area}}{\text{power}}$
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
- 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).
- default :
- 1.0
- resample_method :
- mean
- unit :
- unitless.
array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, 0.85, nan, nan]) - source_unit(techs)objectnan nan nan ... 'per_area' nan nan
- 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.
- default :
- absolute
- dtype :
- string
- resample_method :
- first
- one_of :
- ['absolute', 'per_area', 'per_cap']
- pivot_values_to_dim :
- None
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
- title :
- Carrier inflow cost.
- description :
- Cost per unit of `flow_in` in each timestep. Also used as the cost per unit of `source_use` in `supply` technologies.
- default :
- 0
- resample_method :
- mean
- unit :
- $\frac{\{cost}}{\text{energy}}$
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
- 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`.
- default :
- inf
- resample_method :
- sum
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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
- 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.
- default :
- 0
- resample_method :
- first
- unit :
- $\frac{\{cost}}{\text{power}\times\text{distance}}$
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
- 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.
- default :
- 1.0
- resample_method :
- mean
- unit :
- distance.
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
- 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).
- default :
- 1.0
- resample_method :
- mean
- unit :
- $\frac{\text{1}}{\text{distance}}$
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
- title :
- Carrier export cost.
- description :
- Cost per unit of `flow_export` in each timestep. Usually used in the negative sense, as a subsidy.
- default :
- 0
- resample_method :
- mean
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], ..., [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ... [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], ..., [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]], [[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ 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
- 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).
- default :
- 0
- resample_method :
- first
- unit :
- $\frac{\{cost}}{\text{power}}$
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
- title :
- Available area
- description :
- Available area for resource area use by all technologies at a node.
- default :
- inf
- resample_method :
- mean
- unit :
- area.
array([ nan, 500., 1300., 900.])
- latitude(nodes)float6451.45 51.46 51.47 51.43
- title :
- Latitude (WGS84 / EPSG4326).
- description :
- default :
- nan
- dtype :
- float
- resample_method :
- mean
- one_of :
- None
- pivot_values_to_dim :
- None
array([51.4450766, 51.4596158, 51.4652373, 51.4287016])
- longitude(nodes)float64-0.1247 -0.1613 -0.1142 -0.1311
- title :
- Longitude (WGS84 / EPSG4326).
- description :
- default :
- nan
- dtype :
- float
- resample_method :
- mean
- one_of :
- None
- pivot_values_to_dim :
- None
array([-0.1247183, -0.1613446, -0.1141548, -0.1310635])
- source_use_equals(techs, timesteps)float64nan nan nan nan ... nan nan nan nan
- 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`.
- default :
- nan
- resample_method :
- sum
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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
- title :
- Required sink use.
- description :
- Required amount of carrier removal from the system (e.g., electricity demand, transport distance). Unit dictated by `source_unit`.
- default :
- nan
- resample_method :
- sum
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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
- title :
- description :
- Whether a technology is defined with particular carriers and at a particular node.
- default :
- False
- dtype :
- bool
- resample_method :
- first
- one_of :
- None
- pivot_values_to_dim :
- None
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
- title :
- Resolution per timestep.
- description :
- default :
- 1
- resample_method :
- sum
- unit :
- hours.
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
- title :
- Weight per timestep.
- description :
- default :
- 1
- resample_method :
- mean
- unit :
- unitless.
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))
Until we solve the model, results is empty.
m.results
<xarray.Dataset> Size: 0B
Dimensions: ()
Data variables:
*empty*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-09-05 15:19:30] INFO Model: backend build starting
[2025-09-05 15:19:30] INFO Optimisation Model | parameters/lookups | Generated.
[2025-09-05 15:19:30] INFO Optimisation Model | variables | Generated.
[2025-09-05 15:19:31] INFO Optimisation Model | global_expressions | Generated.
[2025-09-05 15:19:32] INFO Optimisation Model | constraints | Generated.
[2025-09-05 15:19:32] INFO Optimisation Model | piecewise_constraints | Generated.
[2025-09-05 15:19:32] INFO Optimisation Model | objectives | Generated.
[2025-09-05 15:19:32] 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: 774kB
Dimensions: (techs: 12, nodes: 4, costs: 1,
carriers: 3, timesteps: 48)
Coordinates:
* techs (techs) object 96B 'N1_to_X2' ......
* nodes (nodes) object 32B 'N1' ... 'X3'
* costs (costs) object 8B 'monetary'
* carriers (carriers) object 24B 'electricit...
* timesteps (timesteps) datetime64[ns] 384B 2...
Data variables: (12/132)
area_use_max (techs) object 96B nan nan ... nan
area_use_min float64 8B nan
area_use_per_flow_cap (techs) object 96B nan nan ... nan
available_area (nodes) object 32B nan ... parame...
bigM object 8B parameters[bigM][0]
cost_flow_cap_per_distance (techs, costs) object 96B paramet...
... ...
symmetric_transmission (nodes, techs) object 384B constr...
export_balance (nodes, techs, carriers, timesteps) object 55kB ...
ramping_up float64 8B nan
ramping_down float64 8B nan
link_chp_outputs (nodes, techs, timesteps) object 18kB ...
min_cost_optimisation object 8B objectives[min_cost_opt...- techs: 12
- nodes: 4
- costs: 1
- carriers: 3
- timesteps: 48
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
- obj_type :
- dimensions
- title :
- Technologies
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- tech
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) - nodes(nodes)object'N1' 'X1' 'X2' 'X3'
- obj_type :
- dimensions
- title :
- Geographic spatial nodes
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- node
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- costs(costs)object'monetary'
- obj_type :
- dimensions
- title :
- Cost classes
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- cost
array(['monetary'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
- obj_type :
- dimensions
- title :
- Energy / commodity carriers
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- carrier
array(['electricity', 'gas', 'heat'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
- obj_type :
- dimensions
- title :
- Time steps
- description :
- active :
- True
- dtype :
- datetime
- ordered :
- True
- iterator :
- timestep
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_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.
- default :
- inf
- unit :
- $\text{area}$
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1ff10870>, nan, nan], dtype=object) - 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.
- default :
- 0
- unit :
- $\text{area}$
array(nan)
- 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`).
- default :
- nan
- unit :
- $\frac{\text{area}}{\text{power}}$
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1ff10e10>, 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
- description :
- Available area for resource area use by all technologies at a node.
- default :
- inf
- unit :
- area.
array([nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1ff137a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dedf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfde0>], dtype=object) - bigM()objectparameters[bigM][0]
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Big M
- 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.
- default :
- 1000000.0
- unit :
- unitless
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200de580>, 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.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}\times\text{distance}}$
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfb10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200de5d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dcdc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfe80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200decb0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object) - 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`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{unit}\times\text{distance}}$
array(nan)
- 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`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}}$
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 0x703c1ff10690>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200df840>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfca0>, 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.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], ..., [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], ..., [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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_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).
- default :
- 0
- unit :
- unitless
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fda7250>], 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).
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}}$
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 0x703c1fe58460>], [nan], [nan]]], dtype=object) - 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 an additional cost to total investment costs (except `cost_om_annual`) that is a fraction of that total.
- default :
- 0
- unit :
- unitless.
array(nan)
- 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. Also used as the cost per unit of `source_use` in `supply` technologies.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[nan], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5a760>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5a260>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5a440>]], 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_out` in each timestep.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], ... [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5aee0>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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_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`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{unit}}$
array(nan)
- cost_area_use()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_area_use'}
- coords_in_name :
- False
- title :
- Cost of area use.
- description :
- Cost per unit `area_use`.
- default :
- 0
- unit :
- $\text{area}$
array(nan)
- cost_source_cap()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_source_cap'}
- coords_in_name :
- False
- title :
- Cost of source flow capacity.
- description :
- Cost per unit `source_cap`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}}$
array(nan)
- cost_storage_cap()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_storage_cap'}
- 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".
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
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`.
- default :
- 1
- unit :
- unitless.
array(nan)
- distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff', 'cost_investment_flow_cap', '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.
- default :
- 1.0
- unit :
- distance.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddc910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddcaa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddcaf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddcb40>, nan, nan, nan, nan, nan, nan, nan], dtype=object) - export_max()float64nan
- obj_type :
- parameters
- references :
- {'flow_export'}
- 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.
- default :
- inf
- unit :
- power.
array(nan)
- export_min()float64nan
- obj_type :
- parameters
- references :
- {'flow_export'}
- coords_in_name :
- False
- title :
- Minimum allowed carrier export
- description :
- If `carrier_export` is defined, set a lower bound on the amount of produced carrier that _must_ be exported for a technology.
- default :
- 0
- unit :
- power.
array(nan)
- flow_cap_per_storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_per_storage_capacity_min'}
- coords_in_name :
- False
- title :
- Minimum flow capacity per storage capacity
- description :
- ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).
- default :
- 0
- unit :
- $\text{hour}^{-1}$
array(nan)
- flow_cap_per_storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_per_storage_capacity_max'}
- coords_in_name :
- False
- title :
- Maximum flow capacity per storage capacity
- description :
- ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).
- default :
- inf
- unit :
- $\text{hour}^{-1}$
array(nan)
- flow_cap_max(techs, carriers, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_cap', 'force_zero_area_use'}
- coords_in_name :
- False
- title :
- Maximum rated flow capacity.
- description :
- Limits `flow_cap` to a maximum.
- default :
- inf
- unit :
- power.
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddddb0>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddde00>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddde50>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddea0>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddf40>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddd590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddd540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddda40>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddae0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddd10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddd60>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddda90>, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], dtype=object) - flow_cap_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_systemwide_max'}
- 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.
- default :
- inf
- unit :
- power or $\frac{\text{power}}{\text{unit}}$
array(nan)
- flow_cap_min()float64nan
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
- title :
- Minimum rated flow capacity.
- description :
- Limits `flow_cap` to a minimum. NOTE: this will _force_ `flow_cap` to a minimum value unless `cap_method` is set to `integer`. If `cap_method=integer`, this will be scaled by the number of integer units of a technology purchased.
- default :
- 0
- unit :
- power or $\frac{\text{power}}{\text{unit}}$
array(nan)
- flow_cap_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_systemwide_min'}
- 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`.
- default :
- 0
- unit :
- power.
array(nan)
- flow_out_min_relative()float64nan
- obj_type :
- parameters
- references :
- {'flow_out_min'}
- 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.
- default :
- 0
- unit :
- unitless.
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`.
- default :
- inf
- unit :
- $\frac{\text{power}}{\text{unit}}$
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).
- default :
- 1.0
- unit :
- unitless.
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).
- default :
- 1.0
- unit :
- $\frac{\text{1}}{\text{distance}}$
array(nan)
- 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).
- default :
- 1.0
- unit :
- unitless.
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdded50>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde440>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddef30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddef80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddec60>, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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).
- default :
- 1.0
- unit :
- $\frac{\text{1}}{\text{distance}}$
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddd090>, nan, nan, nan, nan, nan, nan, nan, nan, nan], dtype=object) - flow_out_parasitic_eff(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_out_max', 'flow_out_inc_eff'}
- 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).
- default :
- 1.0
- unit :
- unitless.
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde800>, nan, nan], dtype=object) - flow_ramping()float64nan
- obj_type :
- parameters
- references :
- {'ramping_down', 'ramping_up'}
- 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.
- default :
- 1.0
- unit :
- $\frac{1}{\text{hour}}$
array(nan)
- 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.
- default :
- inf
- unit :
- years.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddfd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddfe80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddff70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddffc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd18050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd180a0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd180f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd18140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd18190>], dtype=object) - objective_cost_weights(costs)objectparameters[objective_cost_weight...
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Objective cost class weights.
- description :
- Weightings for cost classes to apply in the objective function.
- default :
- 1
- unit :
- unitless
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddfcf0>], dtype=object) - 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.
- default :
- 0
- unit :
- integer.
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.
- default :
- inf
- unit :
- integer.
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`.
- default :
- 0
- unit :
- integer.
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.
- default :
- inf
- unit :
- integer.
array(nan)
- sink_use_min()float64nan
- obj_type :
- parameters
- references :
- {'balance_demand_min_use'}
- 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 `source_unit`.
- default :
- 0
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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 `source_unit`.
- default :
- inf
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
array(nan)
- sink_use_equals(timesteps, techs, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'balance_demand', 'balance_demand_min_use'}
- 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 `source_unit`.
- default :
- nan
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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) - 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).
- default :
- 1.0
- unit :
- unitless.
array(nan)
- source_use_min()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_min_use'}
- 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`.
- default :
- 0
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
array(nan)
- 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`.
- default :
- inf
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbf1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbf750>], dtype=object) - source_use_equals(techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'balance_supply_min_use', '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`.
- default :
- nan
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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 0x703c26bb8910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb89b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8a00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8a50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8aa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8b40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8b90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8be0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8c30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8c80>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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_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.
- default :
- inf
- unit :
- power.
array(nan)
- source_cap_min()float64nan
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- title :
- Minimum installed source consumption capacity
- description :
- Lower limit on `source_cap` decision variable.
- default :
- 0
- unit :
- power.
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.
- default :
- inf
- unit :
- energy.
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.
- default :
- 0
- unit :
- energy.
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.
- default :
- inf
- unit :
- $\frac{\text{energy}}{\text{unit}}$
array(nan)
- storage_discharge_depth()float64nan
- obj_type :
- parameters
- references :
- {'storage_discharge_depth_limit'}
- 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.
- default :
- 0
- unit :
- unitless.
array(nan)
- storage_initial()float64nan
- obj_type :
- parameters
- references :
- {'set_storage_initial'}
- 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.
- default :
- 0
- unit :
- unitless.
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`.
- default :
- 0
- unit :
- $\frac{\text{1}}{\text{hour}}$
array(nan)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'cost_operation_fixed', 'cost_investment_annualised', 'source_max', 'flow_in_max', 'flow_out_max'}
- coords_in_name :
- False
- title :
- Resolution per timestep.
- description :
- default :
- 1
- unit :
- hours.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb92c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9d10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9d60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9db0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9e00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9e50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9ea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9fe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba0d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba120>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba170>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba210>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba260>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba5d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba6c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba9e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaa30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaa80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbab20>], 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 :
- Weight per timestep.
- description :
- default :
- 1
- unit :
- unitless.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaf30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbafd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb0c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb2f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb3e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb4d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb520>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb890>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb8e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb930>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb980>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb9d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbba20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbba70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbac0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbb10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbb60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbc50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbcf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbd90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbde0>], 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 :
- Heat to power ratio for CHP
- description :
- Ratio of heat output to electricity output for combined heat and power (CHP) technology.
- default :
- 1
- unit :
array([nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbfb60>, nan, nan, nan, nan, nan], dtype=object) - base_tech(techs)object'transmission' ... 'supply'
- obj_type :
- lookups
- references :
- {'storage_cap', 'source_use', 'source_cap', 'balance_conversion', 'balance_demand_min_use', 'cost_investment_flow_cap', 'balance_supply_no_storage', 'balance_transmission', 'balance_supply_with_storage', 'symmetric_transmission', 'balance_supply_min_use', 'flow_in_inc_eff', 'balance_demand', 'flow_out_inc_eff', 'link_flow_cap', 'balance_storage', 'cost_operation_variable', 'storage'}
- 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.
- default :
- nan
- dtype :
- string
array(['transmission', 'transmission', 'transmission', 'transmission', 'transmission', 'conversion', 'conversion', 'demand', 'demand', 'supply', 'supply', 'supply'], dtype=object) - carrier_in(nodes, techs, carriers)boolFalse False True ... False False
- obj_type :
- lookups
- references :
- {'flow_in', 'flow_in_max'}
- coords_in_name :
- False
- title :
- description :
- Carrier(s) consumed by this technology. Only `transmission`, `conversion`, `storage`, and `demand` technologies can define this parameter
- default :
- False
- dtype :
- bool
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], [False, True, False], ... [False, True, False], [False, False, False], [ True, False, False], [False, False, True], [False, False, False], [False, False, False], [False, False, False]], [[False, False, False], [False, False, True], [False, False, False], [False, False, False], [ True, False, False], [False, True, False], [False, False, False], [ True, False, False], [False, False, True], [False, False, False], [False, False, False], [False, False, False]]]) - carrier_out(nodes, techs, carriers)boolFalse False True ... False False
- obj_type :
- lookups
- references :
- {'flow_out', 'flow_out_max'}
- coords_in_name :
- False
- title :
- description :
- Carrier(s) produced by this technology. Only `transmission`, `conversion`, `storage`, and `supply` technologies can define this parameter
- default :
- False
- dtype :
- bool
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, False, True], ... [False, False, True], [False, False, False], [False, False, False], [False, False, False], [ 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, False, True], [False, False, False], [False, False, False], [False, False, False], [ True, False, False], [False, True, False], [False, False, False]]]) - carrier_export(techs, carriers)boolFalse False False ... False False
- obj_type :
- lookups
- references :
- {'flow_export'}
- coords_in_name :
- False
- title :
- 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`.
- default :
- False
- dtype :
- bool
array([[False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [False, False, False], [ True, False, False], [False, False, False], [False, False, False], [ True, False, False], [False, False, False], [False, False, False]]) - cap_method()<U10'continuous'
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- Capacity method switch.
- description :
- One of 'continuous' (LP model) or 'integer' (integer/binary unit capacity).
- default :
- continuous
- dtype :
- string
array('continuous', dtype='<U10') - cluster_first_timestep()boolFalse
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- Cluster first timestep.
- description :
- If true, the timestep is the first in the given clustered day.
- default :
- False
- dtype :
- bool
array(False)
- definition_matrix(nodes, techs, carriers)boolFalse False True ... False False
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Whether a technology is defined with particular carriers and at a particular node.
- default :
- False
- dtype :
- bool
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]]]) - integer_dispatch()boolFalse
- obj_type :
- lookups
- 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`.
- default :
- False
- dtype :
- bool
array(False)
- include_storage()boolFalse
- obj_type :
- lookups
- references :
- {'storage_cap', 'balance_conversion', 'balance_supply_no_storage', 'balance_storage', 'storage'}
- coords_in_name :
- False
- title :
- Storage method switch.
- description :
- When true, math will be triggered to allow discontinuous carrier inflow and outflows across timesteps.
- default :
- False
- dtype :
- bool
array(False)
- force_async_flow()boolFalse
- obj_type :
- lookups
- 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.
- default :
- False
- dtype :
- bool
array(False)
- cyclic_storage()boolTrue
- obj_type :
- lookups
- references :
- {'set_storage_initial'}
- 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.
- default :
- True
- dtype :
- bool
array(True)
- sink_unit()<U8'absolute'
- obj_type :
- lookups
- 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.
- default :
- absolute
- dtype :
- string
array('absolute', dtype='<U8') - source_unit(techs)objectnan nan nan ... 'per_area' nan nan
- obj_type :
- lookups
- 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.
- default :
- absolute
- dtype :
- string
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, 'per_area', nan, nan], dtype=object) - source_cap_equals_flow_cap()boolFalse
- obj_type :
- lookups
- references :
- {'source_capacity_equals_flow_capacity'}
- 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.
- default :
- False
- dtype :
- bool
array(False)
- one_way()boolFalse
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- One way transmission.
- description :
- Forces a transmission technology to only move flow in one direction on the link, i.e. from `from` to `to`.
- default :
- False
- dtype :
- bool
array(False)
- lookup_cluster_last_timestep()float64nan
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- The last timestep of each cluster.
- default :
- nan
- dtype :
- datetime
array(nan)
- latitude(nodes)float6451.45 51.46 51.47 51.43
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- Latitude (WGS84 / EPSG4326).
- description :
- default :
- nan
- dtype :
- float
array([51.4450766, 51.4596158, 51.4652373, 51.4287016])
- longitude(nodes)float64-0.1247 -0.1613 -0.1142 -0.1311
- obj_type :
- lookups
- references :
- set()
- coords_in_name :
- False
- title :
- Longitude (WGS84 / EPSG4326).
- description :
- default :
- nan
- dtype :
- float
array([-0.1247183, -0.1613446, -0.1141548, -0.1310635])
- flow_cap(nodes, techs, carriers)objectnan nan ... nan nan
- obj_type :
- variables
- references :
- {'cost_investment_flow_cap', 'cost_operation_fixed', 'symmetric_transmission', 'flow_in_max', 'flow_out_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.
- unit :
- power
- default :
- 0
- domain :
- real
array([[[nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200621d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200619d0>], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20062fd0>], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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 0x703c20062250>], ... [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff746d0>], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff74850>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff747d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff74750>], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff744d0>, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff74650>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff745d0>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff74550>, 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.
- unit :
- power
- default :
- 0
- domain :
- real
array([<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff75050>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff75dd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff74450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff75e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1ff766d0>, nan, nan, nan, nan, nan, nan, nan], dtype=object) - flow_out(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'export_balance', 'flow_out_max', 'flow_out_inc_eff', 'system_balance', 'link_chp_outputs', 'cost_operation_variable'}
- 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.
- unit :
- energy
- default :
- 0
- domain :
- real
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2008b9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2008a8d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2008acd0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200908d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20092350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20090c50>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20091f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200922d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20090a50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2006ff50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2006e450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2006e750>]], ... ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4035d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e403650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4036d0>], [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 0x703c1e403750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4037d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e403850>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e408e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e408ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e408f50>], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object) - flow_in(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- variables
- references :
- {'system_balance', 'flow_in_max', 'flow_in_inc_eff', '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.
- unit :
- energy
- default :
- 0
- domain :
- real
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20093cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20090ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20093f50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200914d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20090fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200917d0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20091750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20091350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20091cd0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c2008a150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c20088150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c200886d0>]], ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1fed2850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1fed28d0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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', 'export_balance', 'cost_operation_variable'}
- coords_in_name :
- False
- title :
- Carrier export
- description :
- The flow of a carrier exported outside the system boundaries by a technology per timestep.
- unit :
- energy
- default :
- 0
- domain :
- real
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 0x703c1e4b2150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4b21d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4b2250>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4b37d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4b3850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4b38d0>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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 :
- {'force_zero_area_use', 'source_availability_supply', 'cost_investment_area_use', 'area_use_per_flow_capacity', 'area_use_capacity_per_loc'}
- 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.
- unit :
- area
- default :
- 0
- domain :
- real
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 0x703c1feba7d0>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1feb9850>, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1feba050>, 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.
- unit :
- energy
- default :
- 0
- domain :
- real
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 0x703c1feb81d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1feb8250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1feb8b50>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47e950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47e9d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47ea50>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47ead0>, ... [[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 0x703c1e4f0bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f0c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f0cd0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f2250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f22d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f2350>], [<calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f23d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f2450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f24d0>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f3a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f3ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f3b50>], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - source_cap(nodes, techs)objectnan nan ... nan
- obj_type :
- variables
- references :
- {'source_max', 'cost_investment_source_cap', 'source_capacity_equals_flow_capacity'}
- 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.
- unit :
- power
- default :
- 0
- domain :
- real
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 0x703c1e4f4e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f44d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f4d50>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f42d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f4fd0>, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f49d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4f5150>, nan]], dtype=object) - storage_cap()float64nan
- obj_type :
- variables
- references :
- {'flow_capacity_per_storage_capacity_max', 'cost_investment_storage_cap', 'flow_capacity_per_storage_capacity_min'}
- coords_in_name :
- False
- title :
- Stored carrier capacity
- description :
- The upper limit on a carrier that can be stored by a technology in any timestep.
- unit :
- energy
- default :
- 0
- domain :
- real
array(nan)
- storage()float64nan
- obj_type :
- variables
- references :
- {'storage_max', 'set_storage_initial', 'balance_supply_with_storage', 'storage_discharge_depth_limit'}
- coords_in_name :
- False
- title :
- Stored carrier
- description :
- The carrier stored by a `storage` technology in each timestep.
- unit :
- energy
- default :
- 0
- domain :
- real
array(nan)
- 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.
- unit :
- energy
- default :
- 0
- domain :
- real
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 0x703c1e47db50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47e250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47dc50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e47ded0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e39f950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e39f650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e332150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e332650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e332250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e331f50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e332450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e3327d0>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2382d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238350>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2383d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2384d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2385d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2386d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2387d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2388d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2389d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238bd0>]]], 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).
- unit :
- energy
- default :
- 0
- domain :
- real
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 0x703c1e23a0d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e23a150>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2395d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238fd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e239850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e239cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e23a750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e239ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e239250>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2392d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e23a450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e238f50>, ... <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284450>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2844d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284550>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2845d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284650>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2846d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2847d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284850>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2848d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284950>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e2849d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284a50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284ad0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284b50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284bd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284c50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284cd0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e284d50>]]], dtype=object) - flow_out_inc_eff(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- global_expressions
- references :
- {'balance_conversion', 'balance_supply_no_storage', 'balance_transmission'}
- coords_in_name :
- False
- title :
- Carrier outflow including losses
- description :
- Outflows after taking efficiency losses into account.
- unit :
- energy
- default :
- 0
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e22d840>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e22ecb0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e22d6c0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e154550>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e1545b0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e154610>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e154670>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e1546d0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e154730>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e155750>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e1557b0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e155810>]], ... ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e101fc0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e102020>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e102080>], [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 0x703c1e403750>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e4037d0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e403850>, ..., <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e408e50>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e408ed0>, <calliope.backend.pyomo_backend_model.ObjVariable object at 0x703c1e408f50>], [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_conversion', 'balance_transmission'}
- coords_in_name :
- False
- title :
- Carrier inflow including losses
- description :
- Inflows after taking efficiency losses into account.
- unit :
- energy
- default :
- 0
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e1e46d0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e1e4820>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e1e4160>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e083100>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e083130>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e083160>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e083190>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e0831c0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e0831f0>, ..., <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e083a00>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e3c31c0>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e22cdf0>]], ... <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e15f400>, <pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e15f5b0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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.
- unit :
- $\frac{\text{cost}}{\text{hour}}$
- 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]], [[<pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e261f00>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e261d80>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e17b130>, ..., <pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e4eef50>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e4ef250>, <pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e4ef970>]], [[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.
- unit :
- cost
- default :
- 0
array([[[[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff6f50>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff6da0>]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff5cc0>]], [[nan], [nan], [nan]], [[nan], [nan], [nan]], ... [[nan], [nan], [nan]], [[nan], [nan], [nan]], [[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf04f0>], [nan], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf0850>], [nan]], [[nan], [nan], [nan]]]], dtype=object) - cost_investment_storage_cap()float64nan
- obj_type :
- global_expressions
- references :
- {'cost_investment'}
- coords_in_name :
- False
- title :
- Storage capacity investment costs
- description :
- The investment costs associated with the storage capacity of a technology.
- unit :
- cost
- default :
- 0
array(nan)
- cost_investment_source_cap()float64nan
- obj_type :
- global_expressions
- references :
- {'cost_investment'}
- coords_in_name :
- False
- title :
- Source flow capacity investment costs
- description :
- The investment costs associated with the source consumption capacity of a technology.
- unit :
- cost
- default :
- 0
array(nan)
- cost_investment_area_use()float64nan
- obj_type :
- global_expressions
- references :
- {'cost_investment'}
- coords_in_name :
- False
- title :
- Area utilisation investment costs
- description :
- The investment costs associated with the area used by a technology.
- unit :
- cost
- default :
- 0
array(nan)
- 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, and storage size.
- unit :
- cost
- default :
- 0
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff6f50>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff6da0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff5cc0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff40a0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff6cb0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff5990>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff7340>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf3130>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf20b0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf2e60>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff4100>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fff4130>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf2680>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf04f0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1fdf0850>], [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.
- unit :
- cost
- default :
- 0
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e493bb0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e385c60>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386380>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386410>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386350>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e385f60>], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e385c30>], ... [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e3864a0>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e3865f0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386650>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e3866b0>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386710>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386770>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e3867d0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386830>], [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.
- unit :
- cost
- 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], [<pyomo.core.expr.numeric_expr.ProductExpression object at 0x703c1e32ea70>], [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.
- unit :
- cost
- default :
- 0
array([[[<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e493bb0>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e385c60>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386380>], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], [[nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386410>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386350>], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e385f60>], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32d540>], ... [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32e380>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32d0f0>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32d000>], [nan]], [[nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e3866b0>], [nan], [nan], [<pyomo.core.expr.numeric_expr.MonomialTermExpression object at 0x703c1e386710>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32d060>], [nan], [nan], [nan], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32c790>], [<pyomo.core.expr.numeric_expr.SumExpression object at 0x703c1e32d210>], [nan]]], dtype=object) - flow_capacity_per_storage_capacity_min()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound of storage flow capacity relative to its storage capacity.
array(nan)
- flow_capacity_per_storage_capacity_max()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of storage flow capacity relative to its storage capacity.
array(nan)
- source_capacity_equals_flow_capacity()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set a `supply` technology's flow capacity to equal its source capacity.
array(nan)
- force_zero_area_use()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set a technology's area use to zero if its flow capacity upper bound is zero.
array(nan)
- 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
- title :
- description :
- Set a fixed relationship between a technology's flow capacity and its area use.
array([[[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], ... [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c2005e3c0>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x703c1ffc60b0>, 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
- title :
- description :
- Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.
array([nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc62e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc3bd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc3070>], dtype=object) - flow_capacity_systemwide_max()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set an upper bound on flow capacity of a technology across all nodes in which the technology exists.
array(nan)
- flow_capacity_systemwide_min()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set a lower bound on flow capacity of a technology across all nodes in which the technology exists.
array(nan)
- balance_conversion(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between a `conversion` technology's outflow and consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - flow_out_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of a technology's outflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0de190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0ddd30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0de040>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0dee40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0deeb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0def20>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0def90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0df000>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0df070>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e2d83d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e2d8440>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e2d84b0>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e040130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0401a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e040210>], [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 0x703c1e040280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0402f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e040360>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041630>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0416a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041710>], [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_min()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound of a technology's outflow.
array(nan)
- flow_in_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of a technology's inflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e042740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e042d60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e042ac0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e82f0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e83d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8440>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e9710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e9780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e97f0>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1de6a430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1de6a4a0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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
- title :
- description :
- Set the upper bound of a `supply` technology's source consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0417f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc17f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc3e70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc2f90>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc2900>, ... [[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 0x703c1e142270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1422e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e142350>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143700>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1437e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143850>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84bb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84c20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84c90>], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - storage_max()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of the amount of carrier a technology can store.
array(nan)
- storage_discharge_depth_limit()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound of the stored carrier a technology must keep in reserve at all times.
array(nan)
- system_balance(nodes, carriers, timesteps)objectnan ... constraints[system_balan...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87c40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87a10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87d90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff85a20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff859b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff877e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87700>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3b60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3bd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3c40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3cb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3d20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3d90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3e70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3ee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3f50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc0c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc1a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc2f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc3d0>]]], 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
- title :
- description :
- Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object) - balance_demand_min_use()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound on the quantity of flow a `demand` technology must dump to its sink in each timestep.
array(nan)
- 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
- title :
- description :
- Fix the outflow of a `supply` technology to its consumption of the available source.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df21f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df21fd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df22040>], [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 0x703c1df220b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df22120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df22190>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23460>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df234d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23540>], [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_with_storage()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the outflow of a `supply` technology to its consumption of the available source, with a storage buffer to temporally offset the outflow from source consumption.
array(nan)
- source_availability_supply(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfd710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfd860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfd780>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfea50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfeac0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfeb30>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfff50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd80050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd800c0>], [nan, nan, nan, ..., nan, nan, nan], [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 0x703c1dd80130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd801a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd80210>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd814e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd815c0>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - balance_supply_min_use()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound on the quantity of its source a `supply` technology must use in each timestep.
array(nan)
- balance_storage()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the quantity of carrier stored in a `storage` technology at the end of each timestep based on the net flow of carrier charged and discharged and the quantity of carrier stored at the start of the timestep.
array(nan)
- set_storage_initial()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between carrier stored in a `storage` technology at the start and end of the whole model period.
array(nan)
- balance_transmission(techs, timesteps)objectconstraints[balance_transmission...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df235b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23cb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df238c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81fd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd820b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd824a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd825f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd826d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd827b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82890>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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
- title :
- description :
- Fix the flow capacity of two `transmission` technologies representing the same link in the system.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd819b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81d30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81ef0>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81a90>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81f60>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81940>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81c50>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81cc0>, 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
- title :
- description :
- Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., [[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86c80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86c10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86cf0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff85010>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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) - ramping_up()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound on a technology's ability to ramp outflow up beyond a certain percentage compared to the previous timestep.
array(nan)
- ramping_down()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound on a technology's ability to ramp outflow down beyond a certain percentage compared to the previous timestep.
array(nan)
- link_chp_outputs(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between heat and electricity output
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - min_cost_optimisation()objectobjectives[min_cost_optimisation...
- obj_type :
- objectives
- references :
- set()
- coords_in_name :
- False
- title :
- 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
array(<pyomo.core.kernel.objective.objective object at 0x703c1ff15070>, 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')) - nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- 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: 85kB
Dimensions: (techs: 12, nodes: 4, costs: 1,
carriers: 3, timesteps: 48)
Coordinates:
* techs (techs) object 96B 'N1_to_X2' ... 'su...
* nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3'
* costs (costs) object 8B 'monetary'
* carriers (carriers) object 24B 'electricity' ....
* timesteps (timesteps) datetime64[ns] 384B 2005-...
Data variables: (12/60)
area_use_max (techs) object 96B nan nan ... nan nan
area_use_min float64 8B nan
area_use_per_flow_cap (techs) object 96B nan nan ... nan nan
available_area (nodes) object 32B nan ... parameters...
bigM object 8B parameters[bigM][0]
cost_flow_cap_per_distance (techs, costs) object 96B parameters[...
... ...
storage_discharge_depth float64 8B nan
storage_initial float64 8B nan
storage_loss float64 8B nan
timestep_resolution (timesteps) object 384B parameters[ti...
timestep_weights (timesteps) object 384B parameters[ti...
heat_to_power_ratio (techs) object 96B nan nan ... nan nan- techs: 12
- nodes: 4
- costs: 1
- carriers: 3
- timesteps: 48
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
- obj_type :
- dimensions
- title :
- Technologies
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- tech
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) - nodes(nodes)object'N1' 'X1' 'X2' 'X3'
- obj_type :
- dimensions
- title :
- Geographic spatial nodes
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- node
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- costs(costs)object'monetary'
- obj_type :
- dimensions
- title :
- Cost classes
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- cost
array(['monetary'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
- obj_type :
- dimensions
- title :
- Energy / commodity carriers
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- carrier
array(['electricity', 'gas', 'heat'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
- obj_type :
- dimensions
- title :
- Time steps
- description :
- active :
- True
- dtype :
- datetime
- ordered :
- True
- iterator :
- timestep
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_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.
- default :
- inf
- unit :
- $\text{area}$
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1ff10870>, nan, nan], dtype=object) - 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.
- default :
- 0
- unit :
- $\text{area}$
array(nan)
- 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`).
- default :
- nan
- unit :
- $\frac{\text{area}}{\text{power}}$
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1ff10e10>, 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
- description :
- Available area for resource area use by all technologies at a node.
- default :
- inf
- unit :
- area.
array([nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1ff137a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dedf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfde0>], dtype=object) - bigM()objectparameters[bigM][0]
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Big M
- 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.
- default :
- 1000000.0
- unit :
- unitless
array(<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200de580>, 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.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}\times\text{distance}}$
array([[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfb10>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200de5d0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dcdc0>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfe80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200decb0>], [nan], [nan], [nan], [nan], [nan], [nan], [nan]], dtype=object) - 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`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{unit}\times\text{distance}}$
array(nan)
- 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`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}}$
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 0x703c1ff10690>]], [[nan, nan, nan]], [[nan, nan, nan]], [[nan, nan, nan]], [[<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200df840>, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c200dfca0>, 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.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], ..., [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], ..., [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], [[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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_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).
- default :
- 0
- unit :
- unitless
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fda7250>], 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).
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}}$
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 0x703c1fe58460>], [nan], [nan]]], dtype=object) - 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 an additional cost to total investment costs (except `cost_om_annual`) that is a fraction of that total.
- default :
- 0
- unit :
- unitless.
array(nan)
- 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. Also used as the cost per unit of `source_use` in `supply` technologies.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[nan], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5a760>], [nan], [nan], [nan], [nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5a260>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5a440>]], 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_out` in each timestep.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
array([[[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], ... [[[nan, nan, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fe5aee0>, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], [[[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_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`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{unit}}$
array(nan)
- cost_area_use()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_area_use'}
- coords_in_name :
- False
- title :
- Cost of area use.
- description :
- Cost per unit `area_use`.
- default :
- 0
- unit :
- $\text{area}$
array(nan)
- cost_source_cap()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_source_cap'}
- coords_in_name :
- False
- title :
- Cost of source flow capacity.
- description :
- Cost per unit `source_cap`.
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{power}}$
array(nan)
- cost_storage_cap()float64nan
- obj_type :
- parameters
- references :
- {'cost_investment_storage_cap'}
- 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".
- default :
- 0
- unit :
- $\frac{\{cost}}{\text{energy}}$
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`.
- default :
- 1
- unit :
- unitless.
array(nan)
- distance(techs)objectparameters[distance][0] ... nan
- obj_type :
- parameters
- references :
- {'flow_in_inc_eff', 'cost_investment_flow_cap', '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.
- default :
- 1.0
- unit :
- distance.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddc910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddca00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddcaa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddcaf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddcb40>, nan, nan, nan, nan, nan, nan, nan], dtype=object) - export_max()float64nan
- obj_type :
- parameters
- references :
- {'flow_export'}
- 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.
- default :
- inf
- unit :
- power.
array(nan)
- export_min()float64nan
- obj_type :
- parameters
- references :
- {'flow_export'}
- coords_in_name :
- False
- title :
- Minimum allowed carrier export
- description :
- If `carrier_export` is defined, set a lower bound on the amount of produced carrier that _must_ be exported for a technology.
- default :
- 0
- unit :
- power.
array(nan)
- flow_cap_per_storage_cap_min()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_per_storage_capacity_min'}
- coords_in_name :
- False
- title :
- Minimum flow capacity per storage capacity
- description :
- ratio of minimum charge/discharge (kW) for a given storage capacity (kWh).
- default :
- 0
- unit :
- $\text{hour}^{-1}$
array(nan)
- flow_cap_per_storage_cap_max()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_per_storage_capacity_max'}
- coords_in_name :
- False
- title :
- Maximum flow capacity per storage capacity
- description :
- ratio of maximum charge/discharge (kW) for a given storage capacity (kWh).
- default :
- inf
- unit :
- $\text{hour}^{-1}$
array(nan)
- flow_cap_max(techs, carriers, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'flow_cap', 'force_zero_area_use'}
- coords_in_name :
- False
- title :
- Maximum rated flow capacity.
- description :
- Limits `flow_cap` to a maximum.
- default :
- inf
- unit :
- power.
array([[[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddddb0>, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddde00>, nan]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddde50>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddea0>]], [[nan, nan, nan, nan], [nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddf40>, nan, nan]], [[nan, ... [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddd590>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddd540>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddda40>], [nan, nan, nan, nan], [nan, nan, nan, nan]], [[nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddae0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddd10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdddd60>], [nan, nan, nan, nan]], [[nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddda90>, nan, nan], [nan, nan, nan, nan], [nan, nan, nan, nan]]], dtype=object) - flow_cap_max_systemwide()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_systemwide_max'}
- 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.
- default :
- inf
- unit :
- power or $\frac{\text{power}}{\text{unit}}$
array(nan)
- flow_cap_min()float64nan
- obj_type :
- parameters
- references :
- {'flow_cap'}
- coords_in_name :
- False
- title :
- Minimum rated flow capacity.
- description :
- Limits `flow_cap` to a minimum. NOTE: this will _force_ `flow_cap` to a minimum value unless `cap_method` is set to `integer`. If `cap_method=integer`, this will be scaled by the number of integer units of a technology purchased.
- default :
- 0
- unit :
- power or $\frac{\text{power}}{\text{unit}}$
array(nan)
- flow_cap_min_systemwide()float64nan
- obj_type :
- parameters
- references :
- {'flow_capacity_systemwide_min'}
- 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`.
- default :
- 0
- unit :
- power.
array(nan)
- flow_out_min_relative()float64nan
- obj_type :
- parameters
- references :
- {'flow_out_min'}
- 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.
- default :
- 0
- unit :
- unitless.
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`.
- default :
- inf
- unit :
- $\frac{\text{power}}{\text{unit}}$
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).
- default :
- 1.0
- unit :
- unitless.
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).
- default :
- 1.0
- unit :
- $\frac{\text{1}}{\text{distance}}$
array(nan)
- 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).
- default :
- 1.0
- unit :
- unitless.
array([[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdded50>, nan, nan], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde440>, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddef30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddef80>], [<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddec60>, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, 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).
- default :
- 1.0
- unit :
- $\frac{\text{1}}{\text{distance}}$
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddd090>, nan, nan, nan, nan, nan, nan, nan, nan, nan], dtype=object) - flow_out_parasitic_eff(techs)objectnan nan nan ... nan nan
- obj_type :
- parameters
- references :
- {'flow_out_max', 'flow_out_inc_eff'}
- 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).
- default :
- 1.0
- unit :
- unitless.
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fdde800>, nan, nan], dtype=object) - flow_ramping()float64nan
- obj_type :
- parameters
- references :
- {'ramping_down', 'ramping_up'}
- 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.
- default :
- 1.0
- unit :
- $\frac{1}{\text{hour}}$
array(nan)
- 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.
- default :
- inf
- unit :
- years.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddfd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddfe80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddff20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddff70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddffc0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd18050>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd180a0>, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd180f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd18140>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fd18190>], dtype=object) - objective_cost_weights(costs)objectparameters[objective_cost_weight...
- obj_type :
- parameters
- references :
- {'min_cost_optimisation'}
- coords_in_name :
- False
- title :
- Objective cost class weights.
- description :
- Weightings for cost classes to apply in the objective function.
- default :
- 1
- unit :
- unitless
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c1fddfcf0>], dtype=object) - 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.
- default :
- 0
- unit :
- integer.
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.
- default :
- inf
- unit :
- integer.
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`.
- default :
- 0
- unit :
- integer.
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.
- default :
- inf
- unit :
- integer.
array(nan)
- sink_use_min()float64nan
- obj_type :
- parameters
- references :
- {'balance_demand_min_use'}
- 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 `source_unit`.
- default :
- 0
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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 `source_unit`.
- default :
- inf
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
array(nan)
- sink_use_equals(timesteps, techs, nodes)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'balance_demand', 'balance_demand_min_use'}
- 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 `source_unit`.
- default :
- nan
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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) - 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).
- default :
- 1.0
- unit :
- unitless.
array(nan)
- source_use_min()float64nan
- obj_type :
- parameters
- references :
- {'balance_supply_min_use'}
- 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`.
- default :
- 0
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
array(nan)
- 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`.
- default :
- inf
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbf1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbf750>], dtype=object) - source_use_equals(techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- parameters
- references :
- {'balance_supply_min_use', '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`.
- default :
- nan
- unit :
- energy | $\frac{\text{energy}}{\text{power}}$ | $\frac{\text{energy}}{\text{area}}$
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 0x703c26bb8910>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8960>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb89b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8a00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8a50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8aa0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8af0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8b40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8b90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8be0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8c30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb8c80>], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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_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.
- default :
- inf
- unit :
- power.
array(nan)
- source_cap_min()float64nan
- obj_type :
- parameters
- references :
- {'source_cap'}
- coords_in_name :
- False
- title :
- Minimum installed source consumption capacity
- description :
- Lower limit on `source_cap` decision variable.
- default :
- 0
- unit :
- power.
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.
- default :
- inf
- unit :
- energy.
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.
- default :
- 0
- unit :
- energy.
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.
- default :
- inf
- unit :
- $\frac{\text{energy}}{\text{unit}}$
array(nan)
- storage_discharge_depth()float64nan
- obj_type :
- parameters
- references :
- {'storage_discharge_depth_limit'}
- 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.
- default :
- 0
- unit :
- unitless.
array(nan)
- storage_initial()float64nan
- obj_type :
- parameters
- references :
- {'set_storage_initial'}
- 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.
- default :
- 0
- unit :
- unitless.
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`.
- default :
- 0
- unit :
- $\frac{\text{1}}{\text{hour}}$
array(nan)
- timestep_resolution(timesteps)objectparameters[timestep_resolution][...
- obj_type :
- parameters
- references :
- {'cost_operation_fixed', 'cost_investment_annualised', 'source_max', 'flow_in_max', 'flow_out_max'}
- coords_in_name :
- False
- title :
- Resolution per timestep.
- description :
- default :
- 1
- unit :
- hours.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb92c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9c70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9d10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9d60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9db0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9e00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9e50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9ea0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9ef0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9f40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9f90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9fe0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba030>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba080>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba0d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba120>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba170>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba1c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba210>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba260>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba580>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba5d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba620>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba670>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba6c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba710>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba760>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba7b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba800>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba850>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba8a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba8f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba940>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba990>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bba9e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaa30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaa80>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaad0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbab20>], 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 :
- Weight per timestep.
- description :
- default :
- 1
- unit :
- unitless.
array([<calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bb9630>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbaf30>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbafd0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb020>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb070>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb0c0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb110>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb160>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb1b0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb200>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb250>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb2a0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb2f0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb340>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb390>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb3e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb430>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb480>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb4d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb520>, ... <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb840>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb890>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb8e0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb930>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb980>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbb9d0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbba20>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbba70>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbac0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbb10>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbb60>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbbb0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbc00>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbc50>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbca0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbcf0>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbd40>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbd90>, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbbde0>], 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 :
- Heat to power ratio for CHP
- description :
- Ratio of heat output to electricity output for combined heat and power (CHP) technology.
- default :
- 1
- unit :
array([nan, nan, nan, nan, nan, nan, <calliope.backend.pyomo_backend_model.ObjParameter object at 0x703c26bbfb60>, 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')) - nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- costsPandasIndex
PandasIndex(Index(['monetary'], dtype='object', name='costs'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- 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' ......
* nodes (nodes) object 32B 'N1' ... 'X3'
* carriers (carriers) object 24B 'electricit...
* timesteps (timesteps) datetime64[ns] 384B 2...
Data variables: (12/30)
flow_capacity_per_storage_capacity_min float64 8B nan
flow_capacity_per_storage_capacity_max float64 8B nan
source_capacity_equals_flow_capacity float64 8B nan
force_zero_area_use float64 8B nan
area_use_per_flow_capacity (nodes, techs, carriers) object 1kB ...
area_use_capacity_per_loc (nodes) object 32B nan ... constr...
... ...
balance_transmission (techs, timesteps) object 5kB con...
symmetric_transmission (nodes, techs) object 384B constr...
export_balance (nodes, techs, carriers, timesteps) object 55kB ...
ramping_up float64 8B nan
ramping_down float64 8B nan
link_chp_outputs (nodes, techs, timesteps) object 18kB ...- nodes: 4
- techs: 12
- carriers: 3
- timesteps: 48
- techs(techs)object'N1_to_X2' ... 'supply_grid_power'
- obj_type :
- dimensions
- title :
- Technologies
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- tech
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) - nodes(nodes)object'N1' 'X1' 'X2' 'X3'
- obj_type :
- dimensions
- title :
- Geographic spatial nodes
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- node
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
- obj_type :
- dimensions
- title :
- Energy / commodity carriers
- description :
- active :
- True
- dtype :
- string
- ordered :
- False
- iterator :
- carrier
array(['electricity', 'gas', 'heat'], dtype=object)
- timesteps(timesteps)datetime64[ns]2005-07-01 ... 2005-07-02T23:00:00
- obj_type :
- dimensions
- title :
- Time steps
- description :
- active :
- True
- dtype :
- datetime
- ordered :
- True
- iterator :
- timestep
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]')
- flow_capacity_per_storage_capacity_min()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound of storage flow capacity relative to its storage capacity.
array(nan)
- flow_capacity_per_storage_capacity_max()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of storage flow capacity relative to its storage capacity.
array(nan)
- source_capacity_equals_flow_capacity()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set a `supply` technology's flow capacity to equal its source capacity.
array(nan)
- force_zero_area_use()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set a technology's area use to zero if its flow capacity upper bound is zero.
array(nan)
- 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
- title :
- description :
- Set a fixed relationship between a technology's flow capacity and its area use.
array([[[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], [nan, nan, nan], ... [nan, nan, nan], [nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c2005e3c0>, nan, nan], [nan, nan, nan], [nan, nan, nan]], [[nan, nan, nan], [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 0x703c1ffc60b0>, 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
- title :
- description :
- Set an upper bound on the total area that all technologies with `area_use` can occupy at a given node.
array([nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc62e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc3bd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc3070>], dtype=object) - flow_capacity_systemwide_max()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set an upper bound on flow capacity of a technology across all nodes in which the technology exists.
array(nan)
- flow_capacity_systemwide_min()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set a lower bound on flow capacity of a technology across all nodes in which the technology exists.
array(nan)
- balance_conversion(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between a `conversion` technology's outflow and consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - flow_out_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of a technology's outflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0de190>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0ddd30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0de040>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0dee40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0deeb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0def20>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0def90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0df000>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0df070>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e2d83d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e2d8440>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e2d84b0>]], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e040130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0401a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e040210>], [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 0x703c1e040280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0402f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e040360>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041630>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0416a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041710>], [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_min()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound of a technology's outflow.
array(nan)
- flow_in_max(nodes, techs, carriers, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of a technology's inflow.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e042740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e042d60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e042ac0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e82f0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e83d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e8440>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e9710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e9780>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1e97f0>]], ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1de6a430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1de6a4a0>]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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
- title :
- description :
- Set the upper bound of a `supply` technology's source consumption.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041c50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e041da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e0417f0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc17f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc3e70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc2f90>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ffc2900>, ... [[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 0x703c1e142270>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1422e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e142350>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143620>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143700>], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e1437e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1e143850>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84bb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84c20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84c90>], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - storage_max()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound of the amount of carrier a technology can store.
array(nan)
- storage_discharge_depth_limit()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound of the stored carrier a technology must keep in reserve at all times.
array(nan)
- system_balance(nodes, carriers, timesteps)objectnan ... constraints[system_balan...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the global carrier balance of the optimisation problem by fixing the total production of a given carrier to equal the total consumption of that carrier at every node in every timestep.
array([[[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87c40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87a10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87930>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87d90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff85a20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff859b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87770>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff877e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff87700>, ... <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3b60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3bd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3c40>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3cb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3d20>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3d90>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3e00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3e70>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3ee0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fef3f50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc0c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc1a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc210>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc280>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc2f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc360>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1fedc3d0>]]], 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
- title :
- description :
- Set the upper bound on, or a fixed total of, that a demand technology must dump to its sink in each timestep.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]]], dtype=object) - balance_demand_min_use()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound on the quantity of flow a `demand` technology must dump to its sink in each timestep.
array(nan)
- 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
- title :
- description :
- Fix the outflow of a `supply` technology to its consumption of the available source.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df21f60>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df21fd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df22040>], [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 0x703c1df220b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df22120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df22190>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23460>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df234d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23540>], [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_with_storage()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the outflow of a `supply` technology to its consumption of the available source, with a storage buffer to temporally offset the outflow from source consumption.
array(nan)
- source_availability_supply(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound on, or a fixed total of, a `supply` technology's ability to consume its available resource.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfd710>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfd860>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfd780>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfea50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfeac0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfeb30>], [nan, nan, nan, ..., nan, nan, nan], ... ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dcfff50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd80050>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd800c0>], [nan, nan, nan, ..., nan, nan, nan], [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 0x703c1dd80130>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd801a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd80210>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd814e0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81550>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd815c0>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object) - balance_supply_min_use()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the lower bound on the quantity of its source a `supply` technology must use in each timestep.
array(nan)
- balance_storage()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the quantity of carrier stored in a `storage` technology at the end of each timestep based on the net flow of carrier charged and discharged and the quantity of carrier stored at the start of the timestep.
array(nan)
- set_storage_initial()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between carrier stored in a `storage` technology at the start and end of the whole model period.
array(nan)
- balance_transmission(techs, timesteps)objectconstraints[balance_transmission...
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between between carrier flowing into and out of a `transmission` link in each timestep.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23850>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df235b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23690>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df23cb0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1df238c0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81fd0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82120>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82040>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81b00>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd820b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd824a0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82510>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82580>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd825f0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82660>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd826d0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82740>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd827b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82820>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82890>, ... [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 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
- title :
- description :
- Fix the flow capacity of two `transmission` technologies representing the same link in the system.
array([[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd819b0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81d30>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81ef0>, nan, nan, nan, nan, nan, nan, nan, nan, nan], [nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd82430>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81da0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81a90>, nan, nan, nan, nan, nan, nan, nan], [<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81f60>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81940>, nan, nan, nan, nan, nan, nan, nan, nan], [nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81c50>, nan, nan, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1dd81cc0>, 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
- title :
- description :
- Set the lower bound of a technology's outflow to a technology's carrier export, for any technologies that can export carriers out of the system.
array([[[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], ..., [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ... ..., [[<calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86c80>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86c10>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff86cf0>, ..., <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84e50>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff84fa0>, <calliope.backend.pyomo_backend_model.ObjConstraint object at 0x703c1ff85010>], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [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) - ramping_up()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound on a technology's ability to ramp outflow up beyond a certain percentage compared to the previous timestep.
array(nan)
- ramping_down()float64nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Set the upper bound on a technology's ability to ramp outflow down beyond a certain percentage compared to the previous timestep.
array(nan)
- link_chp_outputs(nodes, techs, timesteps)objectnan nan nan nan ... nan nan nan nan
- obj_type :
- constraints
- references :
- set()
- coords_in_name :
- False
- title :
- description :
- Fix the relationship between heat and electricity output
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=object)
- techsPandasIndex
PandasIndex(Index(['N1_to_X2', 'N1_to_X3', 'X1_to_N1', 'X1_to_X2', 'X1_to_X3', 'boiler', 'chp', 'demand_electricity', 'demand_heat', 'pv', 'supply_gas', 'supply_grid_power'], dtype='object', name='techs')) - nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- 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 model input or fix a decision variable, we can do so now that we have built the optimisation problem
m.backend.update_input("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-09-05 15:19:32] INFO Optimisation model | starting model in base mode.
[2025-09-05 15:19:33] INFO Backend: solver finished running. Time since start of solving optimisation problem: 0:00:00.184447
[2025-09-05 15:19:33] INFO Postprocessing: applied zero threshold 1e-10 to model results.
[2025-09-05 15:19:33] INFO Postprocessing: ended. Time since start of solving optimisation problem: 0:00:00.225959
[2025-09-05 15:19:33] INFO Backend: model solve completed. Time since start of solving optimisation problem: 0:00:00.226233
The results can now be accessed by the public property m.results
m.results
<xarray.Dataset> Size: 388kB
Dimensions: (nodes: 4, techs: 12, carriers: 3,
timesteps: 48, costs: 1)
Coordinates:
* techs (techs) object 96B 'N1_to_X2' ... 'supply_gri...
* nodes (nodes) object 32B 'N1' 'X1' 'X2' 'X3'
* carriers (carriers) object 24B 'electricity' 'gas' 'heat'
* timesteps (timesteps) datetime64[ns] 384B 2005-07-01 .....
* costs (costs) object 8B 'monetary'
Data variables: (12/24)
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
... ...
min_cost_optimisation float64 8B 831.3
capacity_factor (nodes, techs, carriers, timesteps) float64 55kB ...
systemwide_capacity_factor (techs, carriers) float64 288B 0.0 0.0 ... 0.0
systemwide_levelised_cost (techs, costs, carriers) float64 288B nan ......
total_levelised_cost (costs, carriers) float64 24B 0.07992 ... 0.0...
unmet_sum (nodes, carriers, timesteps) float64 5kB nan ...- 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) - nodes(nodes)object'N1' 'X1' 'X2' 'X3'
array(['N1', 'X1', 'X2', 'X3'], dtype=object)
- carriers(carriers)object'electricity' 'gas' 'heat'
array(['electricity', 'gas', 'heat'], 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
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
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
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
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
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
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
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
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
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.]]]) - unused_supply(nodes, carriers, timesteps)float64nan nan nan nan ... 0.0 0.0 0.0 0.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], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., ... 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 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
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
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
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
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
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
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
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
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]]]) - min_cost_optimisation()float64831.3
array(831.2811478)
- capacity_factor(nodes, techs, carriers, timesteps)float64nan nan nan nan ... nan nan nan nan
array([[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [0.27634332, 0. , 0. , ..., 0. , 0. , 0. ]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [0.80601798, 0. , 0. , ..., 0. , 0. , 0. ]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [0.15125851, 0.12778014, 0.1284398 , ..., 0.28718612, 0.20574179, 0.16355763]], ... [[0. , 0. , 0. , ..., 0. , 0. , 0. ], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[ nan, nan, nan, ..., nan, nan, nan], [0. , 1. , 1. , ..., 1. , 1. , 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]]]]) - systemwide_capacity_factor(techs, carriers)float640.0 0.0 0.4178 ... 0.0799 0.0 0.0
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(techs, costs, carriers)float64nan nan 1.354e-05 ... nan nan
array([[[ nan, nan, 1.35449594e-05]], [[ nan, nan, 1.93133737e-05]], [[ nan, nan, 2.69627104e-05]], [[1.90545276e-06, nan, nan]], [[1.76779380e-06, nan, nan]], [[ nan, nan, 8.05711442e-03]], [[1.68381676e-02, nan, 2.10891310e-02]], [[ nan, nan, nan]], [[ nan, nan, nan]], [[3.80514290e-02, nan, nan]], [[ nan, 2.50216872e-02, nan]], [[1.15739560e-01, nan, nan]]]) - total_levelised_cost(costs, carriers)float640.07992 0.03431 0.09471
array([[0.07992458, 0.03431306, 0.09470535]])
- unmet_sum(nodes, carriers, timesteps)float64nan nan nan nan ... 0.0 0.0 0.0 0.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], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., ... 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], [[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]])
- 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')) - nodesPandasIndex
PandasIndex(Index(['N1', 'X1', 'X2', 'X3'], dtype='object', name='nodes'))
- carriersPandasIndex
PandasIndex(Index(['electricity', 'gas', 'heat'], dtype='object', name='carriers'))
- 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'))
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 model to file.
# NetCDF is recommended, as it retains the model data _and_ attributes 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 with two groups: `inputs` and `results`
m.to_csv(
output_path / "csv_files", allow_overwrite=True
) # Saves a file for each xarray DataArray
sh: 1: getfattr: not found
sh: 1: getfattr: not found