RaMa-Scene is a django 2.0 based web-application that allows for analyzing Environmentally Extended Input-Output (EEIO) tables. EXIOBASE v3.3 is used in this project. Demo version: http://cml.liacs.nl:8080/ramascene/
http://rama-scene.readthedocs.io/en/latest/
EXIOBASE-Rama-Scene (modified version including secondary materials):
http://doi.org/10.5281/zenodo.3533196
git clone https://bitbucket.org/CML-IE/rama-scene.git
Create a virtual environment (python3.5 or higher) and install the app requirements (make sure you have python-dev installed via apt-get)
$ pip3 install -r requirements.txt
$ sudo apt-get update
$ sudo apt-get install nodejs
Note: On debian apt install nodejs-legacy
$ sudo apt install redis-server
$ sudo apt-get install -y erlang
$ sudo apt-get install rabbitmq-server
Then enable and start the RabbitMQ service:
$ systemctl enable rabbitmq-server
$ systemctl start rabbitmq-server
Check the status to make sure everything is running:
$ systemctl status rabbitmq-server
Note: Perform all next steps in the virtualenv and in the rootfolder of the project
export DJANGO_SETTINGS_MODULE=ramasceneMasterProject.config.dev
export DATASETS_VERSION=version downloaded e.g. v3
export DATASETS_DIR=my/path/to/datasets
export OPENBLAS_NUM_THREADS=adjust according to how many cores you want to use
If you are on Linux and using the OpenBlas library for Numpy. It is advised to set the number of threads Numpy uses. To find which library is used in python:
>>>import numpy as np
>>>np.__config__.show()
$ python3 manage.py makemigrations
$ python3 manage.py migrate
$ python3 manage.py populateHierarchies
$ npm install
$ ./node_modules/.bin/webpack --config dev-webpack.config.js
Start the default module to enable handling of analytical calculations:
$ celery -A ramasceneMasterProject worker -l info --concurrency 1 --queue calc_default -n worker1.%h
Start the modelling module to enable handling of modelling calculations:
$ celery -A ramasceneMasterProject worker -l info --concurrency 1 --queue modelling -n worker2.%h
$ python3 manage.py runserver
Access the app via the webrowser: http://127.0.0.1:8000/ramascene/
To enable debug logging, open the ramasceneMasterProject/config/dev.py file. Uncomment the "logging for Django" section.
In case you want to run tests you can perform unit tests in the root folder:
$ python3 manage.py test -v2
For integration tests you need to start the celery workers first (explained above). You can perform the integration test with the following command:
$ pytest -vs
If the test has succeeded, you�ll need to repopulate the database with the following command:
$ python3 manage.py populateHierarchies
The app uses Celery [4.1.0] (http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html), Django channels [2.1.5] (https://channels.readthedocs.io/en/latest/)