Outdated version of the documentation. Find the latest one here.

17.11. Calculatrice Vecteur

Note

Dans cette leçon, nous verrons comment ajouter des nouveaux attributs à une couche vectorielle en se basant sur une expression mathématique, en utilisant la calculatrice vecteur.

Nous savons déjà comme utiliser la calculatrice raster pour créer de nouvelles couches raster en utilisant des expressions mathématiques. Un algorithme semblable est disponible pour la couche vectorielle, et génère une nouvelle couche avec les mêmes attributs que la couche d’entrée, plus un attribut supplémentaire avec le résultat de l’expression entrée. L’algorithme est appelé Calculatrice de champ et possède la boîte de dialogue des paramètres suivante.

../../../_images/field_calculator.png

Note

In newer versions of Processing the interface has changed considerably

Voici quelques exemples d’utilisation de cet algorithme.

Tout d’abord, calculons la densité de population des personnes blanches dans chaque polygone, qui représente un recensement. Nous avons deux champs dans la table attributaire que nous pouvons utiliser pour cela, à savoir WHITE et SHAPE_AREA. Nous avons juste à les diviser et les multiplier par un million (pour avoir la densité par km carré), nous pouvons donc utiliser la formulaire suivante dans le champ correspondant :

( WHITE / SHAPE_AREA ) * 1000000

La boîte de dialogue des paramètres devrait être remplie comme montré ci-dessous :

../../../_images/density1.png

Cela va générer un nouveau champ appelé WHITE_DENS

Calculons maintenant le ratio entre les champs MALES` et FEMALES pour en créer un nouveau qui indique si la population masculine est prédominante sur la population féminine.

Entrez la formule suivante

float(MALES) / FEMALES

Cette fois, la fenêtre des paramètres devrait ressembler à cela avant de cliquer sur le bouton OK.

../../../_images/ratio.png

Both fields are of type integer, and the result would be truncate to an integer. That’s why we have added the float() function, to indicate that we want floating point number a result. You can use other Python functions as needed, since the calculator supports python commands (the raster calculator, however, doesn’t).

Since the formula field accepts Python syntax, we can have a new field with male or female text strings instead of those ratio value, using the following formula instead.

'male' if MALES > FEMALES else 'female'

Les fenêtres de paramètres devraient ressembler à cela.

../../../_images/predominance.png

A more powerful python field calculator is available in the “Advanced Python field calculator”, which will not be detailed here

../../../_images/advanced.png