Membres du groupe :
- ERREBIAI Chaimae : [email protected]
- KEBIRI Issam Eddine : [email protected]
- GHORBEL Ahmed Amine : [email protected]
- HADDOU khalid : [email protected]
- ABAKAR Issa : [email protected]
Responsable pédagogique :
- SHAOYI Yin : [email protected]
Le but de ce projet est de créé un Système Optimisé d’Intégration Virtuelle De Données – SOIVD qui exploitera différentes bases de données en relation avec l’énergie et la météo afin d’apporter une analyse du contexte actuel de crise d'énergies.
● Évolution vers de grosses quantités de données (Big Data)
● Plusieurs sources d’informations (SGBD relationnels, fichiers, applications, pages Web ...)
● Des données de plus en plus hétérogènes et interfaces d’accès variées (langages d’interrogation, modèle de données, interfaces d’appel …)
Un Système Optimisé d’Intégration Virtuelle De Données - SOIVD avec une architecture médiateur-adaptateur et une capacité d’intégration de plusieurs sources de données hétérogènes.
Un accès uniforme à des sources multiples, autonomes et hétérogènes et structurés
- Python
- Flask
- Pandas
- APIs
Use the package manager pip
to install
pip install pandasql
pip install contextlib
pip install bs4
pip install dateutil
json : https://docs.python.org/2/library/json.html
requests : https://fr.python-requests.org/en/latest/
dateutil : https://dateutil.readthedocs.io/en/stable/
pandas : https://pandas.pydata.org/docs/
pandasql : https://pypi.org/project/pandasql/
termcolor : https://pypi.org/project/termcolor/
urllib : https://docs.python.org/fr/3/library/urllib.html
BeautifulSoup : https://www.crummy.com/software/BeautifulSoup/bs4/doc/
contextlib
La figure ci-dessus représente l’architecture adoptée pour la réalisation du présent projet. Il s’agit d’une architecture Adaptateur-Médiateur dont on va utiliser l’approche GAV
Choix des BDs : Nous avons choisi les bases de données par rapport aux contextes de crise de l’énergie, nous exploiterons donc deux API contenant des données relatives à la consommation gaz et électricité dans différentes régions, le troisième API quant à lui contient des données météorologiques notamment température et humidité sur différents laps de temps
API | Description |
---|---|
API Meteomatics | L’API Meteomatics fourni par une compagnie suisse du même nom experte en prédiction météo permet de récupérer des données météorologiques passées, actuelles et prévisionnelles à l’échelle mondiale. Cela comprend les données de modèle et les données d’observation dans des séries chronologiques et des formats surfaciques. |
API Energie ODRE | Ce jeu de données rendu disponible par la plateforme d'Open Data Réseaux Énergies (ODRÉ) est constitué à partir des données locales de consommation finale en MWh publiés par le ministère de la Transition écologique et solidaire (état au 01/10/2020), regroupées par EPCI (établissements publics de coopération intercommunale), les données sont multiénergies, multiopérateurs et multi-réseaux |
API Energie ODE | Cette base de données issue de l’agence ORE (Opérateurs de Réseaux d’Énergie) qui est une alliance de tous les distributeurs français d'électricité et de gaz permet de visualiser l’évolution de 2011 à 2021 des consommations d'électricité et de gaz par secteur d'activité (résidentiel, tertiaire, industriel, agricole ou non affecté) et par EPCI (établissements publics de coopération intercommunale). |
- Création d'un environnement virtuel soit avec anaconda soit avec la commande -m venv sous python
- Dans le cas où l'env virtuel est crée par Anaconda, il faut spécifier dans le anaconda prompt : conda activate
- Pointer sur le dossier API_ConsommationElectriciteGaz (./API_ConsommationElectriciteGaz)
- Installer les bibliothèques nécessaires dans le fichier requirements.txt (Flask, requests, json, ...)
- Dossier static : contient tous les fichiers de style et les images si vous aurez besoin
- Dossier templates : contient tous les fichiers html pour la partie front-end du projet
- Fichier app.py : pour définir le logique et les endpoints
- Dans la commande prompt d'anaconda :
- set FLASK_APP=app.py
- set FLASK_ENV=development
- flask run
- Taper dans l'url : http://127.0.0.1:5000/
- Obtenir les résultats affichés dans la page web
- Anaconda : https://www.anaconda.com/products/distribution
- Flask : https://flask.palletsprojects.com/en/2.2.x/
- Environnement vituel : https://pypi.org/project/virtualenv/ && https://anaconda.org/conda-forge/virtualenv