diff --git a/README.md b/README.md index 74aa47c..51ce060 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,39 @@ +[[_TOC_]] + +# But +Ce script sert à récupérer (en JSON et tableau ods) les infos de stationnement vélo, d'ateliers, d'associations, vendeurs, réparateurs et fabricants de vélo. + +# Options +## Zone géographique +`-z, --zone,` définit la zone cible du script, par défaut le Puy-de-Dôme. +L'identifiant des objets s'obtient depuis la carte openstreetmap.org : +- clic-droit dans la zone concernée +- interroger les objets +- choisir la relation dans les « Objets englobants » +- noter l'ID -# Inspiration : +Examples : +|Zone | id | +|Puy de Dôme | 7406 | +|Riom | 1693144 | +|Clermont | 110866 | +|Romagnat | 138269 | + +# Inspirations / ressources : ### urls ressources -https://towardsdatascience.com/loading-data-from-openstreetmap-with-python-and-the-overpass-api-513882a27fd0 -https://geo.api.gouv.fr/adresse -https://wiki.cartocite.fr/doku.php?id=umap:10_-_je_valorise_les_donnees_openstreetmap_avec_umap -https://sites-formations.univ-rennes2.fr/mastersigat/Cours/Intro_Overpass.pdf +- https://towardsdatascience.com/loading-data-from-openstreetmap-with-python-and-the-overpass-api-513882a27fd0 +- https://geo.api.gouv.fr/adresse +- https://wiki.cartocite.fr/doku.php?id=umap:10_-_je_valorise_les_donnees_openstreetmap_avec_umap +- https://sites-formations.univ-rennes2.fr/mastersigat/Cours/Intro_Overpass.pdf ### usage des tags : -https://taginfo.openstreetmap.org/tags/?key=amenity&value=bicycle_parking#combinations +- https://taginfo.openstreetmap.org/tags/?key=amenity&value=bicycle_parking#combinations ### exemple URL données pour umap : -https://www.velocite63.fr/velocite63/OSM/stationnements_velos_publics.json +- https://www.velocite63.fr/velocite63/OSM/stationnements_velos_publics.json penser à cocher "proxy" dans la rubrique "données distantes" du calque ### export ODS : -https://pythonhosted.org/pyexcel-ods/ -pip3 install pyexcel-ods3 \ No newline at end of file +- https://pythonhosted.org/pyexcel-ods/ +`pip3 install pyexcel-ods3` \ No newline at end of file diff --git a/recup_donnees_osm_overpass.py b/recup_donnees_osm_overpass.py index 344c602..f8673a3 100644 --- a/recup_donnees_osm_overpass.py +++ b/recup_donnees_osm_overpass.py @@ -28,6 +28,7 @@ Module principal :  import time import os +import argparse from osm_vc63 import errors from osm_vc63 import requetes from osm_vc63.utils import Utils @@ -43,13 +44,6 @@ MAX_RETRY = 4 RETRY_DELAY = 120 -# id du département "Puy de Dôme" : 7406 -# id Riom : 1693144 -# id Clermont : 110866 -# id Romagnat : 138269 -# l'id de l'area se calcule en ajoutant 3600000000 au numéro de l'objet OSM -AIRE_DE_RECHERCHE = str(3_600_000_000 + 7406) - # traductions des tags bicycle_parking TRAD_BICYCLE_PARKING = { "stands": "Arceaux", @@ -74,9 +68,34 @@ TRAD_BICYCLE_PARKING = { } +def init_argparse() -> argparse.ArgumentParser: + """Définition des arguments possibles.""" + + parser = argparse.ArgumentParser( + usage="%(prog)s [OPTIONS] ...", + description="Exporte les données de la Cyclosphère d'une zone géographique.", + ) + + parser.add_argument( + "-z", + "--zone", + type=int, + help="Choisir la zone géographique à inspecter. ", + default=7406, + ) + + return parser + + def main(): """Routine principale""" + parser = init_argparse() + args = parser.parse_args() + + # l'id de l'area se calcule en ajoutant 3600000000 au numéro de l'objet OSM + aire_de_recherche = str(3_600_000_000 + args.zone) + for req in requetes.REQS: for nb_essai in range(MAX_RETRY): # on tente max_retry fois try: @@ -85,7 +104,7 @@ def main(): print(f"{75*'#'}\r\nRequête en cours : {req.nom}") # appel overpass - data = utils.run_overpass_query(req.critere, AIRE_DE_RECHERCHE) + data = utils.run_overpass_query(req.critere, aire_de_recherche) nb_resultats = len(data["elements"]) print(f"{nb_resultats} résultats")