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

in #fr6 years ago


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 [note]l'améliorer oui, réinventer la poudre, non![/note] 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

alt

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 [note] un petit rappel sur https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres [/note] 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 [note] j’ai testé tous les formats et le seul qui passe facilement dans JOSM est le shp, mais vous verrez cela inclut quelques modifs[/note]

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

voici le résultat

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

[wpfmb]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…[/wpfmb]

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


Posted from my blog with SteemPress : http://pasq.fr/comment-jai-importe-693-poteaux-incendies-dans-openstreetmap/

Sort:  

Congratulations @pasq2al! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

The Steem blockchain survived its first virus plague!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 64513.75
ETH 3146.11
USDT 1.00
SBD 3.95