Bonjour à tous, J'ai commencé à faire un premier programme, ocaml-osm-check[1], d'analyse et de vérification des tags. Rien de bien exceptionnel mais peut-être que ça peut aider pour rendre les cartes OSM plus « propres ».
J'ai appliqué mon programme sur hexagone-latest.osm.bz2 du 1er juin. == Vérification == Exemple de sortie : http://www.linux-france.org/~dmentre/open-street-map/hexagone-latest.osm.bz2.warn.html Les quelques vérifications qui sont faites : - vérifie que le tag « highway » est bien appliqué sur les /nodes/ et /ways/. Par exemple : 1. Node id=3178004 user='chasu' lat=46.8304494 lon=6.8548871: Tag 'highway' with value 'motorway_link' is not be allowed for this element -> d'après « Map Features[2] » un « motorway_link » ne peut pas être appliqué à un /node/. Bien souvent, les warnings sont dûs à des erreurs de frappe (par exemple, warning 780, GwennG qui met « pedstrian » au lieu de « pedestrian » ;-) ou des valeurs « bizarres ». - vérifie le type de la valeur de certains tags, entiers ou flottants. Par exemple : 57. Node id=26692595 user='' lat=48.4312043 lon=0.0911449: Value '28 935' for tag 'population' is not an integer -> l'espace dans « 28 935 » fait que je considère que ce n'est pas légal. Il n'y a que quelques valeurs qui sont écrites comme ça. Bon, je ne dis pas que mes vérifications sont bonnes. :-) Il y a certainement des mauvaises interprétations dans mon programme. Un premier retour serait que certains utilisateurs expérimentés d'OSM jettent un coup d'oeil sur mes messages et me disent ce qui n'est pas une erreur (et pourquoi). On peut imaginer des vérifications plus précises, par exemple que « course » est un flottant entre 0 et 360. En tout état de cause, faire une analyse ultra-précise me semble difficile vu la variabilité des valeurs pour certains tags et le nombre de tags. Mais on peut imaginer de suivre les choix de la communauté « au plus près », au moins pour les tags importants. == Analyse == Exemple de sortie : http://www.linux-france.org/~dmentre/open-street-map/hexagone-latest.osm.bz2.stats.html L'idée est de sortir tous les couples de tags (clé, valeur). Évidemment, certains tags ont des valeurs hautement variables (« ref » ou « name » par exemple) donc dans ce cas là je ne compte que les occurences de la clé (lignes avec « -- » pour la valeur). Quand il y a moins de cinq éléments qui ont un même couple de tag, je sors les identifiants OSM des éléments plutôt que le nombre d'occurences. La lecture rapide de cette page est éclairante, il y a de tout ! :-) Ça peut notamment donner des idées sur des vérifications à faire, par exemple : osmids:4757302; maxspeed 30km/h -> normalement la vitesse de « maxspeed » est un entier, donné sans unités. osmids:13502467; key junction=roundabout -> apparement, quelqu'un n'a pas compris la façon d'écrire les tags. Je suis preneur de toute critique, positive ou négative. Amicalement, david Footnotes: [1] C'est du logiciel libre (GNU GPLv2), programmé en OCaml et dont les sources sont disponibles ici : http://www.linux-france.org/cgi-bin/hgwebdir.cgi/ocaml-osm-route/latest [2] http://wiki.openstreetmap.org/index.php/Map_Features -- GPG/PGP key: A3AD7A2A David MENTRE <[EMAIL PROTECTED]> 5996 CC46 4612 9CA4 3562 D7AC 6C67 9E96 A3AD 7A2A _______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk-fr