Model configuration schema¶
All configuration options when calling Calliope models.
-
config
(object): All configuration options used for a Calliope model. Cannot contain additional properties. -
init
(object): All configuration options used when initialising a Calliope model. Cannot contain additional properties.-
name
(['null', 'string']): Model name. Default:null
. -
calliope_version
(['null', 'string']): Calliope framework version this model is intended for. Default:null
. -
time_subset
: Subset of timesteps as a two-element list giving the inclusive range. Default:null
. -
One of
-
null
-
array: Length must be equal to 2.
-
Items (string): ISO8601 format datetime strings of the form
YYYY-mm-dd HH:MM:SS
(e.g, '2005-01', '2005-01-01', '2005-01-01 00:00', ...).
-
-
time_resample
(['null', 'string']): setting to adjust time resolution, e.g. "2H" for 2-hourly. Default:null
. -
time_cluster
(['null', 'string']): setting to cluster the timeseries, must be a path to a file where each date is linked to a representative date that also exists in the timeseries. Default:null
. -
time_data_path
(string): Path to time series data. If relative, it will be relative to the base model definition file. Default:"."
. -
time_format
(string): Timestamp format of all time series data when read from file. "ISO8601" means "%Y-%m-%d %H:%M:%S". Default:"ISO8601"
. -
custom_math
(array): List of references to files which contain custom mathematical formulations. Default:[]
. -
Items (string): If referring to an inbuilt Calliope custom math file (see documentation for available files), do not append the reference with ".yaml". If referring to your own custom math file, ensure the file type is given as a suffix (".yaml" or ".yml"). Relative paths will be assumed to be relative to the model definition file given when creating a calliope Model (
calliope.Model(model_definition=...)
) . -
distance_unit
(string): Unit of transmission linkdistance
(m - metres, km - kilometres). Automatically derived distances from lat/lon coordinates will be given in this unit. Must be one of:["m", "km"]
. Default:"km"
.
-
-
build
(object): All configuration options used when building a Calliope optimisation problem (calliope.Model.build
). Additional configuration items will be passed onto math string parsing and can therefore be accessed in thewhere
strings byconfig.[item-name]
, where "[item-name]" is the name of your own configuration item. Can contain additional properties.-
backend
(string): Module with which to build the optimisation problem. Default:"pyomo"
. -
ensure_feasibility
(boolean): whether to include decision variables in the model which will meet unmet demand or consume unused supply in the model so that the optimisation solves successfully. This should only be used as a debugging option (as any unmet demand/unused supply is a sign of improper model formulation). Default:false
. -
mode
(string): Mode in which to run the optimisation. Must be one of:["plan", "spores", "operate"]
. Default:"plan"
. -
objective
(string): Name of internal objective function to use, from those defined in the base math and custom math (if applied). Default:"min_cost_optimisation"
. -
operate_window
(string): Operate mode rollingwindow
, given as a pandas frequency string. See here for a list of frequency aliases. -
operate_horizon
(string): Operate mode rollinghorizon
, given as a pandas frequency string. See here for a list of frequency aliases. Must be ≥operate_window
. -
operate_use_cap_results
(boolean): If the model already containsplan
mode results, use those optimal capacities as input parameters to theoperate
mode run. Default:false
.
-
-
solve
(object): All configuration options used when solving a Calliope optimisation problem (calliope.Model.solve
). Cannot contain additional properties.-
spores_number
(integer): SPORES mode number of iterations after the initial base run. Default:3
. -
spores_score_cost_class
(string): SPORES mode cost class to vary between iterations after the initial base run. Default:"spores_score"
. -
spores_slack_cost_group
(string): SPORES mode cost class to keep below the givenslack
(usually "monetary"). -
spores_save_per_spore
(boolean): Whether or not to save the result of each SPORES mode run between iterations. If False, will consolidate all iterations into one dataset after completion of N iterations (defined byspores_number
) and save that one dataset. Default:false
. -
spores_save_per_spore_path
(string): If saving per spore, the path to save to. -
spores_skip_cost_op
(boolean): If the model already containsplan
mode results, use those as the initial base run results and start with SPORES iterations immediately. Default:false
. -
save_logs
(['null', 'string']): If given, should be a path to a directory in which to save optimisation logs. Default:null
. -
solver_io
(['null', 'string']): Some solvers have different interfaces that perform differently. For instance, settingsolver_io="python"
when using the solvergurobi
tends to reduce the time to send the optimisation problem to the solver. Default:null
. -
solver_options
(['null', 'object']): Any solver options, as key-value pairs, to pass to the chosen solver. Default:null
. -
solver
(string): Solver to use. Any solvers that have Pyomo interfaces can be used. Refer to the Pyomo documentation for the latest list. Default:"cbc"
. -
zero_threshold
(number): On postprocessing the optimisation results, values smaller than this threshold will be considered as optimisation artefacts and will be set to zero. Default:1e-10
.
-
-
parameters
(['object', 'null']): Calliope model arbitrary parameter definitions. See the model definition schema for more guidance on content. Cannot contain additional properties. -
^[^_^\d][\w]*$
-
data_sources
(['object', 'null']): Reference to files from which to load parts (or all) of the model definition. Loaded data will be overridden by any data provided in the YAML definitions. Conflicting data between loaded files will be resolved by overriding in the order the data is provided. That is, data in list itemN
takes precedence over data in list itemN-1
. Cannot contain additional properties. -
^[^_^\d][\w]*$
(object)^[^_^\d][\w]*$
-
techs
(['object', 'null']): Calliope model technology definitions. See the model definition schema for more guidance on content. Cannot contain additional properties. -
^[^_^\d][\w]*$
(object)^[^_^\d][\w]*$
-
nodes
(['object', 'null']): Calliope model node definitions. See the model definition schema for more guidance on content. Cannot contain additional properties. -
^[^_^\d][\w]*$
(object)^[^_^\d][\w]*$
-
tech_groups
(['object', 'null']): Abstract technology definitions from which techs caninherit
. See the model definition schema for more guidance on content. Cannot contain additional properties. -
^[^_^\d][\w]*$
(object)^[^_^\d][\w]*$
-
node_groups
(['object', 'null']): Abstract technology definitions from which nodes caninherit
. See the model definition schema for more guidance on content. Cannot contain additional properties. -
^[^_^\d][\w]*$
(object)^[^_^\d][\w]*$
-
overrides
(['object', 'null']): Overrides to apply to any part of the model YAML configuration / definition. Cannot contain additional properties. -
^[^_^\d][\w]*$
(object)^[^_^\d][\w]*$
-
scenarios
(['object', 'null']): Groups of overrides to define named scenarios. Cannot contain additional properties. -
^[^_^\d][\w]*$