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.
Fichier des emplacements des PEI
P.E.I. : point d'eau incendie, terminologie exacte des poteaux incendiesUne 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
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
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=
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
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 | ?? |
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
regexp_substr(« TYPE_PEI",'(\\d+)')
ref
Reprise directement de l’IDENTIFIAN, simplecolonne 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
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.shpgreffons 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
voici le résultat
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 mots clefs
Vous pouvez soit taper l’intitulé, soit le choisir dans la liste déroulante.
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
[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/
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://pasq.fr/comment-jai-importe-693-poteaux-incendies-dans-openstreetmap/
Congratulations @pasq2al! You received a personal award!
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:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!