Comment j'ai importé 693 poteaux incendies dans openstreetmap !
Aujourd'hui, je m'attaque aux poteaux incendies dans OSM. Vous allez sans doute me dire que je suis mono maniaque après les articles sur les pompiers (http://pasq.fr/caserne-pompiers/ et http://pasq.fr/casernes-de-pompiers-population/) mais je vous rassure j'ai pleins d'autres troubles ;-)
Ici, le but est de faciliter la saisie des poteaux incendies dans OpenStreetMap en faisant un import de masse depuis des fichiers opendata du SDIS 29. La raison est qu'il, à mon sens, plus facile de partir d'une base de départ pour modifier que de créer ex nihilo les données, l'autre principe est que je déteste refaire ce qui existe [l'améliorer oui, réinventer la poudre, non!] alors utiliser et valoriser le travail fait.
Matériels de départ
Alors pour faire simple, nous allons avoir besoin :
- du fichier d'emplacements des PI,
- de QGIS,
- de https://www.osmhydrant.org/fr/ pour voir ou modifier les résultats facilement
- de JOSM, et du plugin opendata
- un peu de renseignements tirés du wiki OSM et des informations sur les poteaux incendies.
Reprenons étape par étapes
Fichier des emplacements des PEI
P.E.I. : point d'eau incendie, terminologie exacte des poteaux incendies Une fois de plus, ma chance est d'être en Finistère et de disposer de beaucoup d'information via les données opendata de geobretagne et d'un SDIS qui est partageur : merci à lui. En plus les données sont régulièrement tenues à jour (8 mois à la date de rédaction de cet article).
https://geobretagne.fr/geonetwork/srv/fre/catalog.search#/metadata/fd61f6e5-edb5-42f1-94fe-a8437dc5a9b8 J'obtiens donc un fichier .SHP avec les attributs suivants :
- commune : commune du point
- INSEE : insee de la commune
- identifian : référence du point
- type_pei : type et diamètre, j'y reviens plus tard
- num_carto : un numero dont j'ignore la raison
- statut : privé ou public
- date_verif : date de la dernière vérification
- pression_s : mesure des pressions
- pression_d
- debit : mesure du débit
- capacite : capacité des réservoirs, ou stockage
- conformite : comme son nom l'indique
- diam_aep : diametre dont j'ignore à quoi il correpond
- deb_simult : et encore, j'avoue mon ignorance
Tout ceci, je le charge dans QGIS.
QGIS
Ici, la démarche est de charger que les communes qui m’interesses, celles de la ComCom du Pays de Landivisiau. Pourquoi celle-ci, parce que j’y habite et que le nombre de PEI décrit était quasi nul, cela m’évite donc d’éliminer trop de doublons dans OSM. Je filtre donc les communes grâce aux INSEE pour éviter les fichiers trop lourds. Il faut maintenant créer une couche qui correspondent aux mots-clés d’OpenStreetMap et transformer les données de la couche SDIS en données OSM. Après consultation du wiki, les PEI sont décrits suivants quelques mots clés, compte-tenu de mes infos de départ, j’ai décidé de conserver les suivants :
- emergency=fire_hydrant
- fire_hydrant: type=underground/pillar/wall/pond (souterraine/colonne/mur/étang)
- fire_hydrant: diameter=# (en option)
- ref=* (en option)
- operator=
à trouver sur https://wiki.openstreetmap.org/wiki/FR: Tag: emergency%3Dfire_hydrant
Nous allons donc créer 4 colonnes dans le fichier .shp (dans une copie du fichier original, pour ne pas abîmer, bien sûr)
emergency
colonne ayant où toutes les valeurs seront presque (cf. plus bas) à : fire_hydrant. Dans la calculatrice de champs :
Fire_hydrant: type
Pour les types de PEI, il faut faire le lien entre les terminologies SDIS et celles de OpenStreetMap J’ai trouvé les acronymes dans différents documents RDDECI ou, par exemple, dans de très bonnes fiches du SDIS 17 (à télécharger sur http://www.sdis17.fr/sites/sdis17/files/fichiers/rddeci.pdf) Dans les fichiers SDIS, nous avons
.shp | signification | OSM |
BI (80 mm, 100 mm) | Bouches incendie | underground |
PENA | Point d’eau naturel ou artificiel | pond |
PENA FDF | Point d’eau naturel ou artificiel feux de foret | pond |
PI (80 mm, 100 mm, 150 mm) | Poteaux incendie | pillar |
REI | Réservoir d’eau incendie | Emergency = water_tank |
autres | ?? |
Dans calculatrice de champs, j’ai écrit un petit bout de condition :
CASE WHEN "TYPE_PEI" = 'PI 100 mm' OR "TYPE_PEI" = 'PI 80 mm' OR "TYPE_PEI"= 'PI 150 mm' THEN "pillar" WHEN "TYPE_PEI" = 'PENA FDF' OR "TYPE_PEI" = "PENA" THEN "pond" WHEN "TYPE_PEI" = 'BI 100 mm' THEN "underground" END
fire_hydrant: diameter
Pour les données BI et PI, il existe les données dans le type_pei. Un petit coup de regex [un petit rappel sur https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres ] et hop
regexp_substr(« TYPE_PEI",'(\\d+)')
ref
Reprise directement de l’IDENTIFIAN, simple
operator
Je reprends le STATUT, à savoir private (privé) ou public. Malgré mes incommensurables efforts pour trouver l’encodage, je n’ai jamais trouvé le bon. Je passe donc par un IF pour modifier les données.
Une fois tout ça fait
Je supprime les colonnes en trop et j’enregistre dans un nouveau fichier (ou pas) en.shp [j’ai testé tous les formats et le seul qui passe facilement dans JOSM est le shp, mais vous verrez cela inclut quelques modifs]
JOSM
Avec le greffon opendata, vous avez la possibilité d’ouvrir des.shp
Il suffit pour cela d’installer le greffon si ce n’est pas fait (dans éditer-préférences ou alors F12) et ensuite ouvrir
Limite 8 caractères
L’inconvénient du shp, c’est la limitation à 8 caractères des noms de colonne. Du coup, il faut rétablir les bons mots clefs dans le fichier avant envoi.
Donc modifions les noms en masse
Pour cela, je sélectionne tous les points, puis double-clique sur l’attribut à changer
Vous pouvez soit taper l’intitulé, soit le choisir dans la liste déroulante.
Pareil pour le diamètre, que je change donc en fire_hydrant: diameter
J’ai fusionné ensuite avec un calque de données. Les messages vous incitent à ne pas fusionner un grand nombre de données, et c’est normal, le but est de vérifier chaque donnée. Mais comme indiqué dans l'intro, il me semble plus facile d'avoir une base de travail, maintenant je parcours le site osmhydrant ou quand je modifie d’autres données, je regarde les PEI et je modifie l’emplacement, la localisation, etc plus facilement. Après envoi, voici, le résultat :
Si vous avez une autre méthode, ou si vous avez me signaler mes erreurs, laissez moi un commentaire.