#1 Fri 26 January 2018 16:51
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Découpage de ligne selon des points de début et de fin
Bonjour @ tous.
Je possède un fichier de points en XY et un fichier de lignes.
Ces points se trouvent sur les lignes (merci AnchoredSnapper), et chaque point posséde comme attribut : s'il s'agit d'un point de début ou d'un point de fin et un numéro unique identique entre le point de début et le point de fin.
L'idée c'est de pouvoir extraire les lignes présentes entre ces points de début et de fin afin de faire un calcul de longueur.
J'arrive avec PointOnLineOverlayer à découper ma ligne, mais je ne distingue pas ce qu'il faut enlever de ce qu'il faut conserver.
Un dessin valant parfois mieux qu'un long discours, vous trouverez en pièce jointe une explication de mon problème.
Merci par avance de votre aide.
Geo-x
Hors ligne
#2 Fri 26 January 2018 22:06
Re: Découpage de ligne selon des points de début et de fin
Bonsoir intéressant comme problème.
Je n'ai pas trop réfléchi et un jeu de données test m'aiderais sûrement mais comme ça à chaud : pourquoi ne pas tester via un spatialrelator le lien entre la ligne et les points pour ensuite chercher la ligne récupérant deux attributs identiques.
Ex si la ligne touche deux points à 10 je la garde sinon je la supprime.
A voir si ça peut jouer.
Bonne soirée.
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Mon 29 January 2018 10:53
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Bonjour Loïc et merci de votre réponse.
J'ai du mal à voir comment cela est possible en utilisant le transformer spatialrelator quelque part ce que vous me dites :
si la ligne touche deux points à 10 je la garde sinon je la supprime.
c'est déjà quelque chose que je fais en utilisant PointOnLineOverlayer.
J'ai fait un exemple test en pièce jointe si vous souhaitez tester, de mon côté, je n'ai pas plus avancé sur le problème, il doit me manquer quelques connaissances sur les transformers capables de répondre à mes interrogations.
Je continue à regarder...
Geo-x
Hors ligne
#4 Mon 29 January 2018 11:16
Re: Découpage de ligne selon des points de début et de fin
Bonjour Geo-x,
Est-ce que quelque chose comme ça répond au besoin ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#5 Mon 29 January 2018 13:25
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Alors déjà merci d'avoir "planché" si gentiment sur mon problème.
La piste semble bonne,, je n'arrive pas à restaurer votre FMW sur ma version de FME qui est antérieur à la vôtre alors j'ai tenté plusieurs solutions d'adaptation du transformer spatialrelator mais dans tous les cas que j'ai étudié, il ne prend pas en compte les numéros des points.
Hors ligne
#6 Mon 29 January 2018 13:38
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
En fait voyant le résultat que cela donne il faudrait que je fasse une fusion des lignes ayant la même géométrie et le même numéro et que je rejette les autres, c'est ce qui me permettrait d'arriver au résultat escompté.
Hors ligne
#7 Mon 29 January 2018 13:38
Re: Découpage de ligne selon des points de début et de fin
C'est avec plaisir que je vous donne un coup de main,
si vous attendez le résultat en pj mon workbench est le bon, il suffit juste d'ajouter un duplicatefilter sur la fin sur les attributs code + numero
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#8 Mon 29 January 2018 13:41
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
C'est ce qu'on appel de la synchronisation !
Et bien enchanté à duplicatefilter c'est exactement lui que je cherchais sachant que j'étais parti sur du spatialfilter...
Encore un grand merci pour votre aide ! (Qui dure depuis plusieurs années maintenant)
Geo-x
Hors ligne
#9 Mon 29 January 2018 13:42
Re: Découpage de ligne selon des points de début et de fin
Parfait et au plaisir de vous aider encore quelques années sur Georezo ;-)
DuplicateFilter est un excellent ami sur FME !
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#10 Tue 30 January 2018 12:55
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Bonjour Loïc.
En regardant de plus près, je me suis rendu compte que certaines de mes données "s'entrecroisent", c'est à dire que les ponctuelles ne sont pas forcément dans un ordre :
ID10 début ----- ID10 fin ----- ID20 début ----- ID20 fin
mais peuvent être dans l'ordre :
ID10 début ----- ID20 fin ----- ID10 fin ----- ID20 début
voir même :
ID10 début ----- ID20 fin ----- ID10 fin ----- ID30 début ----- ID20 début ----- ID30 fin
J'ai mis en pièce jointe un exemple du problème et du workbench en cours sachant que je l'ai un peu travaillé depuis nos derniers échanges.
Geo-x
Hors ligne
#11 Tue 30 January 2018 13:12
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Il y a également quelque chose que j'ai du mal à comprendre, c'est comment fonctionne le DuplicateFilter pour moi il s'agit de filtrer les éléments ayant une géométrie identique et un attribut commun.
Hors je me rend compte, dans mon traitement, que certains éléments passent alors qu'ils n'ont que la géométrie en commun...
Hors ligne
#12 Tue 30 January 2018 14:01
Re: Découpage de ligne selon des points de début et de fin
Bonjour Geo-x,
Le DuplicateFilter effectue un tri sur les attributs et non sur la géométrie. Dans le process et vu que le le couple Numero + Code n'est pas unique je propose d'ajouter un Counter après SpatialRelator pour ensuite ajouter l'attribut _count en plus de Numero et Code dans DuplicateFilter.
Cela devrait déjà répondre à une de vos interrogations.
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#13 Tue 30 January 2018 14:10
Re: Découpage de ligne selon des points de début et de fin
Pour l'autre problème j'ai pu voir qu'il y avait également 4 points ayants un id à 30 que faut-il faire dans ce cas ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#14 Tue 30 January 2018 14:12
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Il s'agit d'une erreur... désolé...
Hors ligne
#15 Tue 30 January 2018 15:44
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Je ne suis pas sûr de comprendre l'importance du counter dans ce cas-là.
En regardant de plus près les différents cas possible une fois le transformer ListExploder utilisé, j'ai identifié les cas suivants :
1/ 1 Ligne : Je ne la conserve pas, je n'en tient pas compte
2/ 2 Lignes avec géométries et numéros identiques : Je conserve qu'une ligne sur les deux
3/ 2 Lignes avec géométries identiques et numéros différents : Je conserve 1 ligne sur les deux
4/ 3 Lignes avec géométries identiques dont 2 lignes avec numéros identiques + 1 lignes avec un numéro différent : Je conserve 1 des 2 lignes en double
Au final, avec un AttributeFilter j'arrive à me débrouiller pour le cas 1, pour les cas 2, 3 et 4 je pense que j'arriverais à me débrouiller si j'arrivais à identifier les géoémtries en double ayant un numéro identique ou pas.
Hors ligne
#16 Tue 30 January 2018 15:51
Re: Découpage de ligne selon des points de début et de fin
Pour trouver une geometrie en double on peut utiliser un spatialrelator sur equals
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#17 Tue 30 January 2018 16:01
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Ça voudrait dire qu'il faudrait que je fasse une même source pour le requestor et le supplier ? SpatialRelator permet également de faire un filtre sur les données répliquées dans un attribut donné ?
Hors ligne
#18 Tue 30 January 2018 16:15
Re: Découpage de ligne selon des points de début et de fin
Oui il faut faire passer les lignes dans requestor et supplier avec le test equals. Si le champs related_candidates >= 1 c'est un objet dupliqué
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#19 Tue 30 January 2018 18:19
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
J'ai compris à quoi correspond le counter avant le ListExploder c'est exactement ce que je cherchais !
Juste pour finaliser un peu mon travail, savez-vous quel transformer utilisé pour un accrochage de point à point pour le placer juste après mon transformer AnchoredSnapper histoire de placer au même endroit les points à proximité les uns des autres ?
Encore un grand merci pour votre aide.
Geo-x
Hors ligne
#20 Wed 31 January 2018 09:02
Re: Découpage de ligne selon des points de début et de fin
Bonjour,
Très bien si le Counter répond bien au besoin et que vous avez compris le pourquoi du comment.
Pour la dernière question l'idée est de regrouper sur un point, le nuage de point autour de ce dernier sur une distance X mètres ? Ne serait-il pas plus simple de supprimer ces derniers ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#21 Wed 31 January 2018 09:11
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Bonjour Loïc.
L'idée c'est, toujours sur ma ligne qui a "snapper" les points sur certains vertex, que les points qui sont proches puisse se snapper l'un sur l'autre ou l'autre sur l'un (l'ordre n'a pas d'importance).
J'ai bien testé AnchoredSnapper et Snapper mais je n'ai pas le résultat escompté, problème de configuration ?
Dernière modification par Geo-x (Wed 31 January 2018 09:11)
Hors ligne
#22 Wed 31 January 2018 09:20
Re: Découpage de ligne selon des points de début et de fin
Je veux bien le workbench avec le lot de données pour regarder
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#23 Wed 31 January 2018 10:19
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Il s'agit toujours du même WorkBench par exemple sur les points donnés en exemple joint.
Hors ligne
#24 Wed 31 January 2018 10:29
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Je viens de tester avec le transformer NeighborFinder ça ne fonctionne pas si j'appel 2 fois la même couche (Base et candidate) si j'ajoute un attribut au tout début de mon traitement pour indiquer les points de départ et de fin, et que j'applique un AttributeFilter sur ce champ créé pour avoir un Base et un candidate différent, ça fonctionne.
Est-il possible de faire un traitement similaire en ayant les mêmes Base et Candidate ?
Hors ligne
#25 Wed 31 January 2018 10:39
Re: Découpage de ligne selon des points de début et de fin
Serait-il dommageable de ne pas les conserver ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#26 Wed 31 January 2018 10:41
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Oui il faudrait mieux que les points se superposent.
Si je sépare attributairement les points en base et candidate ça fonctionne avec AnchoredSnapper donc la seule question qu'il me reste c'est : Est-il possible d'utiliser un accrochage en ayant une couche d'entrée identique ?
Hors ligne
#27 Wed 31 January 2018 10:44
Re: Découpage de ligne selon des points de début et de fin
Je ne sais pas si c'est possible mais n'est-il pas envisageable de modifier la couche en amont avec un champ supplémentaire pour que ça fonctionne pour qu'après on supprime l'attribut ajouté avec AttributeKeeper ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#28 Wed 31 January 2018 10:45
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Découpage de ligne selon des points de début et de fin
Je crois que je vais faire comme ça :-) Merci de votre aide Loïc !
Hors ligne
#29 Wed 31 January 2018 10:48
Re: Découpage de ligne selon des points de début et de fin
Avec plaisir
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne