Model definition schema¶
All options available to configure a Calliope model.
-
parameters(object): Calliope model arbitrary parameter definitions. Cannot contain additional properties.-
bigM: 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:1000000000.0.-
One of
-
number
-
object: Cannot contain additional properties.
data(number)
-
-
-
objective_cost_weights: Weightings for cost classes to apply in the objective function. Refer to #/$defs/TechCostNullNumber. Default:1. -
^[^_^\d][\w]*$-
One of
-
: Refer to #/$defs/unIndexedParamVal.
-
: Refer to #/$defs/IndexedParam.
-
-
-
-
techs(object): Calliope model technology definitions. Cannot contain additional properties.-
^[^_^\d][\w]*$(object): A named technology. Can contain unevaluated properties.-
All of
-
-
One of
-
base_tech
-
base_tech
-
base_tech
-
base_tech
-
-
base_tech -
from(string, required): The resulting link technology will haveflow_out==importandflow_in==exportat this node. -
to(string, required): The resulting link technology will haveflow_out==importandflow_in==exportat this node.
-
-
-
-
-
Unevaluated properties
-
One of
-
: Refer to #/$defs/unIndexedParamVal.
-
object: Indexed tech-level parameter with any dtype. Cannot contain additional properties.
-
data: Refer to #/$defs/IndexedParamData. -
index: Refer to #/$defs/IndexedParamIndex. -
dims: Refer to #/$defs/TechDims.
-
-
-
-
active: Refer to #/$defs/ActiveDef. -
base_tech(string): 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. Must be one of:["demand", "supply", "conversion", "storage", "transmission"]. -
color(['null', 'string']): Color that can be used when plotting results. Default:NaN. -
carrier_in: Carrier(s) consumed by this technology. Onlytransmission,conversion,storage, anddemandtechnologies can define this parameter.-
One of
-
string
-
array: Length must be at least 2.
- Items (string)
-
-
-
carrier_out: Carrier(s) produced by this technology. Onlytransmission,conversion,storage, andsupplytechnologies can define this parameter.-
One of
-
string
-
array: Length must be at least 2.
- Items (string)
-
-
-
carrier_export: Carrier(s) produced by this technology that can be exported out of the system boundaries without having to go to a pre-definedsink(i.e., via ademandtechnology). Must be a subset ofcarrier_out.-
One of
-
string
-
array: Length must be at least 2.
-
-
-
name(['null', 'string']): Long name of technology, which can be used in post-processing (e.g., plotting). Default:NaN. -
cap_method(string): One of 'continuous' (LP model) or 'integer' (integer/binary unit capacity). Must be one of:["continuous", "integer"]. Default:"continuous". -
integer_dispatch(boolean): When true, will limit per-timestep out/inflows relative to the number of units of a technology that are in operation. Requirescap_method=integer. Default:false. -
include_storage(boolean): When true, math will be triggered to allow discontinuous carrier inflow and outflows across timesteps. Default:false. -
force_async_flow(boolean): If True, non-zeroflow_outandflow_incannot both occur in the same timestep. Default:false. -
flow_cap_per_storage_cap_min: ratio of minimum charge/discharge (kW) for a given storage capacity (kWh). Refer to #/$defs/TechParamNullNumber. Default:0. -
flow_cap_per_storage_cap_max: ratio of maximum charge/discharge (kW) for a given storage capacity (kWh). Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
flow_cap: Setsflow_capto a parameter in operate mode. NOTE: this parameter cannot be used inplanmode as it clashes with the decision variable of the same name. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
flow_cap_max: Limitsflow_capto a maximum. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
flow_cap_max_systemwide: Limits the sum offlow_capover all nodes in the model to a maximum. Ifcap_method=integer, this will be scaled by the number of integer units of a technology purchased. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
flow_cap_min: Limitsflow_capto a minimum. NOTE: this will forceflow_capto a minimum value unlesscap_methodis set tointeger. Ifcap_method=integer, this will be scaled by the number of integer units of a technology purchased. Refer to #/$defs/TechParamNullNumber. Default:0. -
flow_cap_min_systemwide: Limits the sum offlow_capover all nodes in the model to a minimum. NOTE: this will force the sum offlow_capto a minimum value unlesscap_methodis set tointeger. Refer to #/$defs/TechParamNullNumber. Default:0. -
flow_out_min_relative: Set to a value between 0 and 1 to force minimumflow_outas a fraction of the technology rated capacity. If non-zero andcap_methodiscontinuous, this will force the technology to operate above its minimum value at every timestep. Refer to #/$defs/TechParamNullNumber. Default:0. -
flow_cap_per_unit: Set the capacity of each integer unit of a technology purchased, ifcap_methodisinteger. Refer to #/$defs/TechParamNullNumber. Default:NaN. -
flow_in_eff: Conversion efficiency fromsource/flow_in(tech dependent) into the technology. Set as value between 1 (no loss) and 0 (all lost). Refer to #/$defs/TechParamNullNumber. Default:1.0. -
flow_out_eff: Conversion efficiency from the technology tosink/flow_out(tech dependent). Set as value between 1 (no loss) and 0 (all lost). Refer to #/$defs/TechParamNullNumber. Default:1.0. -
flow_out_parasitic_eff: 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). Refer to #/$defs/TechParamNullNumber. Default:1.0. -
flow_ramping: limit maximum outflow / inflow / outflow - inflow (technology base class dependent) to a fraction of maximum capacity, which increases by that fraction at each timestep. Refer to #/$defs/TechParamNullNumber. Default:1.0. -
export_max: Ifcarrier_exportis defined, limit the allowed export of produced carrier for a technology. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
lifetime(['null', 'number']): Must be defined if fixed capital costs are defined. A reasonable value for many technologies is around 20-25 years. Default:Infinity. -
area_use: Setsarea_useto a parameter in operate mode. NOTE: this parameter cannot be used inplanmode as it clashes with the decision variable of the same name. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
area_use_max: If set to a finite value, limits the upper bound of thearea_usedecision variable to this value. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
area_use_min: Limits the lower bound of thearea_usedecision variable to this value. Refer to #/$defs/TechParamNullNumber. Default:0. -
area_use_per_flow_cap: If set, forcesarea_useto followflow_capwith the given numerical ratio (e.g. setting to 1.5 means thatarea_use == 1.5 * flow_cap). Refer to #/$defs/TechParamNullNumber. Default:NaN. -
storage_cap: Setsstorage_capto a parameter in operate mode. NOTE: this parameter cannot be used inplanmode as it clashes with the decision variable of the same name. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
storage_cap_max: Limit upper bound ofstorage_capdecision variable. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
storage_cap_min: Limit lower bound ofstorage_capdecision variable. Refer to #/$defs/TechParamNullNumber. Default:0. -
storage_cap_per_unit: Set the storage capacity of each integer unit of a technology purchased. Refer to #/$defs/TechParamNullNumber. Default:NaN. -
storage_discharge_depth: Defines the minimum level of storage state of charge, as a fraction of total storage capacity. Refer to #/$defs/TechParamNullNumber. Default:0. -
storage_initial: Set stored flow in device at the first timestep, as a fraction of total storage capacity. Refer to #/$defs/TechParamNullNumber. Default:0. -
storage_loss: Rate of storage loss per hour, used to calculate lost stored flow as(1 - storage_loss)^hours_per_timestep. Refer to #/$defs/TechParamNullNumber. Default:0. -
cyclic_storage(boolean): If true, link storage levels in the last model timestep with the first model timestep.inter_cluster_storagecustom math must be included if using time clustering and setting this totrue. This must be set tofalseif usingoperatemode. Default:true. -
purchased_units_min_systemwide: sets the lower bound of the sum across all nodes of the decision variableunitsfor a particular technology. Refer to #/$defs/TechParamNullNumber. Default:0. -
purchased_units_max_systemwide: sets the upper bound of the sum across all nodes of the decision variableunitsfor a particular technology. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
purchased_units: Setspurchased_unitsto a parameter in operate mode. NOTE: this parameter cannot be used inplanmode as it clashes with the decision variable of the same name. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
purchased_units_min: Limits the lower bound of units purchased ifcap_methodisinteger. Refer to #/$defs/TechParamNullNumber. Default:0. -
purchased_units_max: Limits the upper bound of units purchased ifcap_methodisinteger. If set to1, will effectively set thepurchased_unitsto a binary decision variable. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
sink_unit(string): Sets the unit ofSinkto eitherabsolutex-unit: energy),per_areax-unit: energy/area), orper_capx-unit: energy/power).per_areauses thearea_usedecision variable to scale the sink whileper_capuses theflow_capdecision variable. Must be one of:["absolute", "per_area", "per_cap"]. Default:"absolute". -
sink_use_min: Minimum sink use to remove a carrier from the system (e.g., electricity demand, transport distance). Unit dictated bysource_unit. Refer to #/$defs/TechParamNullNumber. Default:0. -
sink_use_max: Maximum sink use to remove a carrier from the system (e.g., electricity demand, transport distance). Unit dictated bysource_unit. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
sink_use_equals: Required amount of carrier removal from the system (e.g., electricity demand, transport distance). Unit dictated bysource_unit. Refer to #/$defs/TechParamNullNumber. Default:NaN. -
source_unit(string): Sets the unit ofSourceto eitherabsolute(e.g. kWh),per_area(e.g. kWh/m2), orper_cap(e.g. kWh/kW).per_areauses thearea_usedecision variable to scale the source whileper_capuses theflow_capdecision variable. Must be one of:["absolute", "per_area", "per_cap"]. Default:"absolute". -
source_cap_equals_flow_cap(boolean): If true, the decision variablessource_capandflow_capare forced to equal one another. Default:false. -
source_eff: Conversion efficiency from the technology fromsource. Set as value between 1 (no loss) and 0 (all lost). Refer to #/$defs/TechParamNullNumber. Default:1.0. -
source_use_min: Minimum source use to add a carrier from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated bysource_unit. Refer to #/$defs/TechParamNullNumber. Default:0. -
source_use_max: Maximum sink use to remove a carrier from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated bysource_unit. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
source_use_equals: Required amount of carrier removal from the system (e.g., biofuel, coal, rainfall, wind flow). Unit dictated bysource_unit. Refer to #/$defs/TechParamNullNumber. Default:NaN. -
source_cap: Setssource_capto a parameter in operate mode. NOTE: this parameter cannot be used inplanmode as it clashes with the decision variable of the same name. Refer to #/$defs/TechParamNullNumber. Default:Infinity. -
source_cap_max(number): Upper limit onsource_capdecision variable. Default:Infinity. -
source_cap_min(number): Lower limit onsource_capdecision variable. Default:0. -
one_way(boolean): Forces a transmission technology to only move flow in one direction on the link, i.e. fromfromtoto. Default:false. -
distance(['null', 'number']): Used for..._per_distanceconstraints. If not defined, it will be automatically derived from latitude/longitude of nodes in a link. Default:1.0. -
flow_in_eff_per_distance: 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). Refer to #/$defs/TechParamNullNumber. Default:1.0. -
flow_out_eff_per_distance: 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). Refer to #/$defs/TechParamNullNumber. Default:1.0. -
cost_flow_cap_per_distance: Cost per unit of the decision variableflow_capand per unit distance of a transmission link. Applied to transmission links only. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_purchase_per_distance: Cost applied if the binary variablepurchasedis 1 or per unit of the integer variableunits. Requires the parametercap_methodto beinteger. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_flow_cap: Cost per unit of the decision variableflow_cap. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_export: Cost per unit offlow_exportin each timestep. Usually used in the negative sense, as a subsidy. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_interest_rate: Used when computing levelized costs and technology depreciation_rate (relative to lifetime). Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_om_annual: Annual costs applied per unitflow_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). Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_om_annual_investment_fraction: Add an additional cost to total investment costs (exceptcost_om_annual) that is a fraction of that total. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_flow_in: Cost per unit offlow_inin each timestep. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_flow_out: Cost per unit offlow_inin each timestep. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_purchase: Cost applied to the variablepurchased_units. Requires the parametercap_methodto beinteger. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_area_use: Cost per unitarea_use. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_source_cap: Cost per unitsource_cap. Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_storage_cap: Cost per unitstorage_cap, i.e., the maximum available capacity of the storage technology's "reservoir". Refer to #/$defs/TechCostNullNumber. Default:0. -
cost_depreciation_rate: Applied to "annualise" investment costs so they are comparable to variable costs. If not provided, this will be calculated using technologylifetimeandcost_interest_rate. Refer to #/$defs/TechCostNullNumber. Default:1. -
^(cost_[\w]+)$: Refer to #/$defs/TechCostNullNumber.
-
-
-
nodes(object): Calliope model node definitions. Cannot contain additional properties.-
^[^_^\d][\w]*$(object): Can contain unevaluated properties.-
Unevaluated properties
-
One of
-
: Refer to #/$defs/unIndexedParamVal.
-
object: Indexed tech-level parameter with any dtype. Cannot contain additional properties.
-
data: Refer to #/$defs/IndexedParamData. -
index: Refer to #/$defs/IndexedParamIndex. -
dims: Refer to #/$defs/TechDims.
-
-
-
-
active: Refer to #/$defs/ActiveDef. -
latitude(number): Minimum:-90. Maximum:90. -
longitude(number): Minimum:-180. Maximum:180. -
available_area(number): Minimum:0. Default:Infinity. -
^(cost_[\w]+)$: Refer to #/$defs/TechCostNullNumber.
-
-
Definitions¶
-
unIndexedParamVal(['string', 'boolean', 'number', 'null']): zero-dimensional (i.e., un-indexed) parameter. -
IndexedParamIndex: Model dimension members to apply the parameter value(s) to. If an array of arrays, sub-arrays must have same length as number ofdims.-
One of
-
['string', 'integer', 'number']
-
array: Length must be at least 1.
-
Items
-
One of
-
array: Length must be at least 1.
- Items (['string', 'integer', 'number'])
-
['string', 'integer', 'number']
-
-
-
-
-
-
IndexedParamData: parameter value(s). If data is one value, will be applied to all dimension members. If a list, must be same length as the index array.-
One of
-
['string', 'boolean', 'integer', 'number', 'null']
-
array: Length must be at least 1.
- Items (['string', 'boolean', 'integer', 'number', 'null'])
-
-
-
IndexedParam(object): Indexed parameter. Cannot contain additional properties.-
data: Refer to #/$defs/IndexedParamData. -
index: Refer to #/$defs/IndexedParamIndex. -
dims: Model dimension(s) over which the parameter is indexed. Must be same length as the sub-arrays ofindex(ifindexeddoes not have any sub-arrays or is simply a single value,dimsmust be of length 1).-
One of
-
string
-
array: Length must be at least 1.
- Items (string)
-
-
-
-
TechCostDims: Model dimension(s) over which the parameter is indexed. Must be same length as the sub-arrays ofindex(ifindexeddoes not have any sub-arrays or is simply a single value,dimsmust be of length 1). Cannot includetechsornodesas these will be added automatically in preprocessing. Must includecostsrun.objective.-
One of
-
string: Must be one of:
["costs"]. -
array: Length must be at least 1.
- Items (string)
-
-
-
-
One of
-
['null', 'number']
-
object: Indexed tech-level parameter with null/numeric dtype. Cannot contain additional properties.
-
data: parameter value(s). If data is one value, will be applied to all dimension members. If a list, must be same length as the index array.-
One of
-
null
-
number: Minimum:
0. -
array: Length must be at least 1.
-
Items
-
One of
-
null
-
number: Minimum:
0.
-
-
-
-
-
-
index: Refer to #/$defs/IndexedParamIndex. -
dims: Refer to #/$defs/TechDims.
-
-
-
-
-
One of
-
['null', 'number']
-
object: Indexed tech-level cost. Cannot contain additional properties.
-
data: parameter value(s). If data is one value, will be applied to all dimension members. If a list, must be same length as the index array.-
One of
-
null
-
number
-
array: Length must be at least 1.
-
Items
-
One of
-
null
-
number
-
-
-
-
-
-
index: Refer to #/$defs/IndexedParamIndex. -
dims: Refer to #/$defs/TechCostDims.
-
-
-
-
ActiveDef(boolean): If false, the model component (tech/node/link) will not make its way through to preprocessing. If a node, links between this node and others, via transmission technologies, will also be deactivated. Default:true.