#2 ajout d'une option pour la zone géographique

This commit is contained in:
SebF 2021-10-22 22:09:41 +02:00
parent 54e34b0b16
commit eee92807cf
2 changed files with 56 additions and 17 deletions

View File

@ -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
- https://pythonhosted.org/pyexcel-ods/
`pip3 install pyexcel-ods3`

View File

@ -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")