smif.data_layer package¶
Subpackages¶
Submodules¶
smif.data_layer.abstract_config_store module¶
smif.data_layer.abstract_data_store module¶
A data store holds the bulk of model setup, intermediate and output data: - scenario variant and narrative data (including parameter defaults) - model interventions, initial conditions and state - conversion coefficients - results
- class smif.data_layer.abstract_data_store.DataStore[source]¶
Bases:
objectA DataStore must implement each of the abstract methods defined in this interface
- abstractmethod delete_results(model_run_name, model_name, output_name, timestep=None, decision_iteration=None)[source]¶
Delete results for a single timestep/iteration of a model output in a model run
- classmethod filter_on_timesteps(dataframe, spec, path, timestep=None, timesteps=None)[source]¶
Filter dataframe by timestep
The ‘timestep’ dimension is treated as follows:
If a single timestep is specified, the spec MAY include ‘timestep’ as a dimension. If so, the returned DataArray’s spec will match the timestep requested. Otherwise, the DataArray will not include timestep as a dimension.
If multiple timesteps are specified, the returned DataArray’s spec will include a ‘timestep’ dimension to match the timesteps requested.
If timestep and timesteps are None, and the stored data has a timestep column, read all available timesteps. The returned DataArray’s spec ‘timestep’ dimension will match the timesteps requested. If the stored data does not have a timestep column, ignore and pass through unchanged.
- abstractmethod read_coefficients(source_dim, destination_dim)[source]¶
Reads coefficients from the store
Coefficients are uniquely identified by their source/destination dimensions. This method and write_coefficients implement caching of conversion coefficients between a single pair of dimensions.
- Parameters:
- Return type:
Notes
To be called from
Adaptorimplementations.
- abstractmethod read_initial_conditions(key) List[Dict][source]¶
Read historical interventions for key
- abstractmethod read_results(modelrun_name, model_name, output_spec, timestep=None, decision_iteration=None) DataArray[source]¶
Return results of a model from a model_run for a given output at a timestep and decision iteration
- abstractmethod read_scenario_variant_data(key, spec, timestep=None, timesteps=None) DataArray[source]¶
Read scenario variant data array.
If a single timestep is specified, the spec MAY include ‘timestep’ as a dimension, which should match the timestep specified.
If multiple timesteps are specified, the spec MUST include ‘timestep’ as a dimension, which should match the timesteps specified.
If timestep and timesteps are None, read all available timesteps. Whether or not the spec includes ‘timestep’ as a dimension, the returned DataArray will include a ‘timestep’ dimension with all available timesteps included.
- abstractmethod read_state(modelrun_name, timestep, decision_iteration=None) List[Dict][source]¶
Read list of (name, build_year) for a given model_run, timestep, decision
- abstractmethod write_coefficients(source_dim, destination_dim, data)[source]¶
Writes coefficients to the store
Coefficients are uniquely identified by their source/destination dimensions. This method and read_coefficients implement caching of conversion coefficients between a single pair of dimensions.
- Parameters:
source_dim (str) – dimension name
destination_dim (str) – dimension name
data (numpy.ndarray)
Notes
To be called from
Adaptorimplementations.
- abstractmethod write_initial_conditions(key, initial_conditions)[source]¶
Write historical interventions for key
- abstractmethod write_results(data, modelrun_name, model_name, timestep=None, decision_iteration=None)[source]¶
Write results of a model_name in model_run_name for a given output_name
smif.data_layer.abstract_metadata_store module¶
A metadata store holds shared metadata for smif model scenarios, inputs, parameters and outputs: - units - dimension definitions
- class smif.data_layer.abstract_metadata_store.MetadataStore[source]¶
Bases:
objectA MetaDataStore must implement each of the abstract methods defined in this interface
- abstractmethod delete_dimension(dimension_name)[source]¶
Delete dimension
- Parameters:
dimension_name (str)
- abstractmethod update_dimension(dimension_name, dimension)[source]¶
Update dimension
- Parameters:
dimension_name (str)
dimension (Coords)
smif.data_layer.data_array module¶
DataArray provides a thin wrapper around multidimensional arrays and metadata
- class smif.data_layer.data_array.DataArray(spec: ~smif.metadata.spec.Spec, data: <MagicMock id='140318177297328'>)[source]¶
Bases:
objectDataArray provides access to input/parameter/results data, with conversions to common python data libraries (for example: numpy, pandas, xarray).
- spec¶
- Type:
- data¶
- Type:
- as_df() <MagicMock id='140318174677952'>[source]¶
Access DataArray as a
pandas.DataFrame
- as_ndarray() <MagicMock id='140318174723152'>[source]¶
Access as a
numpy.ndarray
- as_xarray()[source]¶
Access DataArray as a
xarray.DataArray
- property coords¶
Coordinate labels for each dimension.
- property description¶
A human-friendly description
- property dims¶
Names for each dimension
- classmethod from_df(spec, dataframe)[source]¶
Create a DataArray from a
pandas.DataFrame
- classmethod from_xarray(spec, xr_data_array)[source]¶
Create a DataArray from a
xarray.DataArray
- property name¶
The name of the data that this spec describes.
- property shape¶
The shape of the data array
- property unit¶
The unit for all data points.
- smif.data_layer.data_array.find_duplicate_indices(dataframe)[source]¶
Find duplicate indices in a DataFrame