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
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
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
Outils associés
Wiki / Features
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 4 / 32
Outils associés
http://taginfo.openstreetmap.org
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 5 / 32
Outils associés
Un éditeur pour effectuer les corrections
JOSM
Potlatch
iD
...
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 6 / 32
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
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
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
Exemple du maxweight
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 10 / 32
Exemple du maxweight
maxweight=3.5 t
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 11 / 32
Exemple du maxweight
maxweight=3.5 t
maxweight=3.5t
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 12 / 32
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
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
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
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
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
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
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
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
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
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
Pourquoi corriger ?
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 23 / 32
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
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
Florilège
maxspweed|208
maxtrailerweight|25
maxbogieweight|21
maxheight_referencelevel|14
max_passenger|7
maxsped|7
maxxspeed|6
maxhight|4
maxload|4
maxspeeed|4
max_speed|3
maxheigh|1
maxhigh|1
maxpeed|1
maxs1|1
maxspeed |1
maxspeed_alt_1|1
maxspeed_backward|1Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 26 / 32
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
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
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
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
Sources
osmrtcheck est publié en GPLv3
https://gitlab.com/rodo/osmrtcheck
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 31 / 32
Questions ?
Rodolphe Quiédeville
rodolphe@quiedeville.org
http://blog.rodolphe.quiedeville.org/
Document publié sous Licence Creative Commons BY-SA 2.0
Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 32 / 32

OpenStreetMap Realtime Check

  • 1.
    OpenStreetMap Realtime Check RodolpheQuié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 routingbasé 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 valeursexistantes 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
  • 5.
    Outils associés http://taginfo.openstreetmap.org Rodolphe Quiédeville(Freelance) OpenStreetMap Realtime Check 5 avril 2014 5 / 32
  • 6.
    Outils associés Un éditeurpour effectuer les corrections JOSM Potlatch iD ... Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 6 / 32
  • 7.
    Fonctionnement basé sur lesminutely 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: Thu03 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 existencede 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
  • 10.
    Exemple du maxweight RodolpheQuiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 10 / 32
  • 11.
    Exemple du maxweight maxweight=3.5t Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 11 / 32
  • 12.
    Exemple du maxweight maxweight=3.5t maxweight=3.5t Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 12 / 32
  • 13.
    Exemple du maxweight maxweight=3.5t 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.5t 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.5t 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.5t 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.5t 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.5t 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.5t 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.5t 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.5t 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.5t 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
  • 23.
    Pourquoi corriger ? RodolpheQuiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 23 / 32
  • 24.
    Pourquoi corriger ? Lesdonné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 valeursdans 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
  • 26.
  • 27.
    Quelques statistiques Statistiques surla 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’enretiens 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 unjeune 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
  • 32.
    Questions ? Rodolphe Quiédeville rodolphe@quiedeville.org http://blog.rodolphe.quiedeville.org/ Documentpublié sous Licence Creative Commons BY-SA 2.0 Rodolphe Quiédeville (Freelance) OpenStreetMap Realtime Check 5 avril 2014 32 / 32