[OSM-dev-fr] Framewok d analyse de diffs Openstreetmap
THEVENON Julien
julien_thevenon at yahoo.fr
Sam 3 Nov 22:47:23 GMT 2012
Hello,
Comme indique dans mon mail precedent je developpe depuis quelques temps un framework d analyse de diffs OSM.
Le but de ce framework est de developper des analyses maisons a faire tourner a la maison sans avoir besoin d utiliser une infrastructure "lourde" a base de logiciels SIG et base OSM.
Les possibilites sont evidemment moindres mais je pense que cela peut permette d avoir un rapport interet/complexite assez interessant.
Le framework est developpe en C++ et fournit une sorte d infrastructure et de services autour des diffs de maniere a ce que les personnes souhaitant realiser des analyses ne se concentre que sur elles.
Les analyseurs sont des librairies C++ chargees par le framework et beneficiant des ses services.
Via un fichier de conf il est possible de choisir quels modules charger et instancier, configurer les modules et le framework.
Le framework s occupe de gerer le telechargement des diffs ( soit en direct soit depuis une diff arbitraire ), fournit le parsing du contenu XML, fournit un acces C++ a l API OSM, une representation C++ des objets OSM ( changeset, nodes, ways, relations ), un cache permettant de stocker des donnees en local ( cela evite de trop taper sur l API ), charge les modules etc.
Du point de vue accroche des modules plusieurs niveaux d abstractions sont actuellement possible :
SAX : le module recoit les evenements SAX lors du parsing du fichier XML du diff
DOM : le module recoit une representation C++ de l aborescence XML
CPP : le module recoit les representations C++ des objets OSM ( node, way relations + le type de modification)
Je compte rajouter de nouveaux niveaux d abstractions ( par exemple une representation plus fine/detaillee de ce qui a ete modifie) ainsi que la possibilite de cascader des modules pour avoir des analyses plus modulaires.
Pour l instant j ai developpe un module qui permet de detecter les utilisateurs inscrits depuis moins de 3 mois, un module qui effectue le suivi des objets d un utilisateur ( cf mon mail precedent) , des modules de demo pour les 3 niveaux d abstraction actuel.
Je travaille aussi sur un module qui permette de generer 3 fichiers OSM differents pour les objets crees/modifies/supprimes pendant un intervalle de temps donne.
Le framewok etant un executable il est possible de le lancer sur sa machine perso, avec des parametres qui peuvent changer ( par exemple pour faire des analyses live ou dans le passe our sur des periodes differentes avec des parametres differents) et donc de choisir exactement ce que l on veut faire.
Pour l instant je me suis plus consacre au dev qu a la doc donc n hesitez pas si vous avez des questions ou des suggestions sur l outil, son architecture, limitations, applications possibles etc
J espere que cela pourra peut etre servir a quelqu un
Julien
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20121103/09fe212c/attachment.html>
Plus d'informations sur la liste de diffusion dev-fr