smif.data_layer.data_handle module

Provide an interface to data, parameters and results

A DataHandle is passed in to a Model at runtime, to provide transparent access to the relevant data and parameters for the current ModelRun and iteration. It gives read access to parameters and input data (at any computed or pre-computed timestep) and write access to output data (at the current timestep).

Summary

Exceptions:

TimestepResolutionError Raise when timestep cannot be resolved

Classes:

DataHandle Get/set model parameters and data
RelativeTimestep Specify current, previous or base year timestep

Functions:

element_before Return the element before a given element in a list, or None if the given element is first or not in the list.

Reference

class smif.data_layer.data_handle.DataHandle(store, modelrun_name, current_timestep, timesteps, model, modelset_iteration=None, decision_iteration=None, state=None)[source]

Bases: object

Get/set model parameters and data

derive_for(model)[source]

Derive a new DataHandle configured for the given Model

Parameters:model (Model) – Model which will use this DataHandle
current_timestep

Current timestep

previous_timestep

Previous timestep

base_timestep

Base timestep

timesteps

All timesteps (as tuple)

get_state()[source]

The current state of the model

Returns:
Return type:A list of interventions installed at the current timestep
get_data(input_name, timestep=None)[source]

Get data required for model inputs

Parameters:
Returns:

data – Two-dimensional array with shape (len(regions), len(intervals))

Return type:

numpy.ndarray

get_base_timestep_data(input_name)[source]

Get data from the base timestep as required for model inputs

Parameters:input_name (str) –
Returns:data – Two-dimensional array with shape (len(regions), len(intervals))
Return type:numpy.ndarray
get_previous_timestep_data(input_name)[source]

Get data from the previous timestep as required for model inputs

Parameters:input_name (str) –
Returns:data – Two-dimensional array with shape (len(regions), len(intervals))
Return type:numpy.ndarray
get_region_names(spatial_resolution)[source]
get_interval_names(temporal_resolution)[source]
get_parameter(parameter_name)[source]

Get the value for a parameter

Parameters:parameter_name (str) –
Returns:
Return type:parameter_value
get_parameters()[source]

Get all parameter values

Returns:parameters – Read-only view of parameters (like a read-only dict)
Return type:MappingProxyType
set_results(output_name, data)[source]

Set results values for model outputs

Parameters:
get_results(output_name, model_name=None, modelset_iteration=None, decision_iteration=None, timestep=None)[source]

Get results values for model outputs

Parameters:
class smif.data_layer.data_handle.RelativeTimestep[source]

Bases: enum.Enum

Specify current, previous or base year timestep

CURRENT = 1
PREVIOUS = 2
BASE = 3
ALL = 4
exception smif.data_layer.data_handle.TimestepResolutionError[source]

Bases: Exception

Raise when timestep cannot be resolved

smif.data_layer.data_handle.element_before(element, list_)[source]

Return the element before a given element in a list, or None if the given element is first or not in the list.