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 Mon 25 November 2013 09:00

Christine1215
Juste Inscrit !
Date d'inscription: 3 Jun 2008
Messages: 5

QGIS : Récupérer les bornes des classes d'une analyse thématique

Bonjour,
J'ai fait une analyse thématique par classes de valeurs sur Qgis. J'aimerais récupérer les bornes des classes, pour pouvoir ensuite créer un champ classe dans ma table attributaire : ça me permettrait de savoir automatiquement, pour chaque individu, à quelle classe il appartient.
Est-ce que c'est possible ? Ou bien je dois construire le champ manuellement ?
Merci d'avance !
Christine

Hors ligne

 

#2 Mon 25 November 2013 13:58

Fincalan
Juste Inscrit !
Date d'inscription: 25 Sep 2013
Messages: 8

Re: QGIS : Récupérer les bornes des classes d'une analyse thématique

Bonjour,

je ne sais pas si un plugin existe pour faire ce que vous demandez.
Mais, s'il n'y a pas beaucoup de classes différentes (4 ou 5), l'utilisation de la calculatrice de champ après sélection des entités appartenant à une classe (requête suivant les bornes de valeurs souhaitées) est un moyen assez rapide d'obtenir le résultat.

Hors ligne

 

#3 Mon 25 November 2013 17:31

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: QGIS : Récupérer les bornes des classes d'une analyse thématique

En étant familier du python dans Qgis, c'est faisable sans trop de soucis.

je vous donne le départ : comment récupérer les classes dans la console python.

Code:

layer = iface.mapCanvas().currentLayer()
renderer = layer.rendererV2()
ranges = renderer.ranges()

ranges contient alors une liste des classes (QgsRendererRangeV2)
Pour chacune des classes, vous pouvez accéder :
- au label avec la méthode label()
- à la borne inférieure avec lowerValue()
- à la borne supérieure avec upperValue()

Il ne reste "plus" qu'à mettre à jour une colonne de la couche avec ce label (ou le numéro de classe) en bouclant sur une couche et en comparant les valeurs du champs avec les bornes des classes.


NB : je n'ai mis aucun contrôle dans le bout de code donc il faut que la couche sélectionnée soit bien une couche vectorielle avec une symbologie graduée.

Dernière modification par Cornet Jérémie (Mon 25 November 2013 17:33)

Hors ligne

 

Pied de page des forums

Powered by FluxBB