Skip to content

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 an two-element list giving the inclusive range. For example, ['2005-01', '2005-04'] will create a time subset from '2005-01-01 00:00:00' to '2005-04-31 23:59:59'. 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_format (string): Timestamp format of all time series data when read from file. "ISO8601" means "%Y-%m-%d %H:%M:%S". Default: "ISO8601".

      • add_math (array): List of references to files which contain additional mathematical formulations to be applied on top of the base math. Default: [].

        • Items (string): If referring to an pre-defined Calliope math file (see documentation for available files), do not append the reference with ".yaml". If referring to your own 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 link distance (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 the where strings by config.[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 pre-defined math and any applied additional math. Default: "min_cost_optimisation".

      • operate_window (string): Operate mode rolling window, given as a pandas frequency string. See here for a list of frequency aliases.

      • operate_horizon (string): Operate mode rolling horizon, 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 contains plan mode results, use those optimal capacities as input parameters to the operate 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 given slack (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 by spores_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 contains plan 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, setting solver_io="python" when using the solver gurobi 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 item N takes precedence over data in list item N-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 can inherit. 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 can inherit. 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]*$