Comment générer les données json utilisées par le frontal elm :
- Installez
docker
etmake
- Si vous êtes sur Mac avec architecture ARM, affectez 6Go de RAM à Docker dans Docker Desktop : Settings → Ressources → Advanced → Memory = 6G
- Préparez les bases de données à importer, elle ne font pas partie du dépôt :
- Agribalyse : compressé dans un fichier
AGB3.1.1.20230306.CSV.zip
dans un dossierdbfiles/
au dessus du dépôt - Autres bases alimentaire : consultez les noms de fichier dans
import_food.py
- Ecoinvent : décompressé dans un dossier
ECOINVENT3.9.1
dans ce même dossier
- Agribalyse : compressé dans un fichier
- Lancez
make
ce qui va successivement :- construire l'image docker ;
- importer les bases de données dans le projet
default
de Brightway ; - exporter les données json utilisées côté front-end, qui pourront ensuite être commitées.
Le processus entier prend environ 1h. En cas de problème vous pouvez redémarrer de zéro en faisant
d'abord un make clean_data
(qui supprime le volume docker).
make image
: pour construire l'image docker choisiemake import_food
: pour importer les bases de données alimentaire dans Brightway. Assurez-vous d'avoir les bon fichiers de données dansdbfiles/
au dessus du dépôtmake import_ecoinvent
: pour importer Ecoinvent 3.9.1. dans Brightway. Assurez-vous d'avoir le bon dossier de données dansdbfiles/
au dessus du dépôtmake import_method
: pour importer EF 3.1 adapted dans Brightway. Assurez-vous d'avoir le bon fichier de données dansdbfiles/
au dessus du dépôtmake export_food
: pour exporter les json pour le builder alimentairemake delete_database DB=<dbname>
: pour supprimer une base de données (Ex avec espace: make delete_database DB="Ecoinvent\ 3.9.1")make delete_method
: pour supprimer la méthode EF3.1make sync_datapackages
: lance un fix parfois nécessaire pour la synchro brightwaymake import
: lance toutes les commandes d'importmake export
: lance toutes les commandes d'exportmake shell
: lance un shell bash à l'intérieur du conteneurmake python
: lance un interpréteur Python à l'intérieur du conteneurmake jupyter_password
: définit le mot de passe jupyter. Doit être lancé avant son démarrage.make start_notebook
: lance le serveur Jupyter dans le conteneur. Peut être précédé du n° de port Jupyter: exJUPYTER_PORT=8889
make stop_notebook
: arrête le serveur Jupyter donc aussi le conteneurmake clean_data
: supprime toutes les données (celles de brightway et jupyter mais pas les json générés)make clean_image
: supprime l'image dockermake clean
: lanceclean_data
etclean_image
Vous pouvez entrer dans le conteneur avec make shell
.
Toutes les données du conteneur, notamment celles de Brightway et de Jupyter, sont dans
/home/jovyan
qui est situé dans un volume docker (/var/lib/docker/volume/jovyan
sur le host).
Le dépôt git ecobalyse se retrouve (via un bind mount) aussi à l'intérieur du conteneur dans
/home/jovyan/ecobalyse
. Les fichiers json générés arrivent directement sur place au bon endroit
pour être comparées puis commités.
Avant de lancer Jupyter vous pouvez définir son mot de passe avec make jupyter_password
. Ensuite
vous le démarrez avec make start_notebook
.
Avant de lancer Jupyter vous pouvez définir son mot de passe avec make jupyter_password
. Ensuite
vous le démarrez avec JUPYTER_PORT=8889 make start_notebook
.
Créez un notebook dans Jupyter puis tapez import notebooks.explore
, puis shift-Enter
Créez un notebook dans Jupyter puis tapez import notebooks.ingredients
, puis shift-Enter
Si l'export
prend plus de 2 secondes par procédé, c'est un problème d'installation de pypardiso
ou de la bibliothèque mkl
(Math Kernel Library d'Intel) ou une incompatibilité avec l'architecture
CPU utilisée. Dans ce cas c'est le solveur de Scipy qui est utilisé. Il est possible que cela
explique les très légères différences d'arrondi rencontrées dans les résultats.