mapping-geojson-osm/propose_mapping_from_data.py

34 lines
1.1 KiB
Python
Raw Normal View History

import json
import sys
import json
2024-11-26 22:35:59 +01:00
# examiner un jeu de données geojson, et proposer des tags à mettre dans une config
# comme celle ci mappings/converters/configIRVE.ts
#
# exemple de lancement de commande:
# python propose_mapping_from_data.py mon_fichier.geojson
# Vérifie si un argument est fourni
if len(sys.argv) < 2:
2024-11-26 22:35:59 +01:00
print("Usage: python propose_mapping_from_data.py <geojson_file>")
sys.exit(1)
2024-11-26 22:35:59 +01:00
# Ouvre le fichier GeoJSON donné
with open(sys.argv[1]) as f:
data = json.load(f)
# Extraire les propriétés de tous les points de la FeatureCollection
properties = []
for feature in data['features']:
props = feature['properties']
properties.extend(props.keys())
# Créer un dictionnaire avec toutes les clés comme clés et des valeurs par défaut vides
defaults = {prop: '' for prop in properties}
# Remplacer les clés contenant "web" ou "téléphone" par "contact:website" ou "contact:phone"
defaults.update({prop: 'contact:website' if 'web' in prop else 'contact:phone' if 'téléphone' in prop else '' for prop in properties})
# Convertir le dictionnaire en JSON et l'afficher
2024-11-26 22:35:59 +01:00
print(json.dumps(defaults, indent=2))