Pasq.fr

Parce-qu'il y a forcément du sens à tout ce bordel !

Comment j'ai importé 693 poteaux incendies dans openstreetmap !

Rédigé par Alain 2 commentaires

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

recherche geobretagne recherche geobretagne

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 :

colonne emergency colonne emergency

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 :

colonne type hydrant colonne type hydrant

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

colonne diametre colonne diametre

regexp_substr(« TYPE_PEI",'(\\d+)')

ref

Reprise directement de l’IDENTIFIAN, simple

colonne ref colonne ref

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.

colonne operator colonne operator

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

greffons opendata dans JOSM greffons opendata dans JOSM

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

menu josm - ouvrir menu josm - ouvrir

josm couche .shp josm couche .shp

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

JOSM - éditer mot clefs JOSM - éditer mots clefs

Vous pouvez soit taper l’intitulé, soit le choisir dans la liste déroulante.

liste des mots clefs liste des mots clefs

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 :

capture osmhydrant capture osmhydrant​​​​​​

Il faut également repérer les doublons déjà existants sur la carte pour éviter de poser 2 points sur le même emplacement. Heureusement, le territoire que j’ai choisi n’a(vait) pas beaucoup de poteaux cartographiés, en fait, les seuls étaient bizarrement dans mon quartier…

Si vous avez une autre méthode, ou si vous avez me signaler mes erreurs, laissez moi un commentaire.

2 commentaires

#1  - nlehuby a écrit :

Hello,
Le format csv aurait peut-être pu t’epargner le troncage des champs. Il me semble que josm lit bien les csv avec le plugin opendata, qgis en exporte et pour des données ponctuelles, ça fait l’affaire.

Le plugin conflation permet de fusionner dans josm une couche de données avec des données osm existantes en tenant compte de la distance et des tags.

Répondre
#2  - Alain a écrit :

Merci pour le commentaire, En fait, j’ai essayé plusieurs formats : Geojson, CSV… pour m’éviter la limitation mais chaque fois j’avais des erreurs (aucunes coordonnées valides n’a été trouvé…je fais une capture du message si besoin), il y a peut-être quelquechose que j’ai loupé… Si quelqu’un sait, dîtes-moi.

Pour conflation, je ne connaissais pas, merci beaucoup, du coup, j’ai regardé ceci https://www.youtube.com/watch?v=8n34tYJXnEI (si ça peut servir à d’autres)
et c’est vraiment pas mal comme greffon (et comme vidéo).

Répondre

Écrire un commentaire

Quelle est la deuxième lettre du mot wzlvwh ?

Fil RSS des commentaires de cet article