#1 Tue 09 February 2016 11:07
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Problème de somme sur le transformer Dissolver
Bonjour @tous.
J'ai un souci sur lequel je me casse la tête au niveau du transformer Dissolver, je m'explique.
1/ J'ai un maillage de carreaux composé de la façon suivante :
Maille 1 : champ_id = 10 / champ 1 = NULL / champ 2 = 2
Maille 2 : champ_id = 10 / champ 1 = 0 / champ 2 = 2
Maille 3 : champ_id = 10 / champ 1 = 1 / champ 2 = 2
Maille 4 : champ_id = 10 / champ 1 = 2 / champ 2 = 2
2/ Je fais passer ce maillage vers un transformer Dissolver_1 paramétré de la façon suivante :
Regrouper par : champ_id
Dissolution des inclusions : Oui
Accumuler les attributs en entrée : Oui
Attribut(s) à sommer : champ 1, champ 2
Attribut nbre d'éléments dissous : nombre
3/ J'ai en résultat :
Maille 1 : champ_id = 10 / champ 1 = 4 / champ 2 = 8 / nombre = 4
Alors ma question est la suivante : Pourquoi Dissolver me calcul-t-il 1 élément de plus sur certains champs ???? (A savoir dans cet exemple le champ 1)
----------------------------------------------------------------
Pour information j'ai testé la façon suivante :
2/ Je fais passer mes mailles par un AttributeRemover et je ne conserve que les champs : champ_id / champ 1
3/ Je fais passer ce maillage vers un transformer Dissolver_2 paramétré de la même façon que Dissolver_1 :
Attribut(s) à sommer : champ 1
4/ J'ai en résultat :
Maille 1 : champ_id = 10 / champ 1 = 3 / nombre = 4
Et là je me dis : Mais Pourquoi ?? Je ne comprend pas du tout le comportement de FME sur ce coup-là. Avez-vos une idée ?
Par avance merci.
Geo-x
Dernière modification par Geo-x (Tue 09 February 2016 11:08)
Hors ligne
#2 Tue 09 February 2016 11:24
Re: Problème de somme sur le transformer Dissolver
Salut,
C'est un souci de gestion du NULL donc ? Et si tu passes 0 à la place du NULL ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Tue 09 February 2016 11:25
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Alors mon exemple n'est pas très précis dans le sens ou dans le Workbench que je traite, j'ai plusieurs NULL, mais j'ai toujours un +1 sur le champ1.
Pour information aussi je suis sur FME 2012.
Hors ligne
#4 Tue 09 February 2016 15:11
Re: Problème de somme sur le transformer Dissolver
T'as pas un jeu de données pour tester ?
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#5 Tue 09 February 2016 18:12
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Vous trouverez en pièce jointe un jeu de données (Le champ incriminé = habitat_8).
Je viens de me rendre compte que cet addition inattendue est en fait une conséquence d'un traitement parallèle que je vous laisse découvrir, mais pourquoi il y a cette conséquence ?? Là je sèche ...
Geo-x
Hors ligne
#6 Wed 10 February 2016 10:15
Re: Problème de somme sur le transformer Dissolver
Salut j'ai regardé ton workbench.
Déjà personnellement pour la jointure spatiale j'utiliserai Saptialrelator avec un contains+ intersect si besoin
Ensuite, je pense qu'un aggregator en fin de parcours serait plus adapté par rapport au dissolver
Je pense que vers la fin de ton workbench le fait de re-laisser passer toutes les données via ton AttributeRemover_10 vers ton dissolver est une erreur qui doit fausser la somme globale.
Une idée de comment j'aurais fais en pj
Dernière modification par heretik25 (Wed 10 February 2016 10:16)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#7 Thu 11 February 2016 11:55
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Merci pour ta réponse, je regarde dès que possible et te tiens au courant.
Geo-x
Hors ligne
#8 Tue 16 February 2016 10:57
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Je viens de tester sur un faible jeu de données et il semblerait, en effet, que l'aggregator rectifie ce problème.
Je vais donc passer au test final : le traitement de l'ensemble de mes données.
Je vous tiens au courant.
Geo-x
Hors ligne
#9 Tue 16 February 2016 12:36
Re: Problème de somme sur le transformer Dissolver
Impeccable :-)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#10 Tue 16 February 2016 17:39
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Et en prime c'est beaucoup plus rapide !!
Hors ligne
#11 Wed 17 February 2016 08:46
Re: Problème de somme sur le transformer Dissolver
La cerise sur le gâteau
Dernière modification par heretik25 (Wed 17 February 2016 08:47)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#12 Wed 17 February 2016 09:11
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Bon alors le seul problème c'est que ça me crée des géométries multiples là ou je ne peut qu'accepter des géométries simples (Et c'est vrai que c'est pour ça que c'est plus rapide).
Du coup, ce que je peux faire, c'est que vu que ma destination est une BDD Postgres/Postgis, est-ce qu'il est possible, dans FME de lui demander d'exécuter une requête à la fin du traitement (Requête qui permettra le passage de géométrie complexe en géométrie simple).
Hors ligne
#13 Wed 17 February 2016 09:29
- Geo-x
- Participant assidu
- Lieu: Pau
- Date d'inscription: 2 Nov 2010
- Messages: 215
Re: Problème de somme sur le transformer Dissolver
Ou alors je peux faire en suivant un Deaggregator suivi d'un DuplicateRemover ça me permet de ne conserver qu'un seul maillage contenant les informations.
Hors ligne