[OSM-dev-fr] Travailler sur des imports partiels

Philippe Verdy verdy_p at wanadoo.fr
Mer 4 Juil 21:06:20 BST 2012


Le 4 juillet 2012 18:10, Philippe DAVID <philippe.david at allgoob.com> a écrit :
> Euh ce n'est pas le même problème que celui dont je parlais sur l'autre
> liste.
> Là les polygones n'apparaissent pas du tout.

Parce que dans la conversion des ways, ils étaient rompus. Si la
boucle n'est pas bouclée, plus rien de la zone n'apparait, elle n'est
pas remplie.

> Je me disais que suivant comment leur export est fait, ça peut bugger un peu
> pour tout ce qui se trouve pile à la frontière. Donc je voulais savoir si
> qqun a déjà travaillé sur des imports partiels et si il a rencontré ce type
> de pb.

l'outil que tu utilise devrait être capable de combiner plusieurs
fichiers OSM. Cela ne devrait poser aucune problème puisque tous les
objets OSM ont un numéro de version, il suffit de garder le numéro le
plus élevé. Donc si dans le gros fichier OSM (dans lequel n'a été
extrait que les zones fermées), il manque des objets, et que tu
importe des petits fichiers OSM supplémentaires pour les zones
manquantes et tu les combine, cela fera une mise à jour des trous en
attendant que tu puisses importer une nouvelle version du gros fichier
(là encore par combinaison, en allant vérifier ensuite si des objets
de l'ancienne version du gros fichier qui ne sont plus dans la
nouvelle version n'ont pas été supprimés dans la base).

Il devrait y avoir des outils pour faciliter cette combinaison, mais
JOSM permet de faire de telles fusions entre des calques OSM chargés
séparément, afin de créer un nouveau calque fusionné : il signalera
les conflits éventuels et te permettra aussi pour les résoudre d'aller
charger dans un calque supplémentaire la dernière version à jour de
cet objet dans la base OSM. afin de savoir si un trou dans la nouvelle
version n'est que temporaire.

Souvent ce qu'on voir c'est que le trou a été créé par un way qui a
été coupé en deux : on voit alors encore la plupart des anciens noeuds
mais dont une partie qui ne semblent reliés à aucun way, parce que
dans le jeu de données il manque encore le nouveau way qui a été
ajouté pour lier ces noeuds.
Il reste alors à vérifier les relations qui utilisent encore la partie
qui a été gardée pour savoir quelles relations sont nécessaires aussi
pour le nouveau way qui manquait.

Etant donné que quand on coupe un way en deux, il y a assez souvent
aussi des conflits d'édition pendant la sauvegarde, la partie
manquante du nouveau way peut ne pas être pendant une durée parfois
assez longue dans la base, simplement parce qu'elle n'a pas encore été
envoyée mais la partie conservée a été elle conservée.

Certains conflits demandent beaucoup de temps pour les résoudre, avec
des téléchargements et mises à jour assez longues à faire et
volumineuses en données. C'est le cas pour les relations des régions
car on ne peut pas les charger en totalité par une requête de tous les
objets dans un rectangle. On procède par chargements successifs dans
les zones où il apparait des trous pour savoir où est passé le way qui
manque et qui se connecte encore au noeud voulu pour fermer la boucle.

De temps en temps on verra que cela aboutit à deux ways : le way
complet (encore présent) et un nouveau way partiel qui se superpose,
tandisque le way complet n'a pas encore été mise à jour dans la base
car l'utilisateur qui a créé le nouveau way partiel est en train de
résoudre un conflit d'édition et n'a pas encore pu transmettre la
totalité des données.

Quand les outils automatiques de Geofabrik.de tournent, ils
n'attendent pas la fin de résolution de ces conflits. Ils prennent la
base à un instant T. Il reste donc des éléments manquants avec
lesquels il faut aller à la pêche aux informations.

Comme Geofabrik dans son fichier généré élimine les relations
incomplètes, tu ne trouves rien et c'est à toi d'aller chercher les
éléments qui manquent. On aimerait bien que Geofabrik non seulement
exporte des fichiers OSM mais aussi exporte une analyse des relations
brisées afin qu'on sache où aller chercher les infos manquantes (et
qui sont certainement encore dans la base, au moins dans une version
antérieure).

Ce travail de fermeture des relations est ce qui est fait de temps en
temps pour les gros shapefiles disponibles en téléchargement séparé
sur le site OSM (comme les lignes de côtes). Ces shapefiles sont
fermés mais alors pas nécessairement à la dernière version, il y a des
éléments ajoutés provenant de la fusion avec des versions antérieures.
Ils sont tous produits avec une supervision manuelle, c'est un gros
travail à faire qui prend pas mal de temps.

Si les trous sont petits (ou des points distincts se superposent, les
shapefiles tentent aussi la fusion des points pour fermer les
relations, ou de les relier par un segment suppélementaire si leur
distance est inférieure à un certain seuil (en dessous de 50 mètres,
il n'y a guère d'ambiguité sur la façon de fermer une ligne de côte
par exempl, même si ça veut dire que ce trou fermé arbitrairement
pourrait correspondre à l'embouchure d'une petite rivière, ou bien
parce qu'une ligne de côte a été découpée pour délimiter une plage, ou
ajouter une jetée).



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