Fonctionnement de l’API

Module contents

Module API de l’application TerriStory

Modules principaux

actions module

action_mix_energetique(idx, year, only_jobimpact_actions, region, action_params, mix_nrj_results, last_part_mix)

Cette action va calculer la surface en panneau solaire thermique qui serait nécessaire pour obtenir la part souhaitée dans le mix énergétique mais aussi l »impact sur l’emploi de la surface en panneau solaire à implanter (lien à faire avec les calculs de l’action solaire thermique) cf https://gitlab.com/terristory/terristory/-/issues/218

bois_energie(csv_params, year, user_params, conso_chauffage, **kwargs)

Retourne pour une année donnée, les impacts énergétiques de l’action Chaufferies bois (action 13)

Paramètres
  • region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

  • year (str) – Année pour laquelle on calcule les impacts

  • dict (user_params) – Paramètres que l’utilisateur.trice doit saisir dans le formulaire de l’action

  • Pandas (conso_chauffage DataFrame) – Quantité de chaque énergie énergie consommée dans le secteur résidentiel

Type renvoyé

dict

calculate_conso_totale(year, user_params, conso_usage_energie)

Retourne la consommation totale pour chaque année (2019 => 2050)

Paramètres
  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_usage_energie (dataframe) – la consommation par type d’énergie

Renvoie

totale – la consommation totale de l’année passé en paramétre

Type renvoyé

float

calculer_diff_conso(user_params_equipement, repartition_equipement_reference, conso_totale_chaleur_enr_pac)

cette fonction permet de calculer la différence de consommation des équipements de chauffage nécessaire pour calculer l’investissement pour le secteur résidentiel et tertiaire

centrale_photo(csv_params, year, user_params, girad=None, **kwargs)

Calcul d’impact GES, NRJ et facture NRJ pour l’action d’ajout de centrale photovoltaïque au sol cf : https://gitlab.com/terristory/terristory/-/issues/299

conversion_equipement_chauffage_residentiel(region, csv_params, year, user_params, conso_residentiel, conso_usage_residentiel_chauffage, emission_ges, taux_equipement_chauffage_residentiel, emission_nh3, **kwargs)

Retourne les répartitions d’énergies, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_residentiel (dataframe) – la consommation par type d’énergie dans le secteur résidentiel

  • conso_usage_residentiel_chauffage (dataframe) – la consommation par type d’énergie dans le secteur résidentiel usage chauffage

  • emission_ges (dataframe) – les émissions de ges dans le secteur résidentiel

  • taux_equipement_chauffage_residentiel – la répartitions des équipements de chauffage dans le secteur résidentiel

  • emission_nh3 (dataframe) – les émissions de nh3 dans le secteur résidentiel

Renvoie

Avec l’ensemble des simulations des actions (répartitions des énergies, émission ges, baisse de facteur énergétique, recette fiscale)

Type renvoyé

dict

conversion_equipement_chauffage_residentiel_aura(csv_params, year, user_params, conso_residentiel, conso_usage_residentiel_chauffage, emission_ges, taux_equipement_chauffage_residentiel, **kwargs)

Retourne les répartitions d’énergies, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_residentiel (dataframe) – la consommation par type d’énergie dans le secteur résidentiel

  • conso_usage_residentiel_chauffage (dataframe) – la consommation par type d’énergie dans le secteur résidentiel usage chauffage

  • emission_ges (dataframe) – les émissions de ges dans le secteur résidentiel

  • taux_equipement_chauffage_residentiel – la répartitions des équipements de chauffage dans le secteur résidentiel

Renvoie

Avec l’ensemble des simulations des actions (répartitions des énergies, émission ges, baisse de facteur énergétique, recette fiscale) pour la région auvergne-rhone-alpes

Type renvoyé

dict

conversion_equipement_chauffage_residentiel_occitanie(csv_params, year, user_params, conso_residentiel, conso_usage_residentiel_chauffage, emission_ges, taux_equipement_chauffage_residentiel, emission_nh3, advanced_params_years={}, region='auvergne-rhone-alpes', **kwargs)

Retourne les répartitions d’énergies, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_residentiel (dataframe) – la consommation par type d’énergie dans le secteur résidentiel

  • conso_usage_residentiel_chauffage (dataframe) – la consommation par type d’énergie dans le secteur résidentiel usage chauffage

  • emission_ges (dataframe) – les émissions de ges dans le secteur résidentiel

  • taux_equipement_chauffage_residentiel – la répartitions des équipements de chauffage dans le secteur résidentiel

Renvoie

Avec l’ensemble des simulations des actions (répartitions des énergies, émission ges, baisse de facteur énergétique, recette fiscale) pour la région Occitanie

Type renvoyé

dict

conversion_equipement_chauffage_tertiaire(region, csv_params, year, user_params, conso_tertiaire, conso_usage_tertiaire_chauffage, emission_ges, taux_equipement_chauffage_tertiaire, emission_nh3, **kwargs)

Retourne les répartitions d’énergies, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_tertiaire (dataframe) – la consommation par type d’énergie dans le secteur tertaire

  • conso_usage_tertiaire_chauffage (dataframe) – la consommation par type d’énergie dans le secteur tertaire usage chauffage

  • emission_ges (dataframe) – les émissions de ges dans le secteur tertaire

  • taux_equipement_chauffage_tertiaire – la répartitions des équipements de chauffage dans le secteur tertaire

  • emission_nh3 (dataframe) – les émissions de nh3 dans le secteur résidentiel

Renvoie

Avec l’ensemble des simulations des actions (répartitions des énergies, émission ges, baisse de facteur énergétique, recette fiscale)

Type renvoyé

dict

conversion_equipement_chauffage_tertiaire_aura(csv_params, year, user_params, conso_tertiaire, conso_usage_tertiaire_chauffage, emission_ges, taux_equipement_chauffage_tertiaire, **kwargs)

Retourne les répartitions d’énergies, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_tertiaire (dataframe) – la consommation par type d’énergie dans le secteur tertaire

  • conso_usage_tertiaire_chauffage (dataframe) – la consommation par type d’énergie dans le secteur tertaire usage chauffage

  • emission_ges (dataframe) – les émissions de ges dans le secteur tertaire

  • taux_equipement_chauffage_tertiaire – la répartitions des équipements de chauffage dans le secteur tertaire

Renvoie

Avec l’ensemble des simulations des actions (répartitions des énergies, émission ges, baisse de facteur énergétique, recette fiscale)

Type renvoyé

dict

conversion_equipement_chauffage_tertiaire_occitanie(csv_params, year, user_params, conso_tertiaire, conso_usage_tertiaire_chauffage, emission_ges, taux_equipement_chauffage_tertiaire, emission_nh3, advanced_params_years={}, region='auvergne-rhone-alpes', **kwargs)

Retourne les répartitions d’énergies, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_tertiaire (dataframe) – la consommation par type d’énergie dans le secteur tertaire

  • conso_usage_tertiaire_chauffage (dataframe) – la consommation par type d’énergie dans le secteur tertaire usage chauffage

  • emission_ges (dataframe) – les émissions de ges dans le secteur tertaire

  • taux_equipement_chauffage_tertiaire – la répartitions des équipements de chauffage dans le secteur tertaire

Renvoie

Avec l’ensemble des simulations des actions (répartitions des énergies, émission ges, baisse de facteur énergétique, recette fiscale)

Type renvoyé

dict

deprecated_get_action_params(region)

Lecture des fichier CSV des paramètres d’action (data/<region>/)

Paramètres

region (str) – identifiant de la région

Renvoie

dataframe filtré par région

Type renvoyé

dict

deprecated_get_global_params(region)

Lecture des fichier CSV des paramètres globaux (data/<region>/)

Paramètres

region (str) – identifiant de la région

Renvoie

dataframe filtré par région

Type renvoyé

dict

deprecated_get_user_action_params(region)

Lecture du fichier CSV des paramètres avancés (data/<region>/user_action_params.csv)

Paramètres

region (str) – identifiant de la région

Renvoie

dataframe filtré par région

Type renvoyé

dict

deprecated_get_user_global_params(region)

Lecture du fichier CSV des paramètres utilisateurs globaux (data/<region>/user-global-prix-energie.csv)

Paramètres

region (str) – identifiant de la région

Renvoie

dataframe filtré par région

Type renvoyé

dict

efficacite_energetique_agriculture(region, csv_params, year, user_params, conso_usage_energie, emission_ges_agri, **kwargs)

Retourne les impacts énérgitique, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_usage_energie (dataframe) – la consommation par type d’énergie

Renvoie

Avec l’ensemble des simulations des actions (gain énergétique, émission ges, baisse de facteur énergétique, recette fiscale)

Type renvoyé

dict

efficacite_energetique_industrie(region, csv_params, year, user_params, conso_usage_industrie, emission_ges_industrie, **kwargs)

Retourne les impacts énérgitique, les émission ges et la baisse dela facteur énergétique

Paramètres
  • csv_params (list) – liste des paramétres des actions

  • year (int) – l’année qui correspond au pourcentage entré par l’utilisateur

  • user_params (int) – le pourcentage de réduction entré par l’utilisateur

  • conso_usage_energie (dataframe) – la consommation par type d’énergie

Renvoie

Avec l’ensemble des simulations des actions (gain énergétique, émission ges, baisse de facteur énergétique, recette fiscale)

Type renvoyé

dict

eolien(csv_params, year, user_params, **kwargs)

https://gitlab.com/terristory/terristory/issues/447

async get_csv_params(region)

Fonction d’aggrégation de la lecture de tous les fichiers CSV de paramètres :param region: identifiant de la région :type region: str

Renvoie

dataframes filtré par région

Type renvoyé

dict

get_mix_energetique(region, action)

Lecture des fichiers CSV des mix énergétique

Paramètres

region (str) – identifiant de la région

Renvoie

dataframe par action (14 : industrie et 15 : agriculture)

Type renvoyé

dict

get_user_params(user_params, repartition_reference, annee)

cette fonction permet de retrouver la répartition de l’année N-1

Paramètres
  • user_params (dict) – liste des paramétres entrées par l’utilisateur

  • repartition_reference (float) – la répartition d’un équipement de chauffage de l’année de référence (dernière année de disponibilité de données)

  • annee (int) – année - 1 des calculs

hydraulique(csv_params, year, user_params, **kwargs)
methanisation_cogen(csv_params, year, user_params, conso_usage_energie, **kwargs)

https://gitlab.com/terristory/terristory/-/issues/320

methanisation_inject(csv_params, year, user_params, **kwargs)

https://gitlab.com/terristory/terristory/-/issues/321

mix_energetique(chaleur, part)

Calcul du mix énergétique pour une année https://gitlab.com/terristory/terristory/-/issues/219

Paramètres
  • chaleur (float) – Chaleur livrée en MWh

  • part (float) – Part de solaire thermique à intégrer dans le mix énergétique

Renvoie

  • float – surface de panneaux solaires

  • float – surface_sol: float,

  • int – équivalent nombre de logements chauffés

motorisation_alternative_transports_commun(csv_params, year, user_params, emission_nh3, nb_buscars_territoire, **kwargs)

Calcul d’impact GES, NRJ et facture NRJ pour l’action de motorisation alternative des transports en commun

override_user_params(csv_params, advanced, aname, anum)

Surchage les paramètres utilisateurs (CSV) par les données entrées dans l’interface

Paramètres
  • advanced (obj) – dict issu d’une requête POST avec les valeurs utilisateurs

  • aname (str) – nom du tableau des paramètres avancés

  • anum (str) – numéro de l’action

Renvoie

dictionnaire contenant une seule clé contenant le tableau avec les nouvelles valeurs ou un dictionnaire vide le cas échéant.

Type renvoyé

dict

photovoltaique_sur_toiture(numero_action, type_installation, csv_params, year, user_params, girad=None, **kwargs)

Action photovoltaïque sur toiture

https://gitlab.com/terristory/terristory/issues/451

reduction_dist_traj_domicile_travail(region, csv_params, year, user_params, distance_moyenne_par_actif_en_voiture, nombre_actifs_en_voiture, conso_usage_transport, emission_ges_transport, emission_covnm, emission_nh3, emission_nox, emission_sox, emission_pm10, emission_pm25, **kwargs)

Retourne pour une année donnée, les impacts énergétiques, les émission ges et la baisse de la facteur énergétique (action 18).

Paramètres
  • region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

  • year (str) – Année pour laquelle on calcule les impacts

  • user_params (dict) – Paramètres que l’utilisateur.trice doit saisir dans le formulaire de l’action

  • distance_moyenne_par_actif_en_voiture (dict) – Dictionnaire contenant la distance moyenne parcourue par actif en voiture pour ses trajets domicile-travail

  • nombre_actifs_en_voiture (dict) – Dictionnaire contenant le nombre d’actifs faisant un trajet domicile-travail en voiture.

  • conso_usage_transport (DF) – Quantité de chaque énergie consommée dans le secteur des transports de personnes

  • emission_ges_transport (DF) – Émission GES dans le transport de personnes

Type renvoyé

dict

reduction_emission_non_energetique_agriculture(csv_params, year, user_params, emission_ges_agri, **kwargs)
reduction_emission_non_energetique_industrie(csv_params, year, user_params, emission_ges_indus, **kwargs)
renovation_residentielle(csv_params, year, user_params, conso_chauffage_ecs, emission_nox, emission_covnm, emission_pm10, emission_pm25, emission_nh3, emission_sox, **kwargs)
renovation_tertiaire(csv_params, year, user_params, conso_usage_energie, emission_nox, emission_covnm, emission_pm10, emission_pm25, emission_nh3, emission_sox, **kwargs)

Calcul d’impact GES, NRJ et facture NRJ pour l’action de rénovation tertiaire cf : https://gitlab.com/terristory/terristory/-/issues/299

reseau_chaleur(csv_params, year, user_params, cue, **kwargs)

calcul des impacts sur les émissions de GES, le gain énergétique, la facture énergétique pour l’action 5 « réseau de chaleur »

sensibilisation_actif_covoit(region, csv_params, year, user_params, conso_usage_transport, emission_ges_transport, distance_moyenne_par_actif_en_voiture, emission_covnm, emission_nh3, emission_pm10, emission_pm25, emission_nox, emission_sox, **kwargs)

Retourne pour une année donnée, les impacts énergétiques, les émission ges et la baisse de la facteur énergétique (action 19).

Paramètres
  • region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

  • year (str) – Année pour laquelle on calcule les impacts

  • user_params (dict) – Paramètres que l’utilisateur.trice doit saisir dans le formulaire de l’action

  • distance_moyenne_par_actif_en_voiture (dict) – Dictionnaire contenant la distance moyenne parcourue par actif en voiture pour ses trajets domicile-travail

  • conso_usage_transport (DF) – Quantité de chaque énergie consommée dans le secteur des transports de personnes

  • emission_ges_transport (DF) – Émission GES dans le transport de personnes

Type renvoyé

dict

solaire_thermique(stype, csv_params, year, user_params, conso_usage_energie, girad=None, **kwargs)

Calcul d’impact GES, NRJ et facture NRJ pour l’action d’installation solaire pour le logement collectif combiné eau chaude / chauffage

voies_cyclables(csv_params, year, user_params, conso_usage_energie, emission_ges_secteur, region, emission_nox, emission_covnm, emission_pm10, emission_pm25, emission_nh3, emission_sox, **kwargs)

Calcul d’impact GES, NRJ et facture NRJ pour l’action de création de voies cyclables

api module

auth module

Module dédié à la partie d’authentification JWT de l’application.

async authenticate(request, region)

Authenticate a user inside current region with login and password.

Paramètres
  • request (sanic request) – must contain json args with login and password keys

  • region (str) – region key

Renvoie

contains user_id structured as follows:

``` {

 »user_id »: {

« mail »: login, « region »: region

}

Type renvoyé

dict

Lève
  • exceptions.AuthenticationFailed – when json params are missing

  • exceptions.AuthenticationFailed – when login or password are missing

  • exceptions.AuthenticationFailed – when user is not found

  • exceptions.AuthenticationFailed – when password is incorrect

async extra_payload(payload: dict, *args, **kwargs)

Add information on current user inside JWT payload.

Paramètres

payload (dict) – contains at least the user_id information (region and mail)

Renvoie

new payload updated with user data (prenom, nom, mail, etc.)

Type renvoyé

dict

async retrieve_refresh_token(request, user_id, *args, **kwargs)

Retrieve and check the refresh token for a specific account.

Paramètres

user_id (dict) – must contain region and mail keys with user info

async retrieve_user(request, payload: dict, *args, **kwargs)

Retrieve user information from database and return it (used in /auth/me URL)

Paramètres

payload (dict) – must contain region and mail keys with user info

Renvoie

object with user information

Type renvoyé

User

async store_refresh_token(user_id, refresh_token, request, *args, **kwargs)

Store the refresh token for a specific account.

Function called at each authentication, delete old refresh token, if any, and create a new one.

Paramètres

user_id (dict) – must contain region and mail keys with user info

territorialsynthesis module

Module dédié aux indicateurs Européens territorialsynthesis

compute_note(value: float, vmin: float, vmax: float, order: str, upperlimit: Optional[float] = None)

Calcul de normalisation entre 0 et 5

Type renvoyé

None si max - min trop proche de 0 sinon la note

compute_stats(values: list, order: str, upperlimit: Optional[float] = None)

Calcul des statistiques

main()
async setup_db()

initiate a postgresql connections pool

async territorialsynthesis()

Tâche de calcul des notes synthèse territoriale pour chaque territoire et indicateur.

Le résultat est ensuite écrit dans la base de donnée dans les tables territorialsynthesis_stats et territorialsynthesis_notes.

async work(region, session, terr, aid, order, name, year)

create_user module

Module pour créer un utilisateur·trice TerriStory en base de données.

Point d’entrée pour terriapi-user. Exemple

> terriapi-user –prenom Alice –nom Caroll –password rabbit –mail alice@caroll.wonderland –organisation « Collectivité » –fonction « Chef de projet » –territoire « Métropole Lyon » –profil admin –actif

–region

async cleanup_db()
async create_user(prenom, nom, password, mail, organisation, fonction, code_postal, region, profil, actif)

Crée un·e utilisateur·trice.

main(argv=['-M', 'html', '.', '_build'])

Fonction principale pour créer un utilisateur·trice.

C’est le mail qui servira de login.

run(prenom, nom, password, mail, organisation, fonction, code_postal, region, profil_id, actif)

Lance la boucle évenementielle pour exécuter la requête en base.

async setup_db()

initiate a postgresql connections pool

user module

Blueprint for user

async check_token_captcha(token)
async create_user(request, region)

Create a new user

You can create a new user via the registration form. The account is not enabled by default. It is the admin, after receiving an e-mail, who must validate the account (see the “active” field).

Paramètres

region (str) – region key

Renvoie

user login (mail)

Type renvoyé

str

generate_password()

Generate a new random password.

Renvoie

new password between 8 and 16 characters.

Type renvoyé

str

async regenerate_password(request, region)

Request a new password for a user.

Send a mail with new password saved.

Paramètres

region (str) – region key

Contrôleurs de l’API

Quelques informations sur les contrôleurs de l’API…

Éléments des contrôleurs de l’API

Intégration

Idem sur le module integration.

Éléments du module d’intégration