Bonjour,

J'ai écrit un script matlab qui lit un fichier osm téléchargé sur
clc.osm.fr pour le découper
(http://clc.openstreetmap.fr/cgi-bin/get-osm.sh%3FFR-73751 par exemple).

Je ne traite pour le moment que l'outer.  Les étranglements sont
localisés et le way de l'outer est découpé en polygones indépendants.
L'outer de l'exemple fait ~40000 nœuds.  Il est découpé en 63
sous-polygones dont la majorité fait ~200 nœuds.  3 polygones restent à
1500, 2500 et 3000 nœuds.  La répartition est donné en
http://cedric.dumez-viou.fr/hist.pdf .  Le résultat est visible ici:
http://cedric.dumez-viou.fr/FR-73751.pdf
Les scripts sont ici http://cedric.dumez-viou.fr/scrips_m.zip

La détection et la construction des découpages à effectuer est assez
rapide (15-20s).  Par contre, le parsing de l'xml/osm est loin d'être
parfait (sensible aux ' et " mais celui trouvé sur le forum de mathworks
était trop lent) et la soustraction de polygones est aussi lente (2min
pour 62 soustractions).  C'est grandement expliqué par le fait que c'est
moi qui codé les routines sans avoir ce genre d'expérience...
Et encore, le polygone présenté est loin d'être parmi les plus grands.

Il faut encore que j'exporte le résultat ce qui implique associer les
inners aux bons sous-polygones, vérifier qu'ils ne s'intersectent pas et
générer un bon fichier osm avec une relation correcte.

Les polygones qui restent "gros" doivent être découpés différemment
(c'est le cas à la base pour FR-21767 et FR-256837) .  Il n'y a plus ou
peu d'excroissances connectées par des étranglements.  Je pensais
joindre judicieusement des inners à l'outer pour diviser le polygone en
2, 4, ...  Notez que je n'ajoute pas de nouveaux nœuds.

Je souhaite porter le code existant en python pour me libérer un peu de
matlab et j'espère que des routines un peu plus optimisées accélèreront
la mise au point.
Je voulais savoir si vous aviez des modules python à me conseiller et
des exemples de code pour manipuler des polygones (découpage, opérations
logiques, ...) .  J'ai jeté un œil à pyosm.py pour parser un osm/xml
mais j'avoue être un peu largué par le format des données retourné...

Mais si le nombre de polygones à traiter ne dépassent pas les 7 présents
sur
http://wiki.openstreetmap.org/wiki/WikiProject_France/Corine_Land_Cover/Op%C3%A9rations_post-import
 , je peux fignoler mes scripts matlab et simplement mettre les résultats à 
disposition.

Cordialement,

Cedric


Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

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

Répondre à