Ce projet contient plusieurs outils pour simplifier l'import / la mise à jour du bâti sur OpenStreetMap via l'éditeur JOSM et le plugin Conflation.
L'état actuel des données peut être visualisé sur http://overpass.damsy.net (beta).
- desktop: Intégration système pour JOSM
- josm-mime.xml: types MIME (
.jos
,.joz
,.osm
) à ouvrir avec JOSM - icons
- josm.desktop.in: Entrée desktop pour JOSM
- josm-mime.xml: types MIME (
- josm-custom.jar: un JOSM modifié (correction du bug #14666, coloration des éléments
wall=no
, possibilité de décoller plusieurs éléments d'une seule traite, …) - plugins: plugins patchés
- conflation.jar: zoom automatique en cas de problème
- todo.jar: ajout d'un bouton "Mark as selected" et gestion du support multicouches
- website: code du site https://overpass.damsy.net
- tools
- osm-cadastre.py: script principal (voir plus bas)
- josm-scripts: scripts à utiliser dans JOSM via le plugin Scripting
- 1segmented.js: mise en place initiale
- 2conflation.js: mise en place de la conflation
- 3cleanup.js: nettoyage final
- Installation de JOSM et des plugins patchés :
mkdir -p $HOME/.local/share/{applications,mime/packages,icons,JOSM/plugins}
sed "s|PWD|$PWD|g" desktop/josm.desktop.in > $HOME/.local/share/applications/josm.desktop
ln -sr desktop/josm-mime.xml $HOME/.local/share/mime/packages
ln -sr desktop/icons/* $HOME/.local/share/icons
update-mime-database $HOME/.local/share/mime
ln -srf plugins/* $HOME/.local/share/JOSM/plugins
josm_config="${XDG_CONFIG_HOME-$HOME/.config}/JOSM/preferences.xml"
test -f "$josm_config" && \
! grep -q scripting.RunScriptDialog.file-history "$josm_config" && \
sed -i '/<\/preferences/d' "$josm_config" \
echo "
<list key='scripting.RunScriptDialog.file-history'>
<entry value='$PWD/josm-scripts/1segmented.js'/>
<entry value='$PWD/josm-scripts/3cleanup.js'/>
<entry value='$PWD/josm-scripts/2conflation.js'/>
</list>
</preferences>
" >> "$josm_config"
-
Installer le plugin
Scripting
dans JOSM -
Activer l'accès aux fichiers locaux dans les préférences du Contrôle à distance, nécessaire pour utiliser le script (voir ci-dessous).
usage: osm-cadastre.py [-h] [--verbose {debug,info,warning,error,no}]
[--overpass {overpass.de,api.openstreetmap.fr,localhost}]
{stats,generate,work} ...
positional arguments:
{stats,generate,work}
optional arguments:
-h, --help show this help message and exit
--verbose {debug,info,warning,error,no}, -v {debug,info,warning,error,no}
--overpass {overpass.de,api.openstreetmap.fr,localhost}
Supposons que l'on souhaite mettre à jour le cadastre de Upie, code insee 26358 :
- Vérification de l'état du cadastre dans OSM :
./tools/osm-cadastre.py stats --name Upie
. Ici le dernier import date de 2017, donc il est déjà à jour. Supposons qu'il ne le soit pas et qu'on veuille effectuer la mise à jour.
14:56:05 Fetch INSEE for Upie
14:56:05 Fetch list of vectorized cities in department 26
14:56:05 Fetch cities boundary for department 26 (via https://overpass-api.de/api/interpreter)
14:56:06 100.00% Treated 26358 - Upie (last import: 2017)
-
Mise en place de l'environnement :
./tools/osm-cadastre.py work --name Upie
. Cela va générer le bâti depuis le cadastre et ouvrir JOSM dès que c'est prêt. -
Dans JOSM, ouvrir le menu
Scripting
puis choisir1segmented.js
. La TODO list va se remplir. Chaque élément correspond à un bâtiment qui est possible segmenté, à vous de décider si oui (et alors il faut le fusionner via le menuOutils -> Joindre les zones superposées
) ou non. -
Lorsque toute la TODO liste a été traitée, ouvrir le menu
Scripting
puis choisir2conflation.js
. -
Configurer et effectuer la conflation.
-
Une fois terminée, ouvrir une derniére fois le menu
Scripting
puis choisir3cleanup.js
. -
Finalement valider les erreurs (
Shift+U
) et envoyer les changements.
Voir le guide complet pour plus d'informations ou le guide vidéo… ⚠ La démarche a évolué depuis la vidéo.