Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Fri 13 May 2011 14:27

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Exploser les attributs "redondants" d'une table

Bonjour,

Parfois un schéma vaut mieux qu'une explication :

J'ai une table pas très "merise" qui possède des champs comme ceci :

-Table 1 --Objet 1

--\--Champs de l'objet 1 :

-truc
-protection_1
-protection_2
-protection_3
-nom_1
-nom_2
-nom_3
-bidule


Je cherche une façon de faire pour faire  en sorte de créer plusieurs entrées avec les champs "redondants" :


Entrée 1 :

protection_1
nom_1

Entrée 2 :

protection_2
nom_2

...


Pouvez vous me donner une astuce car là je sèche :s

@bientôt et merci

Dernière modification par heretik25 (Fri 13 May 2011 14:28)


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#2 Fri 13 May 2011 14:42

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Exploser les attributs "redondants" d'une table

Aloha

Les outils de listes sont là pour ça. Que je comprenne bien : vous avez un attribut nommé protection1, un autre protection 2... Si c'est le cas, ListPopulator devrait créer une liste protection{} contenant les valeurs protection{0}, protection{1}.... A relancer pour créer la liste nom{}...

Ensuite, il est possible à l'aide de list duplicate remover de supprimer les doublons et de listexploder de créer un objet pour chaque éléments de liste.

Si besoin, j'ajouterai un exemple de projet FME.

Cordialement,


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

 

#3 Fri 13 May 2011 15:06

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Exploser les attributs "redondants" d'une table

Bonjour et merci pour votre réponse.


L'objectif est de récupérer tous les attributs finissant par "_1" pour créer une entrée, tous les attributs finissants par "_2" est de créer une autre entrée.

Il faut savoir qu'il m'est nécessaire de savoir que les attributs "_1" sont rattachés à l'objet 1 et que les attributs "_2" sont aussi par exemple rattachés à l'objet 1.

Ce n'est pas facilement explicable mais j'espère que vous avez compris smile

P.S : Je veux bien un exemple de projet !

@bientôt et merci

Dernière modification par heretik25 (Fri 13 May 2011 15:19)


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#4 Mon 16 May 2011 15:33

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Exploser les attributs "redondants" d'une table

Un petit up également smile


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#5 Mon 16 May 2011 16:43

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Exploser les attributs "redondants" d'une table

Bonjour,

Avez-vous testé les pistes évoquées ?

Sinon, ci-joint un projet qui peut servir d'inspiration.

PS. "up" ce n'est pas francophone, merci.

Cordialement


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

#6 Tue 17 May 2011 09:44

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Exploser les attributs "redondants" d'une table

Bonjour,

Oui, j'avais essayé avec ce transformer que je ne connaissais pas (listpopulator) mais sans succès.

Le projet workbench que vous proposez est intéressant mais ne fait pas tout à fait ce que j'attends.

En effet, selon mon attente le fichier source devrait générer que 5 ligne alors qu'il en génère 16.

Je vous joint le fichier Excel que vous m'avez donné en exemple avec en dessous le résultat attendu.

Par avance merci pour votre aide.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#7 Tue 17 May 2011 11:39

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Exploser les attributs "redondants" d'une table

Bonjour,

Ci joint un projet modifié. Si possible modifier votre fichier excel en entrée afin de débuter les itérations par 0 et non par 1.
Il faut peut-être remplacer l'AttributeCopier par un attributeRenamer (pas de doublons créés ainsi).
Le principe du projet :
-créer les listes sur la base des attributs commençant par protection_ ou nom_ (donc 2 listes)
-numéroter les objets
-dans un flux de données, recréer un objet par membre de la liste 1, dans un autre flux de données, recréer un objet par membre de la liste 2, et dans le dernier flux, prendre les éléments de base et les purger
-assembler les deux flux issus des listes
-joindre ce flux aux éléments de base
Cordialement,


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

#8 Tue 17 May 2011 12:13

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Exploser les attributs "redondants" d'une table

Bonjour, de nouveau merci pour votre implication.

Je viens de regarder le projet et en sortie, il y a 7 lignes alors qu'en théorie seul 5 cas sont possibles.

Sur les 7 lignes, il n'y a pas les 5 bonnes lignes attendues. (CF. Fichier Excel "resultat_attendu.xls")


Je ne comprends pas d'où viennent ces sept lignes, pouvez-vous me l'expliquer ?

Par avance merci.
@bientôt

Dernière modification par heretik25 (Tue 17 May 2011 12:28)


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#9 Tue 17 May 2011 13:56

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Exploser les attributs "redondants" d'une table

Bonjour,

Pourquoi 7 lignes : comme écrit dans mon précédent message, vos attributs étant numérotés de 1 à n, il faut les renuméroter de 0 à n-1. Avec un attribute copier, il reste le n. Donc au lieu de 5 lignes en sorties, on en a 2 de +, une par liste.

J'ai modifié la jointure sur les deux flux issus des listes. Comme on souhaite conserver l'ordre des éléments de liste, la jointure se fait pour chacun des objets (le group by count) sur l'attribut element_count (l'index de l'élément de liste).
Une fois ceci fait, on obtient 7 lignes en sorties. Remplacer l'attributeCopier par un renamer, et cela devrait fonctionner. Ou par une fonction python ou tcl.

Cordialement,


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

#10 Tue 17 May 2011 14:49

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Exploser les attributs "redondants" d'une table

Bonjour,

Merci beaucoup, cela correspond à mon besoin, longue vie à GeoRezo !


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

Pied de page des forums

Powered by FluxBB