17.11. Calculatrice Vecteur

Note

Dans cette leçon, nous verrons comment ajouter de 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 offre les paramètres suivants.

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

Note

Les récentes versions de Traitement ont considérablement fait évoluer l’interface, devenant plus robuste et plus facile à utiliser.

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 dans un nouveau champ le ratio entre les champs MALES` et FEMALES pour voir si la population masculine est numériquement prédominante sur la population féminine.

Entrez la formule suivante

"MALES" / "FEMALES"

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

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

Dans la version précédente, les deux champs étant de type entier, le résultat sera tronqué en un entier. Pour indiquer que le résultat souhaiter doit être à virgule flottante, la formule devrait être: 1.0 * "MALES" / "FEMALES".

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

La fenêtre des paramètres devrait ressembler à ceci.

../../../_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