Si.T.T. is a program suite to simulate the traffic and transport of pre-industrial societies. It uses an agent-based approach to model the simulation. An agent can be thought of as a batch of cargo transported through the network (rather than an individual person travelling it).
Note: This project is WIP at the moment and in pre-alpha status. Please come back later to test the full capabilities.
Main repository: https://codeberg.org/SiTT/SiTT
Public mirror: https://github.com/Simulation-of-Traffic-and-Transport/SiTT
Table of Contents
You need Python 3.10 or later to run Si.T.T. Moreover, the principal components of the simulation are contained in a PostgreSQL database, more specifically one with the PostGIS extension. PostGis should be pretty recent and should have Geos >= 3.11.0 included, otherwise we will have to implement certain things in Python which will be pretty slow. Si.T.T. also makes use of JSONB in PostgreSQL, but since this has been introduced in version 9.4, it is likely, your database server will support this feature anyway.
pip install sitt
After installation, you can run Si.T.T. using it as a module:
python -m sitt
This will activate the command line interface and print a help message. For other ways to run Si.T.T., check out the examples below.
Installing Si.T.T. as package should install all dependent packages, too. You might want to install them by hand and/or install the extra dependencies for certain use cases:
pip install -r requirements.txt
pip install -r requirements_extras.txt
The extras file contains optional python modules such as pytest or the binary Postgres package.
You can run unit tests using pytest:
pip install pytest
cd tests
pytest -v .
You can read some documentation on the following pages:
- Si.T.T.'S General Concept (with figures)
- Database Reference
Can be found in the examples directory.
sitt
is distributed under the terms of the MIT license.