Changelog¶
Version 0.7¶
Functionality:
- Renamed ScenarioSets parameters to facets which constrain the dimensions of data defined in Scenarios
- Numerous functionality and usability improvements to the smif GUI
- Refactored and generalised conversion of space and time to use numpy operations
- Conversion coefficients are cached and loaded instead of being regenerated each run
- Added a warm start argument
--warm
to the smif command line inteface which resumes a model run from the last successfully completed time interval of a run - Added timestamps to results
- Add a binary file interface
-i
argument to the command line interface that writes intermediate model results using pyarrow resulting in much smaller file sizes than csv and a great speedup
Bugs:
- Fixes to the GUI to avoid locking due to threading
- Fixed a bug in datafileinterface where an infinite loop was entered when an interval definition did not exist
- Datafileinterface validates data from the set of unique interval and region names
Version 0.6¶
Functionality:
- Getting started documentation updated to reflect new concepts and folder structure
- First version of web app GUI suitable for configuring simulation models, system of system models and model runs
- Implemented HTTP API whcih exposes smif data interface to the GUI
- Added
smif app
command to start the GUI server and open web package from the command line - Added
smif setup
command to copy bundled example project to user folder - Added functionality to SectorModel wrapper which enables introspection of
configuration data - managed by the
DataHandle
class and accessed at runtime in SectorModel.simulate() via theself.data
property. This gives access to timesteps, input data, region and interval sets, model parameters. - Added unit conversion and the ability to load custom units from a file, the
location to which is specified under the
units
key in the project file
Development:
- Build documentation using better-api package to better order and display the code on readthedocs
- Added class diagram for data DataHandle class
- Migrated code coverage to codecov.io
- Updated pyscaffold dependency to v3.0 (removes pbr which causes issues with
- e.g. submodules among other things)
- GUI is now build on travis in deploy stage
- Travis build stages are used to separate testing and deployment
Bugs:
- Fixed incorrect datetime parsing
- Fixed assumption over http app location for debug
- Fixed lack of error warning when running a modelrun when no timesteps defined
Version 0.5¶
- Complete reconfiguration of project folder structure
- Implemented a datalayer
- Datafileinterface provides read and write methods to file system
- Databaseinterface will provides read and write methods to database
- Model parameters are passed into a simulation model from narratives
- Added a code of conduct
- Reconfigured builders expect contained objects to be constructed
- Scenario data filtered on available timesteps at runtime
- Updated documentation
- Added prototype (template) smif GUI using web app (in progress)
- Updated command line interface with new commands
list
andrun
- Introduced concepts of simulation model, scenario model, system-of-systems model, narratives and model run.
Version 0.4¶
- Implemented continuous deployment to PyPi using Travis CI
- Uses numpy arrays for passing data between scenarios and models
- Refactored space-time convertor functions
- Read ModelSet convergence settings from model configuration data
- Added units to model metadata class and require as well as spatial and temporal resolutions
- Added UML class diagrams to documentation
- Refactored to create discrete model objects which inherit from an abstractclass
- Complete restructuring of packagea
Version 0.3¶
- Fast, more compact YAML
- Input, output and pre-specified planning files can now be empty
- State is passed between successive time steps
- Interdependencies (cycles in dependencies) are now supported, models are run in cycles stopping at convergence or timeout
- Non-unique time interval definitions are supported
Version 0.2¶
- Basic conversion of time intervals (aggregation, disaggregation, remapping) and regions (aggregation, disaggregation)
- Results are written out in a yaml dump with the
-o
flag e.g.smif run -o results.yaml model.yaml
- Single one-way dependencies with spatio-temporal conversion are supported
- Simplified and harmonised implementation of model inputs and outputs
Version 0.1¶
- Run a single simulation model for a single timestep
- Provide a model with scenario data and planned interventions
- Configure a model with sets of regions and sets of time intervals for within- timestep simulation