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 Mon 16 July 2018 12:16

AHAquilex
Participant occasionnel
Date d'inscription: 10 Jul 2018
Messages: 17

QGIS 3.0: Agrégation critères multiples

Bonjour,

Je reviens une fois de plus sur ce forum pour chercher de l'aide (et partager l'information qui en découlera).
Voilà mon problème :

Je souhaite agréger une couche de points selon 2 critères : disons la date et le secteur. Car j'aimerais obtenir une entité pour chaque date ET secteur différent. Or, quand j'utilise l'expression array("field1","field2") proposé par Qgis (dans le cadre d'aide à droite quand l'outil "agrégation" est ouvert) le résultat me crée une couche dont les entités rassemblent toutes les dates OU secteurs identiques.

un petit exemple pour mieux saisir mon problème :
Soit des éléments A (2018, S1), B (2018, S2), C (2019, S1), D (2019, S2), E (2018, S1), F (2018, S2), G (2019, S1), H (2019, S2), I(2017, S3), J(2016, S3)

Mon objectif est d'avoir à la fin l'agrégation suivante :
(A/E), (B/F), (C/G), (D/H), (I) et (J)

Mais à la place j'ai l'impression que j'obtiens quelque chose comme cela :
(A/B/C/D/E/F/G/H) et (I/J)
Bref dès qu'il trouve une date OU un secteur identique Qgis m'agrège l'ensemble... (pour info, chaque entité A-J possède d'autres caractéristiques que la date et le secteur, mais qui n'interviennent pas dans le choix des éléments à agréger).


La solution est peut-être dans l'expression de groupement (NULL pour grouper toutes les entités), dans l'expression en entrée (de base c'est le nom de la colonne) ou bien totalement ailleurs. Si quelqu'un a une idée, je suis preneur !

Je ne sais pas si c'était très clair, au besoin demandez-moi des précisions. Pour information, je travaille avec Qgis 3.0

Merci d'avance pour vos réponses !

Dernière modification par AHAquilex (Thu 14 March 2019 14:41)

Hors ligne

 

#2 Mon 16 July 2018 12:53

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS 3.0: Agrégation critères multiples

Bonjour,
En principe, array devrait faire cela si j'ai bien compris la description (pas testé). Si cela ne marche pas, surement un bug que je vous invite à reporter à https://issues.qgis.org (avec bouts de données et details)
Et sinon, quid si vous utilisez concat(champ1, ',', champ2)?.

Hors ligne

 

#3 Mon 16 July 2018 17:32

AHAquilex
Participant occasionnel
Date d'inscription: 10 Jul 2018
Messages: 17

Re: QGIS 3.0: Agrégation critères multiples

Bonjour SANTANNA, merci encore pour votre réponse rapide !

Effectivement je pensais que c'est ce que array faisait, mais le résultat n'est pas là (sur environ 4000 entités au début, une 15aine de dates différentes et environ 500 secteurs différents, si j'obtiens 18 entités agrégées à la fin c'est clairement qu'il ne m'a pas agrégé comme je le voulais, puisque j'aurais dû obtenir au minimum 500 entités, voire plus si plusieurs dates se recoupent sur un même secteur)

Créer un identifiant unique en concaténant les deux champs, puis faire l'agrégation sur cet identifiant : pas bête, ça permettrait de contourner le problème encore une fois.

Au moins le sujet sera là si quelqu'un rencontre le même problème.

Hors ligne

 

#4 Mon 16 July 2018 19:11

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS 3.0: Agrégation critères multiples

Effectivement je pensais que c'est ce que array faisait, mais le résultat n'est pas là (sur environ 4000 entités au début, une 15aine de dates différentes et environ 500 secteurs différents, si j'obtiens 18 entités agrégées à la fin c'est clairement qu'il ne m'a pas agrégé comme je le voulais, puisque j'aurais dû obtenir au minimum 500 entités, voire plus si plusieurs dates se recoupent sur un même secteur)


Effectivement, il me semble qu'il y a quelque chose qui n'a pas fonctionné. Par contre, je viens de l'essayer chez moi, sur un jeu de données plus léger et rien que des champs texte, le résultat est conforme aux attendus donc il y a quelque chose dans vos données qui ne semblent pas passer (type de champ? taille de données?). Une investigation s'impose.

Créer un identifiant unique en concaténant les deux champs, puis faire l'agrégation sur cet identifiant : pas bête, ça permettrait de contourner le problème encore une fois.


je sais...

Au moins le sujet sera là si quelqu'un rencontre le même problème.


C'est vrai mais c'est encore mieux si le problème ne se pose plus aux autres et c'est en signalant proprement le bug aux auteurs qu'on se donne déjà les chances de réaliser cela. Constater le bug dans son coin et se satisfaire d'une procédure de contournement ne fera malheureusement pas avancer le schmilblick, à mon humble avis. Vos données s'y prêtent là mais lorsque les deux champs auront les mêmes valeurs (ou assimilés), ça peut ne plus marcher.

Hors ligne

 

Pied de page des forums

Powered by FluxBB