SlideShare une entreprise Scribd logo
http://www.openstreetmap.org   http://www.openstreetmap.fr




                 S.O.D.A.
    Smart Osm Difference Analyzer
Julien Thevenon / quicky        SOTMFR – 24 Fevrier 2013 – LYON
SODA




1. Introduction
     • Problématique
     • Outils existants

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

3. Perspectives
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
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
Outils existants



Controle Qualité
●


    ●
        OSM Inspector
          http://tools.geofabrik.de/osmi
    ●
        Keep Right
          http://keepright.ipax.at
    ●
        Osmose
          http://osmose.openstreetmap.fr


Génération d'animations
●


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

                                           http://wiki.openstreetmap.org/wiki/Quality_assurance
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
SODA




SODA
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
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
Solution retenue


➢
    Programme basé sur l'analyse des diffs OSM
●
    Avantages                              ●
                                               Inconvénients
      ●
          Service de base d'OSM                  ●
                                                     Peu pratique pour les
      ●
          Granularité variable                       suppressions
           ➢
               Minute, heures, jours             ●
                                                     Pas d'historique complet
           ➢
               Planete, Europe, France           ●
                                                     Fragments de base
      ●
          Générées en live
      ●
          Historique disponible
           ●
               Minutes monde: 27/09/2011
           ●
               Heures monde: 19/11/2009
           ●
               Jours monde: 28/11/2011


                                                 http://wiki.openstreetmap.org/wiki/Planet.osm/diffs
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...
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
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
Principe de fonctionnement



                  Sax
                  Diff
Diff OSM         parser



                 DOM
                  Diff
                 parser




OSM API
                     API
                   interne




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax
                  Diff
Diff OSM         parser



                 DOM
                  Diff
                 parser




OSM API
                     API
                   interne




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse



OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                           Module
                  Diff                             d
Diff OSM         parser                         analyse



                 DOM
                  Diff                          Module
                 parser                            d
                                                analyse

                                 Module de
                                 Conversion
OSM API                                         Module
                     API                           d
                   interne                      analyse




                    Cache       Librairies de
 Configuration       local        modules
Principe de fonctionnement



                  Sax                              Module
                  Diff                                d
Diff OSM         parser                            analyse



                 DOM
                  Diff                             Module
                 parser                               d
                                                   analyse

                                 Module de
                                 Conversion
OSM API                                            Module
                     API                              d
                   interne                         analyse




                    Cache       Librairies de   Base de donnée
 Configuration       local        modules           Module
Principe de fonctionnement



                  Sax                              Module
                  Diff                                d
Diff OSM         parser                            analyse
                                                                 Sorties des
                                                                  modules

                 DOM
                  Diff                             Module
                 parser                               d
                                                   analyse

                                 Module de
                                 Conversion
OSM API                                            Module
                     API                              d
                   interne                         analyse




                    Cache       Librairies de   Base de donnée
 Configuration       local        modules           Module
Principe de fonctionnement



                  Sax                              Module
                  Diff                                d
Diff OSM         parser                            analyse
                                                                 Sorties des
                                                                  modules

                 DOM
                  Diff                             Module
                 parser                               d
                                                   analyse

                                 Module de
                                 Conversion
OSM API                                            Module
                     API                              d
                   interne                         analyse




                    Cache       Librairies de   Base de donnée
 Configuration       local        modules           Module
Architecture d'un module



Chargement librarie




                                             Sorties du module
    Données Diff
                        Module d'analyse


      Données

Requêtes aux services




                         Base de donnée
                             Module
Architecture d'un module



Chargement librarie
                           API
                        Librairie


                                                         Sorties du module
    Données Diff
                          API         Module d'analyse
                        Donnée


      Données
                          API
Requêtes aux services   Service




                                    Base de donnée
                                        Module
Architecture d'un module



      Chargement librarie
                                API
                             Librairie


                                                             Sorties du module
         Données Diff
                               API
                             Donnee


           Données
                               API
     Requêtes aux services   Service




Code fourni au developpeur
                                         Base de donnée
                                             Module
Architecture d'un module



      Chargement librarie
                                API
                             Librairie


                                                                  Sorties du module
         Données Diff
                               API
                             Donnée


           Données
                               API
     Requêtes aux services   Service




Code fourni au développeur                                Code à développer
                                         Base de donnée
                                             Module
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é
Modules d'analyse



Détection de nouveaux utilisateurs
●



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



Détection de nouveaux utilisateurs
●


    ●
        API Sax
          Réception des données


        Demande date d'inscription


              Comparaison


        Demande URL contributeur


             Ajout au rapport
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
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
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
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
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
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
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
●
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
SODA – Smart Osm Diff Analyzer



Merci de votre attention




    A vos analyses!
Principe de fonctionnement



                  Sax                              Module
                  Diff                                d
Diff OSM         parser                            analyse
                                                                 Sorties des
                                                                  modules

                 DOM
                  Diff                             Module
                 parser                               d
                                                   analyse

                                 Module de
                                 Conversion
OSM API                                            Module
                     API                              d
                   interne                         analyse




                    Cache       Librairies de   Base de donnee
 Configuration       local        modules           Module

Contenu connexe

Similaire à Soda sotm fr-2013_02_24

La cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMapLa cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMap
Florian Lainez
 
Sonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de LausanneSonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de Lausanne
Freddy Mallet
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
Loïc Descotte
 
Presentation osm
Presentation osmPresentation osm
Presentation osm
epidrome
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
jwajsberg
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Normandy JUG
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
fredcons
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
Ombotimbe Salifou
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référence
LINAGORA
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
Boubker ABERWAG
 
L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés
LINAGORA
 
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUGConférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Zenika
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
OSInet
 
ParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3DParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3D
François Hanat
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
badrfathallah2
 
SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009
SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009
SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009
Mathieu Lahaye
 
Pérennisation et mise à disposition des données de l’Observatoire de recherch...
Pérennisation et mise à disposition des données de l’Observatoire de recherch...Pérennisation et mise à disposition des données de l’Observatoire de recherch...
Pérennisation et mise à disposition des données de l’Observatoire de recherch...
Lesticetlart Invisu
 
5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation
Frédéric Rodrigo
 

Similaire à Soda sotm fr-2013_02_24 (20)

La cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMapLa cartographie Libre avec OpenStreetMap
La cartographie Libre avec OpenStreetMap
 
Sonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de LausanneSonar devant le Java User Group de Lausanne
Sonar devant le Java User Group de Lausanne
 
Hello xcode 4 v2
Hello xcode 4 v2Hello xcode 4 v2
Hello xcode 4 v2
 
Hello Xcode 4 v2
Hello Xcode 4 v2Hello Xcode 4 v2
Hello Xcode 4 v2
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Presentation osm
Presentation osmPresentation osm
Presentation osm
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référence
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés
 
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUGConférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
 
ParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3DParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3D
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
 
SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009
SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009
SIG open source : aperçu et comparaisons - présentation AGMQ 30 avril 2009
 
Pérennisation et mise à disposition des données de l’Observatoire de recherch...
Pérennisation et mise à disposition des données de l’Observatoire de recherch...Pérennisation et mise à disposition des données de l’Observatoire de recherch...
Pérennisation et mise à disposition des données de l’Observatoire de recherch...
 
5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation
 

Soda sotm fr-2013_02_24

  • 1. http://www.openstreetmap.org http://www.openstreetmap.fr S.O.D.A. Smart Osm Difference Analyzer Julien Thevenon / quicky SOTMFR – 24 Fevrier 2013 – LYON
  • 2. SODA 1. Introduction • Problématique • Outils existants 2. Soda • Buts • Principes • Modules d'analyse • Analyses existantes 3. Perspectives
  • 3. 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
  • 4. 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
  • 5. Outils existants Controle Qualité ● ● OSM Inspector http://tools.geofabrik.de/osmi ● Keep Right http://keepright.ipax.at ● Osmose http://osmose.openstreetmap.fr Génération d'animations ● ● Osm-history tools https://github.com/MaZderMind/osm-history-splitter http://wiki.openstreetmap.org/wiki/Quality_assurance
  • 6. 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
  • 8. 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
  • 9. 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
  • 10. Solution retenue ➢ Programme basé sur l'analyse des diffs OSM ● Avantages ● Inconvénients ● Service de base d'OSM ● Peu pratique pour les ● Granularité variable suppressions ➢ Minute, heures, jours ● Pas d'historique complet ➢ Planete, Europe, France ● Fragments de base ● Générées en live ● Historique disponible ● Minutes monde: 27/09/2011 ● Heures monde: 19/11/2009 ● Jours monde: 28/11/2011 http://wiki.openstreetmap.org/wiki/Planet.osm/diffs
  • 11. 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...
  • 12. 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
  • 13. 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
  • 14. Principe de fonctionnement Sax Diff Diff OSM parser DOM Diff parser OSM API API interne Cache Librairies de Configuration local modules
  • 15. Principe de fonctionnement Sax Diff Diff OSM parser DOM Diff parser OSM API API interne Cache Librairies de Configuration local modules
  • 16. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 17. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 18. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 19. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 20. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 21. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 22. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 23. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Configuration local modules
  • 24. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Base de donnée Configuration local modules Module
  • 25. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse Sorties des modules DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Base de donnée Configuration local modules Module
  • 26. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse Sorties des modules DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Base de donnée Configuration local modules Module
  • 27. Architecture d'un module Chargement librarie Sorties du module Données Diff Module d'analyse Données Requêtes aux services Base de donnée Module
  • 28. Architecture d'un module Chargement librarie API Librairie Sorties du module Données Diff API Module d'analyse Donnée Données API Requêtes aux services Service Base de donnée Module
  • 29. Architecture d'un module Chargement librarie API Librairie Sorties du module Données Diff API Donnee Données API Requêtes aux services Service Code fourni au developpeur Base de donnée Module
  • 30. Architecture d'un module Chargement librarie API Librairie Sorties du module Données Diff API Donnée Données API Requêtes aux services Service Code fourni au développeur Code à développer Base de donnée Module
  • 31. 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é
  • 32. Modules d'analyse Détection de nouveaux utilisateurs ● ● Inscription datant de moins d'un mois ➢ Rapport HTML
  • 33. Modules d'analyse Détection de nouveaux utilisateurs ● ● API Sax Réception des données Demande date d'inscription Comparaison Demande URL contributeur Ajout au rapport
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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 ●
  • 41. 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
  • 42. SODA – Smart Osm Diff Analyzer Merci de votre attention A vos analyses!
  • 43. Principe de fonctionnement Sax Module Diff d Diff OSM parser analyse Sorties des modules DOM Diff Module parser d analyse Module de Conversion OSM API Module API d interne analyse Cache Librairies de Base de donnee Configuration local modules Module