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é ?

#1 Tue 12 May 2015 16:57

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Bonjour,

Difficile de nommer le problème pour que cela parle à tout le monde, mais voici ce que j'essaie de faire.
Je dispose d'une table comprenant plusieurs champs.
Certains sont remplis uniquement par le même caractère (X), d'autres restent vides (valeurs NULL).

Je souhaiterais faire une symbologie en fonction du nombre de colonnes renseignées par un X. En gros, si un enregistrement a 3 colonnes renseignées, une couleur sera attribuée ; s'il n'y a que 2 champs renseignés, la couleur sera différente etc...

Est-ce qu'il est possible de faire cela dans QGis (peut-être via l'ensemble de règles ou des conditions ?) ?
Je vous remercie.

Bonne journée

Hors ligne

 

#2 Wed 13 May 2015 09:07

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

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Salut,
Pourquoi pas une symbologie catégorisée mais au lieu d'un champ, y saisir une expression?
La formule à laquelle je pense pourrait être du genre (pas testé)

Code:

case when "champ1" = 'X' then 1 else 0 end + 
case when "champ2" = 'X' then 1 else 0 end + 
...
case when "champN" = 'X' then 1 else 0 end

Après, ça dépend du nombre de champs que tu as mais, ça me semble moins complexe à gérer que les règles.

Dernière modification par SANTANNA (Wed 13 May 2015 14:16)

Hors ligne

 

#3 Wed 13 May 2015 10:01

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Bonjour,

Merci pour cette réponse. Effectivement, ça peut être une solution mais parfois j'ai pas mal de champs, ce qui peut compliquer la chose. Mais, cela m'a donné une idée qui serait peut-être plus facile à mettre en œuvre (ou pas...;-)). Je pensais créer un champs virtuel qui compterait le nombre de 'X' que j'ai dans les autres champs.
En gros, une sorte de conditions qui ferait : si champ1 et champ2 = X alors la valeur de mon champ virtuel sera 2. Comme si je faisais le calcul du nombre de 'X' pour chaque ligne.
Par contre, y-a-t-il une façon de calculer automatiquement l'ensemble des combinaisons ou bien faut lister les possibilités une par une ?
Car parfois, je peux bien évidemment avoir 2 'X' mais ce ne sont pas forcément les champ 1 et 2 qui seront renseignés...

Merci

Dernière modification par Razorbak (Wed 13 May 2015 10:05)

Hors ligne

 

#4 Wed 13 May 2015 10:50

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

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Je ne comprends pas bien car la formule que je te proposais se charge elle de calculer les combinaisons pour chaque champ.
une formule comme Case when "champ1" = 'X' then 1 else 0 END : si ton champ1 a la valeur 'X', il est compté (1) sinon on l'ignore (0) et on passe à la suivante. Pour chacun des champs, on compte ou on compte pas puis à la fin, on fait la somme des "comptés"... La seule différence avec un champ virtuel est que cette formule ne stocke pas visuellement la valeur, elle te traite la symbologie directement. Et Le calcul s'actualisera tout aussi bien au fil des modif de ta table. Et avec un champ virtuel, il te faudra de toute manière saisir la formule à utiliser pour qu'il fasse le compte des X.

LA seule contrainte de la formule, c'est si t'as vraiment beaucoup de champs mais un copier/coller peut alléger les choses.

Et si t'as VRAIMENT beaucoup de champs ou une couche dont le nombre de champs évolue, l'option que je vois est de créer une fonction personnalisée (voir ici, QGIS 2.8 offrant une nouvelle interface pour de telles choses et )

Hors ligne

 

#5 Wed 13 May 2015 13:58

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Ok, je vois ce que tu veux dire, mais comment faire cette somme des "comptés" comme tu le dis ?
Pour l'instant, j'ai réussi à faire ce que je voulais en concaténant l'ensemble des valeurs des champs dans un champs virtuel, puis j'ai fait une symbologie par catégorisation.
Ainsi, j'ai une couleur pour un 'X', une autre couleur quand j'ai 2 'X' etc...

Dernière modification par Razorbak (Wed 13 May 2015 14:04)

Hors ligne

 

#6 Wed 13 May 2015 14:13

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

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Ok, je vois ce que tu veux dire, mais comment faire cette sommes des "comptés" comme tu le dis ?


Essaye la formule proposée sur ta couche ( quitte à n'utiliser que tes trois premiers champs si t'en as beaucoup par ex pour voir ce que ça donne)? car c'est justement elle qui se charge de faire le compte :
- case when .. else... end analyse chaque champ et renvoie une valeur numérique (1 si existence, sinon 0)
- l'opérateur + entre les différentes "Case..." se charge de faire la somme des résultats d'analyses les unes aux autres.

PS : Ai modifié la proposition de code dans mon premier message

Hors ligne

 

#7 Wed 13 May 2015 14:20

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Yes ! Je viens de tester et ça fonctionne très bien.
J'avais pas vu l'opérateur + en fait...
Merci

Hors ligne

 

#8 Wed 13 May 2015 14:27

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Une autre question pendant que j'y suis : sais-tu s'il est possible par la suite de faire des regroupements pour la symbologie : en gros, quand il y a un ou 2 'X', je veux la même couleur ; puis 3 ou 4 'X' une autre couleur...
Ça peut aller jusqu'à 8 'X' donc je souhaite faire maximum 5 classes.

Merci

Hors ligne

 

#9 Wed 13 May 2015 14:30

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

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Dans ce cas, fais plutôt une symbologie graduée, avec la même formule.

Hors ligne

 

#10 Wed 13 May 2015 14:38

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table

Ben oui...que suis-je bête ! Merci et bonne journée

Hors ligne

 

Pied de page des forums

Powered by FluxBB