#1 Tue 12 April 2011 14:48
- MaelReboux
- Participant actif
- Lieu: Roazhon / Rennnes
- Date d'inscription: 24 Aug 2010
- Messages: 72
Netoyer une couche de polygones
Bonjour,
Je me trouve confronté à quelque chose qui arrive assez souvent, c'est-à-dire : nettoyer une couche de polygone qui contient des chevauchements, des micro-trous, épis, etc.
Nous sommes tous régulièrement confrontés à des données de ce type qu'il faut impérativement corriger pour les rendre pleinement exploitable.
Et je me retrouve là confronté à un double problème : les multiples possibilités de FME (et la richesse de ses transformers) et un manque de méthodologie sur ces traitement particuliers.
J'ai cru comprendre que MRF2DCleaner était fait pour ça mais est sous licence.
Alors : quels sont les préconisations de la "communauté" pour traiter :
- les trous
- les chevauchements
- les épis
- etc, etc
Mes essais avec snapper, anchoredsnapper, generalizer me troublent.
Merci d'avance pour vos retours et propositions.
Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh
Hors ligne
#2 Tue 12 April 2011 15:36
Re: Netoyer une couche de polygones
Il faut d'abord identifier les erreurs de chevauchement/trou en recréant une structure topologique de polygones (intersector et insidepointReplacer en parallèle puis pointonareaoverlayer et enfin tester avec _overlaps !=1 pour trouver les erreurs).
La correction est plus délicate. Il faut attribuer chaque polygone en erreur à un polygone contigu (il manque un Transformer dans FME pour cela). MRFCleaner est effectivement utile dans ce cas.
Pour les épis, il faut penser à SpikeRemover.
Hors ligne
#3 Tue 12 April 2011 15:56
- MaelReboux
- Participant actif
- Lieu: Roazhon / Rennnes
- Date d'inscription: 24 Aug 2010
- Messages: 72
Re: Netoyer une couche de polygones
Bonjour M. GAYTE
Ok pour la détection des overlaps qui indiquerait un trou ou un chevauchement -> je sais faire
Mais c'est justement la partie "correction" qui me tracasse le plus
Il faut attribuer chaque polygone en erreur à un polygone contigu (il manque un Transformer dans FME pour cela)
Oui : je vois bien le problème. Un humain est plus efficace sur ce choix ! Quelles sont les solutions de contournement ?
[maj]
Pour illustrer la détection des trous / chevauchement, cf workbench ci-joint.
Dernière modification par MaelReboux (Tue 12 April 2011 16:54)
Service SIG Rennes Métropole
AITF : Coordinateur GT voies-adresse
Et un peu OSM Bzh
Hors ligne
#4 Wed 18 April 2012 10:13
- Stéphanie B
- Participant actif
- Date d'inscription: 23 Jun 2008
- Messages: 53
Re: Netoyer une couche de polygones
Bonjour,
Je relance le post car j'ai un peu le même problème.
J'ai utilisé le transformer Dissolver pour dissoudre des communes de 2 départements différents selon un code (ces communes faisant partie d'un même département avant 1870). Je me retrouve bien avec un seul polygone.
Mais des trous apparaissent (les communes adjacentes des deux départements n'étaient pas jointes).
Je cherche un transformer qui me permettrait de supprimer ces trous afin de n'avoir plus qu'un polygone plein.
Merci d'avance de votre aide.
Stéphanie
Hors ligne
#5 Wed 18 April 2012 22:52
Re: Netoyer une couche de polygones
Utilisez le génial SliverRemover de FME 2012.
Hors ligne
#6 Fri 20 April 2012 10:22
- Stéphanie B
- Participant actif
- Date d'inscription: 23 Jun 2008
- Messages: 53
Re: Netoyer une couche de polygones
Effectivement ce transformer fonctionne très bien.
Merci !
Hors ligne