Le 09/02/2012 23:07, isnogoud a écrit :
Le 09/02/2012 09:48, rldhont a écrit :
Avant tout import, une petite analyse des données brutes est nécessaire.

La ville de Montpellier fourni aussi son référentiel de rue ainsi que l'ensemble des passages piétons de la ville. J'avais déjà pratiqué une petite analyse des données des passages piétons et il se trouve que la position peut laisser à désirer. Dans le référentiel de rue, chaque rue est découpé en tronçon reliant 2 intersections qui se suivent. Ensuite chaque tronçon porte un CODE_VOIE qui permet d'identifier la voie et qui sert de clef étrangère pour lier d'autres éléments dont les passages piétons et les adresses. Et donc si on utilise ce CODE_VOIE pour lier un passage piéton ou une adresse à sa rue on peut avoir quelques surprises. C'est ainsi que 26323 adresses se trouvent à plus de 11 mètres de la rue à laquelle elle est associé d'après le CODE_VOIE. D'ailleurs ce CODE_VOIE à servi à créer l'adresse.

Pour finir l'analyse :
* la majorité des adresses se trouvent à moins de 100 mètres
* 5215 adresses se trouvent à plus de 500 mètres de leur rue
* 2245 adresses se trouvent à plus de 1 km de leur rue
* 524 adresses se trouvent à plus de 2 km de leur rue
* 70 adresses se trouvent à plus de 3 km de leur rue
* 5 adresses se trouvent à plus de 5 km de leur rue


Merci pour cette analyse détaillée qui m'a amené à regarder de plus près les résultats des traitements sur Montpellier.

Pour associer une adresse à une rue d'OSM, je procède comme suit :
- calculer le barycentre des adresses de chaque rue de l'opendata.
- calculer le barycentre de chaque rue d'OSM (highway avec un name renseigné sur le secteur de Montpellier) - calculer la distance de l'adresse la plus éloignée du barycentre des adresses de la rue

Pourquoi utiliser un barycentre ? Dans PostGIS tu peux utiliser :
* ST_Line_Locate_Point qui renvoit un float entre 0 et 1 indiquant la position de la porjeté d'un point sur une ligne * ST_Line_Interpolate_Point qui renvoit un point à partir d'une ligne et d'un float entre 0 et 1, peut servir avec ST_Line_Locate_Point pour créer le point de la projection sur la ligne * ST_Length et St_MakeLine en réutilisant ST_Line_Interpolate_Point et ST_Line_Locate_Point pour calculer la distance
Tu obtiendrais ainsi quelque chose de précis

- associer les rues d'OSM et les rues de l'opendata par proximité du nom.
Fabien Poulard m'a suggéré quelques pistes. J'ai retenu l'identité de SOUNDEX et une distance de Levenshtein < 3. Cela permet de tenir compte des fautes de frappe éventuelles.

Pour Montpellier, les calculs donnent :

2 663 rues avec des barycentres distants de moins de 100 m.
3 446 rues avec des barycentres distants de moins de 500 m
3 592 rues avec des barycentres distants de moins de 1 000 m
3 651 rues avec des barycentres distants de moins de 2 000 m
3 767 rues avec des barycentres distants de moins de 5 000 m

Pour terminer, j'essaye de gommer l'effet d'échelle lié à la longueur variable des rues en appliquant la condition suivante : La distance entre les barycentres ne doit pas dépasser deux fois la distance de l'adresse la plus éloignée au barycentre des adresses.

Les résultats ont été assez satisfaisants sur la communauté urbaine de Nantes, d'autant qu'il y avait des rues homonymes situées dans des communes différentes.

Pour Montpellier, l'opendata fournit 2879 rues. Le script fait les associations de 2131 rues d'opendata avec 3551 rues d'OSM.
Il reste 748 rues sans association avec OSM.
L'import semi-automatique conduit les contributeurs à créer la rue dans OSM lorsqu'elle manque ou à corriger le nom. Sur Nantes, des incohérences sont fréquentes sur le type de voie (rue/avenue/chemin/boulevard/impasse...). D'autres corrections portent sur des doublons d'adresses ou des numéros manifestement mal associés à la rue d'après l'ordre des numéros dans la rue.

Avant tout import il faut déjà supprimer tous les points mal placés, non ?

René-Luc
3Liz
Montpelliérain


Comment définir qu'un point adresse est mal placé ?

Pour Info les 5 adresses à plus de 5 km sont :
* 3 adresses d'une même rue
* 2 adresses d'une autre rue
Les rues et les points adresses sont à l'opposé l'un de l'autre.
J'ai des images pour le représenté mais ça ne passe pas sur la liste

Certains ont pris l'habitude de mettre le numéro en attribut de bâtiment. Le rendu est peut être satisfaisant mais ne permet pas de savoir de quel côté se trouve la boite au lettre ou l'entrée. Apparemment, le point d'adresse de l'opendata est placé à proximité de la boite aux lettres en limite de parcelle cadastrale (c'est souvent le cas pour Nantes).

Pour Montpellier j'ai des doutes sur certains adresses ;-)


A Nantes, nous importons le point proposé par l'opendata mais cela est laissé à l'appréciation du contributeur, notamment lorsqu'il a une connaissance précise du terrain. Avant de déplacer ou d'effacer des points existants, il est de bon ton de contacter l'auteur pour obtenir son assentiment.

Oui, c'est la philosophie d'OSM


Pour terminer, il est à noter que l'import semi-automatique sur Nantes permet d'identifier des anomalies dans les données de l'opendata mais aussi de corriger des erreurs d'OSM. Pour Nantes, le traitement complet va prendre plusieurs mois. L'apport d'outils comme celui mis au point par Bruno se révèle indispensable pour faciliter la tâche.

D'ores et déjà, un peu de publicité pourrait susciter des applications auprès des acteurs gravitant autour de l'opendata. Un des arguments à faire valoir est qu'OSM est meilleur que les données brutes de l'opendata grâce aux corrections apportées par les contributeurs.

A Montpellier les acteurs de l'OpenData et les responsables sont en contact avec la communauté OSM :
* Organisation d'un e Mapping Party par le projet OpenData de Montpellier
* Discussion avec les contributeurs montpelliérains

Mais en fait il faut réussir à remonter au niveau des services qui fournissent les données mais ne s'intéressent pas forcément à l'OpenData


René-Luc



Librement

Christophe

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr


_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à