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

Dans les versions plus récentes de Traitement, l’interface a considérablement changé

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

1.0 *  "MALES"  /  "FEMALES"

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

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

Les deux champs sont de type entier, et le résultat sera tronqué en un entier. C’est pourquoi nous avons multiplié par 1.0, pour indiquer que nous voulons un nombre à virgule flottante comme résultat.

Nous pouvons utiliser des fonctions conditionnelles pour avoir un nouveau champ avec comme chaîne de caractères mâle ou femelle à la place de ces valeurs de rapport, en utilisant la formule suivante:

CASE WHEN  "MALES" > "FEMALES"  THEN 'male' ELSE 'female' END

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

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

Une calculatrice de champ python est disponible dans la “Calculatrice de champ avancée Python”, qui ne sera pas détaillée ici.

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