Soda sotm fr-2013_02_24

43
http://www.openstreetmap.org SOTMFR – 24 Fevrier 2013 – LYON Julien Thevenon / quicky http://www.openstreetmap.fr S.O.D.A. Smart Osm Difference Analyzer

Transcript of Soda sotm fr-2013_02_24

Page 1: Soda sotm fr-2013_02_24

http://www.openstreetmap.org

SOTMFR – 24 Fevrier 2013 – LYONJulien Thevenon / quicky

http://www.openstreetmap.fr

S.O.D.A.Smart Osm Difference Analyzer

Page 2: Soda sotm fr-2013_02_24

SODA

1. Introduction• Problématique• Outils existants

2. Soda• Buts• Principes• Modules d'analyse• Analyses existantes

3. Perspectives

Page 3: Soda sotm fr-2013_02_24

Introduction

●Contexte

● Nombre croissants de contributeurs● De plus en plus de données● De plus en plus de modifications

●Problématique

● Comment “suivre” ce flux de données ?

●Concernés

● Contributeurs● Consommateurs de données● Fournisseurs de données

Page 4: Soda sotm fr-2013_02_24

Outils existants

● Suivi des attributs

● TAG Info

http://taginfo.osm.org● OSM Watch

http://osm102.openstreetmap.fr/~zorglub/watch/

● Suivi des modifications

● OSM Mapper

http://www.itoworld.com● OSM Watch list

http://owl.apis.dev.openstreetmap.org/● Live OSM-Fr

http://live.openstreetmap.fr/

http://wiki.openstreetmap.org/wiki/Quality_assurance

Page 5: Soda sotm fr-2013_02_24

Outils existants

●Controle Qualité

● OSM Inspectorhttp://tools.geofabrik.de/osmi

● Keep Righthttp://keepright.ipax.at

● Osmosehttp://osmose.openstreetmap.fr

●Génération d'animations

● Osm-history toolshttps://github.com/MaZderMind/osm-history-splitter

http://wiki.openstreetmap.org/wiki/Quality_assurance

Page 6: Soda sotm fr-2013_02_24

Outils existants

● Inconvénients

● Soit spécialisés soit généralistes mais “basiques”● Peu personnalisables● En ligne ou lourds et complexes à mettre en oeuvre● Peu d'analyse dans le passé

●Solution

➢ Développer une autre approche

Page 7: Soda sotm fr-2013_02_24

SODA

SODA

Page 8: Soda sotm fr-2013_02_24

Introduction

● But

● Permettre d'analyser les modifications d'OSM● En live ou à posteriori• Analyses simples ou avancées● Analyses personnalisables

●Cahier des charges

● Déploiement simple et rapide● Configuration requise raisonnable● Multi-plateforme● Utilisation “simple”● Fournir un framework aux développeurs

Page 9: Soda sotm fr-2013_02_24

Applications possibles

●Pour les utilisateurs

● Suivi thématique● Génération d'alertes● Bilan d'une cartopartie● Surveillance de données sensibles● Suivi d'import● Détection de vandalisme● Analyses statistiques● Synchronisation avec des données externes

●Pour les développeurs

● Faciliter l'écriture d'analyses spécifiques via des services génériques

Page 10: Soda sotm fr-2013_02_24

Solution retenue

➢ Programme basé sur l'analyse des diffs OSM

http://wiki.openstreetmap.org/wiki/Planet.osm/diffs

●Inconvénients

● Peu pratique pour les suppressions

● Pas d'historique complet● Fragments de base

●Avantages

● Service de base d'OSM● Granularité variable

➢ Minute, heures, jours➢ Planete, Europe, France

● Générées en live● Historique disponible

● Minutes monde: 27/09/2011● Heures monde: 19/11/2009● Jours monde: 28/11/2011

Page 11: Soda sotm fr-2013_02_24

Architecture

●Programme exécutable

● Capable de charger des bibliotheques de modules d'analyse● Fournit des services génériques

● Lecture des diffs, des fichiers OSM• Accès à l'API• Cache de données• Génération d'URL● Communication Interface Utilisateur ↔ modules

●Bibliotheques binaires

● Modules d'analyses spécifiques● Utilisent les services génériques● Génèrent des sorties

➢ Rapport HTML, Widget graphique, messages IRC...

Page 12: Soda sotm fr-2013_02_24

Configuration

●Via l'interface en mode graphique

●Via un fichier XML en mode batch

●Contenu

● Politique de démarrage● Domaine de réplication● Emplacement des librairies de

modules● Configuration des modules● Configuration de proxy● Sauts entre domaines de réplication

Page 13: Soda sotm fr-2013_02_24

Interface

●Graphique

● Gestion de configuration● Démarrage/arrêt de l analyse● Rapports des modules

➢ Format HTML

●En ligne de commande

● Fichier configuration● Rapports des modules dans des

fichiers

Page 14: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

API interne

Page 15: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

API interne

Page 16: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 17: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 18: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 19: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 20: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 21: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 22: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 23: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 24: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

Base de donnéeModule

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 25: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

Base de donnéeModule

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Sorties des modules

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 26: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

Base de donnéeModule

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Sorties des modules

Moduled

analyse

Moduled

analyse

Moduled

analyse

Page 27: Soda sotm fr-2013_02_24

Architecture d'un module

Base de donnéeModule

Module d'analyse

Chargement librarie

Données Diff

Requêtes aux services

Données

Sorties du module

Page 28: Soda sotm fr-2013_02_24

Architecture d'un module

Base de donnéeModule

APILibrairie

APIService

APIDonnée

Chargement librarie

Données Diff

Requêtes aux services

Données

Sorties du module

Module d'analyse

Page 29: Soda sotm fr-2013_02_24

Architecture d'un module

Base de donnéeModule

APILibrairie

APIService

APIDonnee

Chargement librarie

Données Diff

Requêtes aux services

Données

Code fourni au developpeur

Sorties du module

Page 30: Soda sotm fr-2013_02_24

Architecture d'un module

Base de donnéeModule

APILibrairie

APIService

APIDonnée

Chargement librarie

Données Diff

Requêtes aux services

Données

Code fourni au développeur Code à développer

Sorties du module

Page 31: Soda sotm fr-2013_02_24

API Donnees

●Defini la mise en forme des données Diff

– SAX : API orientée XML➢ Accès brutes limités, peu gourmand en mémoire

– DOM : API orientée XML➢ Accès brutes complets, gourmand en mémoire

– DOM/CPP : API orientée OSM/C++➢ Accès complet dédié OSM, gourmand en mémoire

●A venir

● SAX/CPP➢ Accès complet dédié OSM, peu gourmand en mémoire

● API plus haut niveau➢ Diff amélioré

Page 32: Soda sotm fr-2013_02_24

Modules d'analyse

●Détection de nouveaux utilisateurs

● Inscription datant de moins d'un mois➢ Rapport HTML

Page 33: Soda sotm fr-2013_02_24

Modules d'analyse

●Détection de nouveaux utilisateurs

● API Sax

Réception des données

Demande date d'inscription

Comparaison

Ajout au rapport

Demande URL contributeur

Page 34: Soda sotm fr-2013_02_24

Modules d'analyse

●Statistiques sur les clefs de tag contenant une chaine particuliere

● Chaine paramétrable● Demande de Black Myst● Utilisation pour les

“projets de la semaine”➢ Rapport détaillé des

modifications➢ Rapport de synthèse avec

statistiques

Page 35: Soda sotm fr-2013_02_24

Modules d'analyse

●Suivi des modifications sur les objets créés ou modifiés par un utilisateur

● Nom d'utilisateur paramétrable● Initialisation par changeset ou fichier osm● Prise en compte des nouveaux objets teintés● Utilisé par Jean Claude Repetto➢ Rapport détaillé et simplifié des actions effectuées

Page 36: Soda sotm fr-2013_02_24

Modules d'analyse

●Détection des ways réalignés

● Régression linéaire● Comparaison avec le version précédente● Alerte si différence supérieure au seuil paramétré➢ Rapport avec la forme des deux versions de way

sur fond OSM

Page 37: Soda sotm fr-2013_02_24

Modules d'analyse

●Récuperation de toutes les données teintées par un utilisateur

● Nom d'utilisateur paramétrable● Recherche à partir de tous les changesets

utilisateurs● Utilisé pour CEDRIC007➢ Fichiers .osm distinguant les données

créés/modifiées/supprimées

Page 38: Soda sotm fr-2013_02_24

Modules d'analyse

●En projet

● Détection des cassures de limite administrative● Détection des imports cadastres brutes● Détection des suppressions massives● Détection des sources non autorisées● Suivi des bornes géodésiques● Stats sur le temps ecoulé entre chaque contribution

Page 39: Soda sotm fr-2013_02_24

Installation

●Windows

● Rapide➢ Téléchargement des binaires

● Développeur➢ Installation de MinGW, QT➢ Téléchargement des sources➢ Compilation

●Linux

● Installation des paquets nécessaires à la compilation● Téléchargement des sources● Compilation

Page 40: Soda sotm fr-2013_02_24

Perspectives

●Développer d'autres analyses●Améliorer l'interface●Ajouter des services●Améliorer le cache●Support du multi-coeur●GUI de modules personnalisées●Documenter

Page 41: Soda sotm fr-2013_02_24

Sources

● Présentation sous licence CC-BY-SA

● Vous êtes libres de

● Partager : reproduire, distribuer et communiquer la présentation● Remixer : adapter la présentation● Utiliser cette présentation à des fins commerciales

● À condition de

● Indiquer les auteurs de la présentation➢ Julien Thevenon

● La partager sous des conditions identiques

● Présentation inspirée de

● Florian Lainez● Frederic Rodrigo

Nicolas Moyroud

Modèle de présentation sous licence CC-BY-ND http://www.showeet.com

Page 42: Soda sotm fr-2013_02_24

SODA – Smart Osm Diff Analyzer

Merci de votre attention

A vos analyses!

Page 43: Soda sotm fr-2013_02_24

Principe de fonctionnement

Diff OSM

OSM API

ConfigurationCachelocal

Librairies de modules

Base de donneeModule

SaxDiff

parser

DOMDiff

parser

Module deConversion

API interne

Sorties des modules

Moduled

analyse

Moduled

analyse

Moduled

analyse