CircuMat is a modified (forked) version of Rama-Scene EIT Raw Materials project related to analyzing Environmentally Extended Input-Output (EEIO) tables. CircuMat focuses on NUTS2 level classification as opposed to Rama-Scene country level analysis tool.
For more information on the tool architecture, please refer to Rama-Scene's documenation: http://rama-scene.readthedocs.io/en/latest/
- EXIOBASE-Rama-Scene (v4 - modified version including secondary materials + CircuMat Eurostat data):
https://surfdrive.surf.nl/files/index.php/s/bEVnoyJUeYMUiyr
pass: circumat
Download the circumat_v4_clean.zip folder.
$ git clone https://SidneyNiccolson@bitbucket.org/CML-IE/circumat.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=circumatMasterProject.config.dev
export DATASETS_VERSION=[version downloaded e.g. v3]
export DATASETS_DIR=my/path/to/datasets (make sure that inside this folder is a folder containing the year 2011)
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 celery module to enable handling of calculations:
$ celery -A circumatMasterProject worker -l info --concurrency 1
$ python3 manage.py runserver
Access the app via the webbrowser: http://127.0.0.1:8000/circumat/
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/)