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
_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à