[OSM-talk-fr] [dev] OsmWatch : outil pour voir les modifications/ajouts/suprression d'un ensemble d'objets

kimaidou kimaidou at gmail.com
Jeu 22 Avr 09:08:21 UTC 2010


Bonjour,

Je suis en train de développer un petit outil en python qui permette sans
installation complexe de faire du suivi rapide de l'évolution des objets
dans la bdd OSM sur une ou plusieurs zones. Je l'ai appelé "OsmWatch"

Pour l'instant, c'est encore un embryon, mais les fonctionnalités basiques
sont à peu près en place, et donc j'en parle ici pour qu'on ne soit pas
plusieurs à faire un outil équivalent dans notre coin, mais pour rassembler
les bonnes volontés. Je souhaitais attendre un peu, mais Germaine de
Marseille a accéléré les choses...

Objectif:
*********
Cet outil va permettre de suivre l'évolution d'objets OSM via le :

* Choix d'une ou plusieurs zones (bbox)
La taille de chaque bbox doit rester pas trop grande (limites de l'api et de
la xapi, cf description technique + loin)

* Choix du suivi des objets. L'outil doit permettre de suivre des groupes
d'objets caractérisés par :
- une liste d'osm_id fixe
- une valeur pour un tag, par exemple toutes les boulangeries shop=bakery.
- un utilisateur : soit tous les objets dernièrement édité par l'utilisateur
X, soit (plus lourd) tous les objets qui ont une fois été édités par X

On peut avoir plusieurs listes, donc suivre par exemple tous les objets
"boulangerie" et tous les supermarchés, tous les objets édités par Bob et
par Germaine sur la ou les zones.

Fonctionnement
***********
L'objet de cet outil n'est pas de stocker tout l'historique de chaque objet
à chaque passage, ni de proposer des outils statistiques de folie, ni
d'éditeur carto, etc.
J'ai décidé plutôt de faire un outil simple, qui fonctionne par passe.
Lorsqu'on le lance,
* il va chercher via l'api et la xapi les objets par rapports aux critères
rentrés (utilisateur, tags, etc.)
* il compare cette liste d'objet à celle obtenue lors de la dernière passe
* Il fait un rapport html avec les différences : objets modifiés, supprimés,
ajoutés depuis la dernière fois.
* il écrase les données stockées par les nouvelles (qui seront comparées
lors de la prochaine passe).

Technologie
**********
Pour l'instant, ce n'est qu'un petit et moche fichier python, qu'il faudra
que j'organise mieux.
Il est basé sur la pythonOsmApi (
http://wiki.openstreetmap.org/wiki/PythonOsmApi , merci à l'auteur !) , mais
utilise aussi la XAPI pour ses capacités de recherche avancée.
Les données de chaque passe sont enregistrées dans une base sqlite, pour que
l'outil soit portable.
Je cherche ici à faire un outil léger et portable, qu'on puisse lancer d'une
simple clé USB.
Pour l'instant, l'outil fait juste un "rapport" au format HTML avec des
codes couleurs pour dire "supprimé", "modifié", ajouté et avec des liens
vers la dscription de l'objet dans OSM.
Pour l'instant, l'outil suit seulement les nodes, mais bien sûr je vais
étendre à tous les objets (je teste d'abord)

Idées d'utilisation
*********
* Je suis une commune, j'ai "donné" 550 poins de bancs publics à OSM, je
veux pouvoir les suivre, mais aussi voir si d'autres sont ajoutés par des
utilisateurs
* Je veux voir les modifications faites sur les objets que j'ai édités
précédemment
* Je savoir quand quelqu'un ajoute des écoles dans ma zone
* etc.

Je ne cherche pas ici à faire un outil qui permette d'éditer directement la
bdd OSM (par exemple : "Tiens, Germaine a supprimé mon arrêt de bus, hop, je
clique et il est recréé !" ). Je préfère que la personne soit prévenue, et
ensuite qu'elle utilise les outils d'OSM manuellement.


Idées futures
*********
* lancé l'outil périodiquement sur un serveur
* faire une interface graphique
* envoyer un email
etc.

Voilà pour la description générale.

Les étapes :
* j'améliore un peu le code, je le nettoie et l'organise
* je crréé un projet OpenSource sur une forge quelconque
* tout le monde peut l'améliorer, le faire avancer, etc.

Kimaidou
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20100422/25db157b/attachment.htm>


Plus d'informations sur la liste de diffusion Talk-fr