From af09edea2bf41e395426a1046b464cf6efd2ef92 Mon Sep 17 00:00:00 2001 From: SebF Date: Sun, 10 Oct 2021 16:50:27 +0200 Subject: [PATCH] pylint sur fichier principal --- ...erpass.py => recup_donnees_osm_overpass.py | 49 ++++++++++++------- 1 file changed, 30 insertions(+), 19 deletions(-) rename recup_donnees_OSM_Overpass.py => recup_donnees_osm_overpass.py (81%) diff --git a/recup_donnees_OSM_Overpass.py b/recup_donnees_osm_overpass.py similarity index 81% rename from recup_donnees_OSM_Overpass.py rename to recup_donnees_osm_overpass.py index 8c1dbca..2a5dc59 100644 --- a/recup_donnees_OSM_Overpass.py +++ b/recup_donnees_osm_overpass.py @@ -1,4 +1,11 @@ #!/usr/bin/env python3 +""" +Module principal :  +- récupération de données par appel à Overpass +- géocodage inverse +- export des données en JSON pour utilisation avec umap +- sauvegarde des données en ods +""" # inspiration : # https://towardsdatascience.com/loading-data-from-openstreetmap-with-python-and-the-overpass-api-513882a27fd0 @@ -15,25 +22,21 @@ # https://pythonhosted.org/pyexcel-ods/ # pip3 install pyexcel-ods3 -import requests -import json import time -from pyexcel_ods3 import save_data -from collections import OrderedDict import os from osm_vc63 import errors from osm_vc63 import requetes from osm_vc63.utils import Utils -overpass_url = "http://overpass-api.de/api/interpreter" -geo_api_url = "https://api-adresse.data.gouv.fr" -dossier_sauvegarde = "resultats/" +OVERPASS_URL = "http://overpass-api.de/api/interpreter" +GEO_API_URL = "https://api-adresse.data.gouv.fr" +DOSSIER_SAUVEGARDE = "resultats/" # nombre maxi de retries quand echec API -max_retry = 4 +MAX_RETRY = 4 # delai en secondes entre les tentatives -retry_delay = 120 +RETRY_DELAY = 120 # id du département "Puy de Dôme" : 7406 @@ -42,7 +45,7 @@ retry_delay = 120 # id Romagnat : 138269 # l'id de l'area se calcule en ajoutant 3600000000 au numéro de l'objet OSM -aire_de_recherche = str(3600000000 + 110866) +AIRE_DE_RECHERCHE = str(3600000000 + 110866) # ---------------------------------------------- @@ -73,8 +76,16 @@ trad_bicycle_parking = { def executer_requete_et_exporter_resultats( nom_req, critere, aire_de_recherche, overpass_query_fields ): + """ + Appelle Overpass et exporte les résultats - utils = Utils(overpass_url, geo_api_url, dossier_sauvegarde) + nom_req : nom de la requête (type d'informations recherchées) + critere : requête passée à Overpass + aire_de_recherche : zone géographique d'intérêt + overpass_query_fields : champs récupérés pour la réponse + """ + + utils = Utils(OVERPASS_URL, GEO_API_URL, DOSSIER_SAUVEGARDE) data = utils.run_overpass_query(critere, aire_de_recherche) nb_elements = len(data["elements"]) @@ -132,34 +143,34 @@ def executer_requete_et_exporter_resultats( export_json = utils.nettoyage_json_pour_umap(data, overpass_query_fields) # Sauvegarde - os.makedirs(dossier_sauvegarde, exist_ok=True) + os.makedirs(DOSSIER_SAUVEGARDE, exist_ok=True) utils.save_as_json(export_json, nom_req) utils.save_as_ods(overpass_query_fields, data, nom_req) def main(): - for req in requetes.reqs: + """Routine principale""" - for nb_essai in range(max_retry): # on tente max_retry fois + for req in requetes.reqs: + for nb_essai in range(MAX_RETRY): # on tente max_retry fois try: executer_requete_et_exporter_resultats( - req.nom, req.critere, aire_de_recherche, req.champs + req.nom, req.critere, AIRE_DE_RECHERCHE, req.champs ) break except errors.ApiError: - if nb_essai == max_retry: + if nb_essai == MAX_RETRY: print("trop d'erreurs d'API - abandon") exit() - print("erreur API - on retente dans " + str(retry_delay) + "s") + print("erreur API - on retente dans " + str(RETRY_DELAY) + "s") - time.sleep(retry_delay) + time.sleep(RETRY_DELAY) print("Fini") if __name__ == "__main__": main() -