close #15 option pour concaténer l'export json

This commit is contained in:
SebF 2022-01-16 20:37:23 +01:00
parent 7612eb0b7f
commit 5f1cd67cc0
3 changed files with 38 additions and 17 deletions

View File

@ -45,7 +45,10 @@ Ces chemins sont relatifs à `rdoo.py`, il est possible de passer des chemins ab
Il est possible de ne pas archiver en passant l'argument `-na, --no-archive`.
### Traductions
### Concaténation des tags dans l'export json
`-nc, --no-concatenation`, pour ne pas concaténer les tags dans le champ description du json exporté.
## Traductions
Les tags peuvent être traduits grâce au fichier `traductions.json` contenant la configuration sous la forme `"clef" : "tableau_de_valeurs"` où la clef est la valeur du tag OSM à traduire et le tableau de valeurs est de la forme `"valeur" : "traduction"`. Le fichier par défaut contient l'exemple de la traduction du tag `"bicycle_parking"`.
## Umap

13
rdoo.py
View File

@ -105,6 +105,15 @@ def init_argparse() -> argparse.ArgumentParser:
)
parser.set_defaults(archivage=True)
parser.add_argument(
"-nc",
"--no-concatenation",
dest="concatenation",
action="store_false",
help="Désactiver la concaténation des tags dans l'export json",
)
parser.set_defaults(concatenation=True)
return parser
@ -157,8 +166,8 @@ def main():
# Sauvegarde
os.makedirs(args.dossier_resultats, exist_ok=True)
export_json = utils.nettoyage_json_pour_umap(
data, utils.json_reqs[req]["champs"]
export_json = utils.export_json_pour_umap(
data, utils.json_reqs[req]["champs"], args.concatenation
)
utils.save_as_json(export_json, req)

View File

@ -96,7 +96,7 @@ class Utils:
logging.info("Sauvegarde résultat format JSON/OSM")
def nettoyage_json_pour_umap(self, data, overpass_query_fields):
def export_json_pour_umap(self, data, overpass_query_fields, concatenation):
"""Sélection uniquement des champs export_json == oui"""
export_json = {
@ -110,7 +110,7 @@ class Utils:
for element in data["elements"]:
export_json["elements"].append(
{"type": element["type"], "id": element["id"]}
{"type": element["type"], "id": element["id"], "tags": {}}
)
# positionnement des éléments
@ -127,19 +127,28 @@ class Utils:
if (
overpass_query_fields[tag]["export_json"] == "Oui"
and tag in element["tags"]
and overpass_query_fields[tag]["FR"] != ""
):
description = (
description
+ overpass_query_fields[tag]["FR"]
+ " : "
+ str(element["tags"][tag])
+ "\n"
)
export_json["elements"][index_line]["tags"] = {
"description": description[:-1]
}
if concatenation:
ajout = (
str(element["tags"][tag])
if overpass_query_fields[tag]["FR"] == ""
else overpass_query_fields[tag]["FR"]
+ " : "
+ str(element["tags"][tag])
)
description = description + ajout + "\n"
export_json["elements"][index_line]["tags"] = {
"description": description[:-1]
}
else:
tagname = (
tag
if overpass_query_fields[tag]["FR"] == ""
else overpass_query_fields[tag]["FR"]
)
export_json["elements"][index_line]["tags"].update(
{tagname: element["tags"][tag]}
)
index_line = index_line + 1