1. OpenStreetMap Realtime Check
Rodolphe Quiédeville
State of The Map France 2014
5 avril 2014
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 1 / 32
2. Contexte
projet de routing basé sur OSRM
écriture de profils type poids lourds
set de clé limité
hauteur et poids maximum
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 2 / 32
3. Démarche
corriger des valeurs existantes
correction non exhaustive
améliorer la qualité des données attributaires
actions sur un jeu de clé limité
utilisations maximales des outils existants
développement court (POC)
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 3 / 32
4. Outils associés
Wiki / Features
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 4 / 32
6. Outils associés
Un éditeur pour effectuer les corrections
JOSM
Potlatch
iD
...
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 6 / 32
7. Fonctionnement
basé sur les minutely diff
effectif sur tous les types d’objets
scripts python
tourne dans un cron
interface email
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 7 / 32
8. Emails reçus
Example
Date: Thu 03 Apr 2014 11:15:09 CEST
Maildir: /INBOX
KO way 172074754 maxweight wrong format 7,5
http://www.openstreetmap.org/way/172074754
KO way 4633126 maxheight wrong format 4.6|5.2|4.6
http://www.openstreetmap.org/way/4633126
ways 172074754,4633126
http://127.0.0.1:8111/load_object?objects=w172074754,w
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 8 / 32
9. Les contrôles actuels
existence de la clé, dictionnaire de max*
syntaxe des valeurs de maxweight
syntaxe des valeurs de maxheight
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 9 / 32
13. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 13 / 32
14. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 14 / 32
15. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 15 / 32
16. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 16 / 32
17. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
maxweight=3500Kg
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 17 / 32
18. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
maxweight=3500Kg
maxweight=3500
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 18 / 32
19. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
maxweight=3500Kg
maxweight=3500
maxweight=3.5
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 19 / 32
20. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
maxweight=3500Kg
maxweight=3500
maxweight=3.5
maxweight=3,5
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 20 / 32
21. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
maxweight=3500Kg
maxweight=3500
maxweight=3.5
maxweight=3,5
Un grand nombre de possibilités pour combien de valides ?
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 21 / 32
22. Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
maxweight=3.5 tons
maxweight=3.5tons
maxweight=3.5 tonnes
maxweight=3,5 tonnes
maxweight=3500Kg
maxweight=3500
maxweight=3.5
maxweight=3,5
Le contexte importe !
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 22 / 32
24. Pourquoi corriger ?
Les données ne sont pas lues que par des humains
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 24 / 32
25. OSRM
Lecture des valeurs dans OSRM, exemple du maxspeed
local function parse_maxspeed(source)
if source == nil then
return 0
end
local n = tonumber(source:match("%d*"))
if n == nil then
n = 0
end
if string.match(source, "mph") or string.match(source, "mp/h") then
n = (n*1609)/1000;
end
return math.abs(n)
end
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 25 / 32
27. Quelques statistiques
Statistiques sur la période du 1er Mars au 1er Avril 2014
555 erreurs, moyenne de 18.5 par jour
plus petite journée 2
plus grande journée à 108
163 mails répartis sur 30 journées
moyenne de 5.4 emails par jour
2 journées sans alerte
la journée la plus chargée à 13 emails
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 27 / 32
28. Bilan
Ce que j’en retiens après 6 mois d’utilisation
maxweight set de valeurs différentes est passé de 400 à 120 (.fr)
peu contraignant
aucun conflit d’édition
traitement différent suivant l’humeur du jour
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 28 / 32
29. Effets secondaires
boucle vertueuse, les corrections apportées sont immédiatement
controllées
découvertes de nouvelle clée
contribution quotidienne à OSM
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 29 / 32
30. Avenir
osmrtcheck est un jeune projet qui doit évoluer
des utilisateurs
des contributeurs
plus grande modularité du code
utiliser les règles Osmose ?
API web pour gérer ses abonnements
plus de statistiques fines
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 30 / 32
31. Sources
osmrtcheck est publié en GPLv3
https://gitlab.com/rodo/osmrtcheck
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 31 / 32