Skip to content
Visualiser un bilan sur un territoire
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Global
Utils
babel
locale/fr/LC_MESSAGES
maintenance
media
migrations
requirements
resources/geo_data/france
scripts
static
templates
wattstrat
world
.gitignore
.gitmodules
README.md
manage.py
requirements.txt

README.md

WattStrat

L'outil de visualisation de simulation énergétique territoriale de Wattstrat a été construit avec amour et Python, en s'appuyant sur le Framework Django. Les données de bilan, ainsi que les données de référence par code géographique sont stockées dans MongoDB, alors que les données géométriques, par exemple les contours des territoires, sont stockées dans PostgreSQL et que les calculs géométriques sont effectués grâce à PostGIS.

La front-end s'appuie sur AngularJs, amCharts, Leaflet et OpenLayers.

Le versionnage de code est réalisé via GitHub.

Installation

Démarrage rapide

Commencer par installer Python 3.6. Nous recommandons d'utiliser pyenv. Nous recommandons également d'utiliser Pipenv ou Poetry pour la gestion des dépendances et des environnements virtuels, en chargeant notre fichier requirements.txt

Exécuter les migrations:

python manage.py migrate

Installation détaillée

  1. Télécharger les données nécessaires :
  • geocodes.bson.xz et metadatas: données compressées et les metadonnées associées permettant de reconstruire une collection MongoDB nécessaire
  • bilan2015.bson.xz et metadatas : données compressées et les métadonnées associées permettant de reconstruire la collection contenant l'intégralité des résultats de la reconstruction du bilan énergétique français de l'année 2015, commune par commune et heure par heure.
  • world : dump de la base PostgreSQL contenant les contours nécessaires à l'affichage des différentes cartographies
  1. Décompresser les données avec xz :
  • Linux :
    • installer xz si besoin : $ sudo apt-get install xz
    • décompresser : $ xz --decompress file.xz
  • MacOS :
    • installer un logiciel de décompression, par exemple TheUnarchiver
    • décompresser en ouvrant le fichier avec ce logiciel
  • Windows :
    • installer un logiciel de décompression, par exemple WinZip
    • décompresser en ouvrant le fichier avec ce logiciel (voici un tutoriel)
  1. Installer MongoDB en suivant les indications de cette page

  2. Lancer le serveur MongoDB via un terminal: $ mongod

  3. Charger les données dans MongoDB via un second terminal :

  • geocodes :
$ mongorestore --collection geocodes --db simulations --batchSize=100 geocodes.bson
  • bilan :
$ mongorestore --collection bilan2015 --db simulations --batchSize=100 bilan2015.bson
  1. Charger les données dans PostgreSQL
  • installer postgresql >= 9.6, postgis >= 2.3, les extension HSTORE et postgist sous debian, ce sont les packages postgresql-9.6-postgis-2.3 postgresql-9.6 postgresql-client-9.6 postgresql-9.6-postgis-2.3-scripts postgresql-contrib-9.6

  • charger les données

$ sudo -u postgres createuser --no-createdb --no-createrole --no-superuser --no-replication worlduser
$ echo -e "ALTER USER worlduser WITH PASSWORD 'worldpassword';\nCREATE DATABASE world OWNER worlduser;" | sudo -u postgres psql
$ sudo -u postgres psql world -f world.sql
$ echo "host   world            worlduser         127.0.0.1/32      md5" >> /etc/postgresql/9.6/main/pg_hba.conf
  • redemmarer postgreSQL
  1. Cloner le dépôt Git :
$ git clone https://github.com/wattstrat/VisualisationBilan.git
$ cd VisualisationBilan
$ git submodule init
$ git submodule update
  1. Definir l'environnement local en editant le fichier wattstrat/settings/local.env
  2. Intaller les requirements

GeoData

Un écran de l'application utilise encore Leaflet et pas OpenLayers, et pour cela il est nécessaire de construire des geojson :

  1. Vérifier que vous avez une locale UTF8
  2. Création des geojson
python scripts/transform_geo_data.py

Serveur de dev

  1. Effectuer les migration
$ python manage.py migrate
  1. Créer un superadmin
$ python manage.py createsuperuser
  1. Démarrer le serveur
$ python manage.py runserver
  1. Activer le compte admin en vous rendant sur http://172.17.0.2:8000/admin/ avec le username/password précédemment créé

I18N

Le standard d'internationalisation de django estutilisé. Il s'appuie lui même sur l'utilitaire gettext.

$ python manage.py makemessages -l fr

Ensuite, la traduction peut être modifiée dans BASE_DIR/locale/fr/LC_MESSAGES/django.po via un éditeur de texte ou un logiciel dédié, comme Poedit. Une fois le travail de traduction effectué, executez la commande suivante :

python manage.py compilemessages

Les fichiers *.mo sont ignorés par git, il faut donc les compiler sur le serveur de prod également.

You can’t perform that action at this time.