banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 14 September 2021 09:40

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1670

Tout mettre sur une ligne

Bonjour,

Je fais des jointures avec le feature joiner entre des tables d'une ligne à très haute tension.
Par exemple, sur le tronçon 1 de cette ligne, j'ai deux fichiers :
-tronçon 1 avec un champ parcelles
-tronçon 1 avec un champs ENEDIS
Lorsque je fais le feature joiner entre ces deux tables, cela me crée deux lignes. Or je voudrais que les infos sur les parcelles et sur ENEDIS soient sur la même ligne.

Comment faire?

Hors ligne

 

#2 Tue 14 September 2021 14:10

SRapenne
Participant occasionnel
Date d'inscription: 2 Feb 2020
Messages: 28

Re: Tout mettre sur une ligne

Bonjour,

pour faire une jointure entre 2 tables, il faut un champ commun qui doit être renseigné dans la section "Jointure" du featureJoiner, si cette condition est bien remplie, il n'y a aucune raison d'avoir 2 lignes en sortie

Serge

Hors ligne

 

#3 Wed 15 September 2021 11:33

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1670

Re: Tout mettre sur une ligne

il faut un champ commun qui doit être renseigné dans la section "Jointure" du featureJoiner


j'avais déjà fait la jointure sur le champ commun. Par contre j'ai utilisé le transformer feature merger et cela fonctionne.

Hors ligne

 

#4 Wed 15 September 2021 14:11

SRapenne
Participant occasionnel
Date d'inscription: 2 Feb 2020
Messages: 28

Re: Tout mettre sur une ligne

c'est très étrange, je fais des jointures quasi quotidiennement et je n'ai jamais rencontré ce cas de figure.
Il doit y avoir un truc soit dans tes données d'entrée soit dans le paramétrage du "Joiner"

Serge

Hors ligne

 

#5 Wed 15 September 2021 15:45

Benoit D
Participant assidu
Date d'inscription: 17 Jul 2018
Messages: 151

Re: Tout mettre sur une ligne

Ce serait bien un comportement de FeatureJoiner si on en croit l'aide de ce transformer

Join Behavior

A Joined feature is produced each time a Left feature is matched to a Right feature through its keys. The number of output features produced will depend on whether or not multiple Left and Right features match.

The type of join is determined by the nature of the data used (it is not a parameter). Any of these types of joins may be produced by any of the Join Modes (Inner, Left, or Full).

[...]
M:N    Many to Many: If multiple Left features match multiple Right features (for example a number of addresses match to a number of records for electrical power outages) this is a M:N (many-to-many) match and produces a Joined feature for every match that occurs.   
10 Left match 10 Right:

100 Joined Features output*

*When all features have identical key values - all Left match all Right.


FeatureMerger ne se comporte pas pareil.

Hors ligne

 

#6 Wed 15 September 2021 17:05

SRapenne
Participant occasionnel
Date d'inscription: 2 Feb 2020
Messages: 28

Re: Tout mettre sur une ligne

Effectivement si les tables contiennent plusieurs fois l'identifiant de jointure ce résultat est normal et attendu.

Mais quoi qu'il en soit, je ne comprend comment le comportement décrit par le posteur initial est possible puisque ça description semble indiquer que la jointure n'est pas réalisé et qu'il obtient en sortie une fusion de ces 2 tables c'est du moins comme ça que je comprend

Lorsque je fais le feature joiner entre ces deux tables, cela me crée deux lignes. Or je voudrais que les infos sur les parcelles et sur ENEDIS soient sur la même ligne.


Il est toujours possible de faire précéder le FeatureJoiner de "duplicateFilter", un par source de données pour se retrouver avec une jointure 1:1

Serge

Dernière modification par SRapenne (Wed 15 September 2021 17:09)

Hors ligne

 

#7 Wed 15 September 2021 18:24

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1670

Re: Tout mettre sur une ligne

Mais quoi qu'il en soit, je ne comprend comment le comportement décrit par le posteur initial est possible puisque ça description semble indiquer que la jointure n'est pas réalisé et qu'il obtient en sortie une fusion de ces 2 tables c'est du moins comme ça que je comprend


En fait j'ai un tronçon A qui possède 4 informations d'adresses, donc 4 lignes.
Je souhaite joindre un même tronçon A qui possède un réseau électrique (valeur "croisement"), donc une ligne.
Même avec le Feature merger cela ne fonctionne pas.
Je joins le tronçon A avec les informations d'adresses et le tronçon A avec l'information du type électrique, j'ai 4 lignes en résultat. Mais l'information du réseau électrique est répétée autant de fois qu'il y a de lignes renseignées sur le champ adresses.
Comme ceci :
Tronçon     Adresse     Réseau électrique
   A               Rue...         Croisement
   A               Rue...         Croisement
   A               Rue...         Croisement
   A               Rue...         Croisement

Or, je voudrais ceci :
Tronçon     Adresse     Réseau électrique
   A               Rue...         Croisement
   A               Rue...         
   A               Rue...         
   A               Rue...         

Comment faire?
Merci.

Hors ligne

 

#8 Wed 15 September 2021 18:47

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1670

Re: Tout mettre sur une ligne

Merci à Serge pour son duplicatefilter. Avec ce transformer, j'ai fait la jointure sur unique. Quant au duplicate je l'ai connecté plus loin dans le traitement sans jointure et cela fonctionne. Au final, j'ai bien l'info sur 4 lignes avec 4 adresses et 1 réseau électrique.

Hors ligne

 

Pied de page des forums

Powered by FluxBB