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 16 December 2014 13:32

lowra
Juste Inscrit !
Date d'inscription: 16 Dec 2014
Messages: 2

QGIS : Requête sur 2 attributs joints ensemble

Bonjour,

Avec mon groupe de travail on est face à un soucis sur QGIS.
Nous devons réaliser une cartographie de présence prenant en compte des habitats préférentiels selon des mailles.
Du coup, on aimerait savoir comment il est possible de sélectionner 2 attributs dans la table attributaire (donc dans notre cas les habitats) et que seuls les attributs associés dans la même maille soit comptabilisés.
En gros, pour illustrer, nous voulons visualiser les habitats où un lézard est potentiellement présent. Les habitats CLC 312 et 313 présentent lorsqu'ils sont associés une forte probabilité de presence du lézard. Nous devons réaliser une cartographie par mail. Du coup, comment faire apparaitre les mailles qui ont l'association 312 et 313 (et pas 312 seul et 313 seul)?
Si quelqu'un peut nous aider, nous en serions reconnaissant.

Cordialement,

Laura

Hors ligne

 

#2 Tue 16 December 2014 13:54

Benoit91
Participant assidu
Date d'inscription: 2 Oct 2008
Messages: 263

Re: QGIS : Requête sur 2 attributs joints ensemble

Bonjour

pour la mise ne forme thématique vous pouvez passer par propriété de la couche > style > ensemble de règle et définir des "filtres"
si vos données CLC 312 et 313 sont comprise dans un champ alors vous pouvez faire l'expression suivante:

champ_habitats IN ('312',313') puis y associer une symbologie particulière et ainsi de suite pour toutes vos "habitats préférentiels"

Si vos valeurs CLC sont dans des champ attributaires différents vous pouvez faire comme suis

champ_habitat1='312' AND champ_habitat2='313'.

voir image jointe pour un exemple avec des données openstreetmap.


Cordialement.

Dernière modification par Benoit91 (Tue 16 December 2014 13:55)


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

Hors ligne

 

#3 Tue 16 December 2014 15:24

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

Re: QGIS : Requête sur 2 attributs joints ensemble

Bonjour,

lowra a écrit:

En gros, pour illustrer, nous voulons visualiser les habitats où un lézard est potentiellement présent. Les habitats CLC 312 et 313 présentent lorsqu'ils sont associés une forte probabilité de presence du lézard. Nous devons réaliser une cartographie par mail. Du coup, comment faire apparaitre les mailles qui ont l'association 312 et 313 (et pas 312 seul et 313 seul)?


Je suppose que par "associées", vous entendez "être suffisamment proches pour être dans une même maille". Et si j'ai bien compris le propos, je ne pense pas que la solution 1 de Benoit91 y réponde.
La solution 2 dépendra de la structuration de vos données. Aussi, pourriez-vous préciser un peu plus ce dont vous disposez comme structures de données, notamment sur la couche des mailles?
Merci.

Hors ligne

 

#4 Tue 16 December 2014 21:34

lowra
Juste Inscrit !
Date d'inscription: 16 Dec 2014
Messages: 2

Re: QGIS : Requête sur 2 attributs joints ensemble

Bonsoir Santanna,
Du coup voici quelques précisions :
On a fait une intersection entre Corine Land Cover et une grille de carroyage pour avoir les habitats par maille.
Puis on a une ligne pour chaque habitat présents dans la maille. Le nom de maille se répéte donc autant de fois qu'il y a de polygones à l'intérieur. On souhaite par exemple pour une maille donnée, sélectionner sur la carte deux habitats si les deux sont présents dans celle-ci (sélectionner deux lignes de notre table).
Merci

Hors ligne

 

#5 Thu 18 December 2014 11:18

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

Re: QGIS : Requête sur 2 attributs joints ensemble

Bonjour,
Et désolé de répondre avec qqs jours de retard.
Étant donné que c'est un travail pédagogique (et bien qu'ignorant dans quelle formation vous êtes), je vais peut-être juste vous suggérer des pistes plutôt qu'indiquer la procédure exacte. C'est peut-être un peu chiant pour vous mais c'est aussi compliqué pour moi big_smile

A ma connaissance, la structure de votre nouvelle table ne vous permettra pas assez aisément de représenter les mailles qui vous intéressent. Il vous faut inverser votre table afin que la porte d'entrée soit votre identifiant de maille et que le type d'habitat soit un de ces champs (ce que sous-entendaient déjà les propositions de Benoit91). Un peu comme ce qu'on fait avec un tableau croisé dynamique sous Excel ou Cie. Il faut obtenir dans votre nouveau tableau une maille ==une ligne. Dans les attributs de cette maille, plusieurs possibilités :
- soit compter le nombre de type d'habitats différents contenus dans chaque maille; il vaut mieux avoir enlevé de votre table tous les autres habitats inintéressants pour n'avoir que les deux types d'habitat qui vous intéressent mais aussi une ligne pour chaque habitat par maille > Si une maille a la valeur 2, c'est donc une bonne!
- soit créer autant de champs que d'habitats différents et utiliser la requête n°2 de Benoit
- soit concaténer les codes CLC des habitats pour chaque maille dans un champ et alors faire une requête sur la présence conjointe des codes 312 et 313 dans ce champ. 

Si vos données sont intégrées dans une base de données (SQLite par ex), une requête SQL devrait rapidement permettre de faire cela.
Si vos données sont des Shapefiles ou autres, regardez du côté de l'extension GroupStats (menu Extension > Installer/Gérer des extensions - utilisé finement, il peut  générer directement les tableaux des options 1 et 2), ou enregistrer sous > csv votre table d'attributs et passez par Excel (pour le tableau croisé dynamique). Vous réinjecterez le nouveau tableau obtenu dans QGIS pour en faire une jointure avec la couche des mailles.
La concaténation des codes CLC peut se faire sous Excel, une fois le tableau croisé dynamique créé (suivant l'option 2), soit en édition de couche dans QGIS avec la fonction concat.

J'ai essayé d'être vague et précis (et je réalise que je ne sais pas faire ) mais je pense qu'il y a de quoi arriver à bout de votre problème. Si besoin de précision sur des fonctions particulières ou coincés sur un endroit particulier, le forum est toujours là pour vous aiguiller.
Bon courage...

Hors ligne

 

Pied de page des forums

Powered by FluxBB