#1 Wed 18 March 2009 12:58
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Détection de trous
Bonjour,
J'ai une couche représentant des zones. A l'intérieur de ces zones, j'ai une autre couche contenant des objets qui devraient recouvrir chaque zone.
Je veux détecter les trous et les extraire dans une 3ème couche. Je pensais tout simplement utiliser un DONUTBUILDER, mais la sortie de ce transformer me rend mon trou, plus une série de parasites (tout ca dans une seule entité).
- Comment puis-je ne récupérer que mon trou (sans parasite bp de tolérance)?
- Comment éviter l'agglomération du résultat
Merci de votre aide et bonne journée
Hors ligne
#2 Wed 18 March 2009 13:11
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: Détection de trous
Bonjour Pierre-Yves,
Pour la détection des trous, c'est plutôt DONUTHOLEEXTRACTOR
Sylvie
ps : t'as raison, les parasites dans les trous c'est la galère
Hors ligne
#3 Wed 18 March 2009 13:27
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Détection de trous
D'apres la doc, DONUTHOLEEXTRACTOR décompose une entité surfacique trouée en ces composants de bases.
Dans mon cas, les trous n'existent pas encore. il faut les créer en "poinconnant" chaque zone avec les objets.
Tout cela pour ne garder que les parties qui n'ont pas pus être "poinconnées". Ces parties représentant alors mes trous. (manque d'objets)
Hors ligne
#4 Wed 18 March 2009 14:12
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Détection de trous
En fait, je pense que mon probleme de parasites vient de la tolérance ou la précision du logiciel ayant fourni les données source.
Peux t'on régler cette tolérance dans FME afin de l'adapter au logiciel source ?
Hors ligne
#5 Wed 18 March 2009 14:46
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: Détection de trous
Avant de poinçonner, tu peux arrondir les coordonnées des entités à la précision voulue avec un CoordinateRounder
Hors ligne
#6 Wed 18 March 2009 16:04
- jaykayone
- Participant actif
- Date d'inscription: 15 Feb 2007
- Messages: 95
Re: Détection de trous
Bonjour,
je pense que vous pouvez utiliser un areabuilder avant le donutholeextractor ...
jeff
Hors ligne
#7 Fri 20 March 2009 06:51
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Détection de trous
je me suis peut-être mal exprimé depuis le début. Je voudrais tout simplement ressortir les manques de données surfaciques d'une couche sur une autre couche. Les objets de la 2ème couche étant censé être inclus dans la 1ere et censé la remplir entierement. (Comme des sections cadastrales dans une commune, où on devrait reconstituer les objets manquants).
Vous trouverez en piece jointe l'extrait du FMW qui devait générer ces parties manquantes (en vert foncé sur la photo d'ecran contenu dans le fichier .doc
Merci de votre aide
Dernière modification par pyjoubert (Fri 20 March 2009 07:38)
Hors ligne
#8 Fri 20 March 2009 09:36
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Détection de trous
Aloha
Je n'ai pas encore ouvert le fmw, mais avec un clipper, tu ne peux pas obtenir cette information ? Non bien entendu.
Si tu pars d'une bd, tu peux toujours essayé ce genre de requête :
Code:
SELECT SDO_GEOM.SDO_AREA (SDO_GEOM.SDO_XOR (PCI_SECT.GEOMETRY, SR1.GEOMETRY, 100 ), 100 ) FROM ( SELECT SDO_AGGR_UNION (SDOAGGRTYPE (PCI_PARC.GEOMETRY, 100)) GEOMETRY FROM A_REIMS.PCI_PARC PCI_PARC WHERE PCI_PARC.IDENT LIKE '454000BD%' GROUP BY SUBSTR (PCI_PARC.IDENT, 1, 8)) SR1 , A_REIMS.PCI_SECT PCI_SECT WHERE (PCI_SECT.IDENT = '454000BD')
Celle-ci me renvoie l'aire de l'intersection symétrique des parcelles et de la section BD (ce que tu recherches).
Sous FME, je ne vois pas encore comment faire.
Dernière modification par Brindavoine (Fri 20 March 2009 15:27)
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#9 Mon 23 March 2009 11:21
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Détection de trous
Aloha
Si tu n'as toujours pas de solutions, j'ai produit quelque chose sur les parcelles et les sections de notre base. Voir le fmw joint. Je découpe les objets suivant les limites de mes objets englobants, puis j'aggrège le résultat. Ensuite, je lie l'objet limite et l'aggrégat dans un donut builder, puis je récupère l'objet extèrieur au "trou", ce qui équivaut dans mon cas à l'espace laissé libre par les parcelles dans les sections.
Dernière modification par Brindavoine (Mon 23 March 2009 11:21)
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne