mapping-geojson-osm/docs/configuration_de_conversion.md
2024-07-08 11:27:27 +02:00

5.8 KiB

Configuration de conversion

Ce fichier de configuration est utilisé pour convertir un jeu de données ouvertes en des données exploitables par des tags OpenStreetMap. Il décrit les règles de conversion pour chaque propriété des données ouvertes et les valeurs attendues pour chaque tag OpenStreetMap.

Structure du fichier de configuration

Le fichier de configuration est un objet JSON du type MappingConfigType qui contient les propriétés suivantes :

Clé Sous-clé Sous-sous-clé Description
config_name le nom de la configuration
config_author le nom de l'auteur de la configuration avec son email entre chevrons
source infos sur la provenance des données à convertir
source geojson_path lien relatif dans ce dépôt vers le fichier téléchargé
source url lien absolu de la source, sur le portail datagouv par exemple
add_not_mapped_tags_too un boolean indiquant si les tags non détectés par la configuration doivent être ajoutés également aux points convertis
default_properties_of_point un objet qui décrit les clés et valeur par défaut à mettre pour les points
filters un objet qui décrit les filtres à appliquer aux données ouvertes
filters enable_coordinates_filter booléen, permet d'activer un filtre sur les points se trouvant dans certaines coordonnées
filters properties objet listant colonne et expression régulières pour ne garder que ce qui correspond
filters properties consolidated_code_postal
filters bounding_box tableau décrivant un rectangle de coordonnées: Xstart Ystart Xend Yend
filters enable_properties_filter objet décrivant les regex à chercher sur certaines colonnes pour ne garder que les objets concernés
tags un objet qui décrit les règles de conversion pour chaque tag OpenStreetMap

Propriétés de conversion des tags

Chaque clé donne une colonne du jeu de données à convertir en tag OSM, soit en conservant la valeur si on lui donne une simple chaîne de caractères en valeur, soit en lui apportant des modifications plus précises avec un objet en valeur.

Par exemple, nous avons un jeu de données sur les bornes de recharge électriques et leur numéro de SIREN est donné dans une colonne "siren_amenageur", dans OSM on utilisera une clé 'owner:ref:FR:SIREN'.

{
  "config_name": "IRVE config",
  "tags": {
    "siren_amenageur": "owner:ref:FR:SIREN"
  }
}

Ce qui équivaut à une utilisation d'objet ainsi

{
  "config_name": "IRVE config",
  "tags": {
    "siren_amenageur": {
      "key_converted":"owner:ref:FR:SIREN" 
    }
  }
}

Les propriétés possibles sont:

Clé Description Type Valeur par défaut
conditional_values Valeurs conditionnelles, détail ci après objet null
convert_to_boolean_value Convertit la valeur en booléen boolean false
convert_to_phone Convertir en numéro de téléphone boolean false
ignore_if_falsy Ignorer cette ligne si elle vaut false ou 0 boolean false
invert_boolean_value Inverser la valeur booléenne boolean false
key_converted Convertir en clé OSM string null
remove_original_key Enlever la ligne boolean false
socket_output_find_correspondances Chercher une puissance de socket pour borne de recharge électrique boolean false
truthy_value Convertir en valeur truthy, true ou 1 boolean false

Exemple:

{
  "tags": {
    "puissance_nominale": {
      "key_converted": "charging_station:output",
      "socket_output_find_correspondances": true
    },
    "accessibilite_pmr": {
      "key_converted": "wheelchair",
      "conditional_values": {
        "Non accessible": {
          "value_converted": "no"
        },
        "Réservé PMR": {
          "value_converted": "yes"
        }
      }
    }
  }
}

Valeurs conditionnelles conditional_values

Un objet décrivant par ses clés des comportements à faire selon la valeur donnée.

Propriétés:

Clé Description Type Valeur par défaut
ignore_this_data Ignorer, pour évacuer des valeurs indésirables
tags_to_add Tags à ajouter objet
transform_function Une fonction à appliquer à la valeur
value_converted valeur à convertir string ou number

Tags à ajouter

Quand on utilise la clé "tags_to_add", on lui met en valeur un tableau de tags OSM à ajouter. Ici, ajout de trois tags si la valeur est yes pour station_deux_roues

{
	"tags": {
			"station_deux_roues": {
				"remove_original_key": true,
					"conditional_values": {
                      "yes": {
                        "tags_to_add": [
                          {
                            "bicycle": "yes"
                          },
                          {
                            "scooter": "yes"
                          },
                          {
                            "motorcar": "no"
                          }
                        ]
                      }
				}
			}
    }
}