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

9.2 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

| 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 |

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
convert_to_boolean_value Convertit en 'yes' si la valeur est Truthy, et en 'no' si elle est Falsy. Et ne change pas la valeur si elle n'est ni Truthy ni Falsy.
value_converted valeur à convertir string ou number
truthy_value Convertir la valeur dans le cas où elle est Truthy. exemple: le jeu de données dit que la colonne cable_t2_attache vaut "True", mais on veut le convertir en "1". On met donc truthy_value: '1' boolean false
falsy_value Convertir la valeur dans le cas où elle est Falsy, comme pour truthy_value. boolean false
invert_boolean_value Inverser la valeur booléenne boolean false

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"
                          }
                        ]
                      }
				}
			}
    }
}