[OSM-talk-fr] outils pour traiter les CLC non importés ( fusion/découpage )

Guillaume Allegre allegre.guillaume at free.fr
Jeu 5 Nov 09:58:34 UTC 2009


Le Wed 04 Nov 2009 à 14:49 +0000, Emilie Laffray a ecrit :

> Bah si tu as une implementation potentielle, je peux voir si je peux coder
> cela si je comprends ce qu'on me demande de faire. C'est l'avantage pour moi
> d'utiliser Postgis; je n'ai pas a réfléchir a comment implémenter les
> modifications géométriques que j'ai besoin.
> Mais bon je ne suis pas convaincue qu'une telle solution soit très
> intéressante a moins que tous les polygones aient des excroissances très
> régulières et qu'il n'y ait pas de grosse masse. Enfin, peut être que je
> n'ai pas compris comment ces algorithmes fonctionnent.
> 
> Emilie Laffray

En cherchant un peu dans les publications de géo algo, j'ai trouvé ça :
Mirela Tanase, Remco C. Veltkamp. 
Polygon Decomposition based on the Straight Line Skeleton. 
In: Proceedings ACM Symposium on Computational Geometry (SoCG 2003), 58-67.
http://www.cs.uu.nl/groups/MG/multimedia/publications/art/socg03.pdf

Qui est assez proche de l'idée intuitive que j'en avais, mais je l'ai
juste parcouru rapidement.
Les exemples de décomposition donnés sont assez convaincants, mais pour
des polygones assez simples. Je ne suis pas sûr de ce que ça peut donner
avec des vrais polygones CLC un peu tortueux.

Par contre, ça m'étonnerait que ce soit simple à implémenter en PostGIS
(je ne connais rien aux primitives PostGIS, mais si y'a un calcul de 
squelette intégré, je serai sur le cul).


Eventuellement, on peut essayer une méthode plus bourrine mais peut-être plus
efficace en PostGIS, inspirée de l'érosion en géo discrète.
- on part d'un polygone CLC P
- on calcule une rétractation d'offset d (à estimer) R
- on regarde si le polygone R reste simple ou s'il a des auto-intersections
  En cas d'auto-intersections, on scinde le polygone, au niveau des 
  sommets en question.

- A régler : 
estimation de l'offset d : une fraction (par ex. 5%) du diamètre D du polygone
de départ (on peut approcher D par la diagonale de la boîte englobante de P).
- est-ce qu'on itère ? Quel critère d'arrêt ? est-ce qu'on augmente d en itérant ?


Voilà, ce ne sont que des idées en vrac. J'espère avoir un peu de temps pour 
tester dans les semaines à venir.

-- 
 ° /\    Guillaume Allègre            Membre de l'April
  /~~\/\   Allegre.Guillaume at free.fr  Promouvoir et défendre le logiciel libre
 /   /~~\    tél. 04.76.63.26.99      http://www.april.org




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