#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