Calculatrice de champ

Le bouton mActionCalculateField Calculatrice de champs de la table d’attributs permet d’opérer des calculs sur la base des valeurs attributaires ou d’utiliser des fonctions, p. ex. pour calculer la longueur ou la surface des entités. Les résultats peuvent être écrits dans une nouvelle colonne attributaire ou mettre à jour une colonne existante.

Vous devez basculer la couche vectorielle en mode d’édition avant de pouvoir cliquer sur le bouton de la calculatrice (voir figure_attributes_3). Dans la fenêtre, il vous faut d’abord choisir si une nouvelle colonne doit être créée ou s’il s’agit d’une mise à jour d’une colonne existante.

Figure Attributes 3:

../../../_images/fieldcalculator.png

Field Calculator nix

Si vous choisissez d’ajouter un nouveau champ, vous devez lui donner un nom, un type (nombre entier, nombre décimal ou chaîne de caractère), une longueur et sa précision (voir figure_attributes_3). Par exemple, si vous créez un champ d’une longueur de 10 et doté d’une précision de 3, vous aurez 6 chiffres avant la virgule, la virgule et 3 chiffres après, soit 10 caractères au total.

La liste de fonctions contient les fonctions, les champs et les valeurs. Référez-vous à l’aide des fonctions qui s’affiche dans l’Aide pour la fonction sélectionnée. Dans la zone Expression s’affiche le calcul à effectuer. Les fonctions les plus courantes se trouvent sous Opérateurs.

Dans la Liste de fonctions, cliquez sur Champs et valeurs pour visualiser la liste des champs de la table d’attributs. Pour ajouter un champ à l’Expression, double-cliquez sur son nom dans la liste Champs et valeurs. Vous pouvez utiliser plusieurs champs, valeurs et fonctions dans votre calcul depuis la liste ou les entrer directement dans la zone d’expression. Pour visualiser les valeurs d’un champ, faites un clic-droit sur le champ voulu. Vous avez le choix entre Charger les 10 valeurs les plus représentées ou Charger toutes les valeurs. Une liste Valeurs de champs apparaît à droite. Pour ajouter une valeur au calcul, double-cliquez dessus depuis la liste des Valeurs de champs.

Opérateurs, Math, Conversions, Chaîne, Géometrie et Enregistrement proposent de multiples fonctions. Dans Opérateurs, vous trouverez les opérateurs mathématiques. Dans Math, les fonctions mathématiques. Dans Conversions, les fonctions de conversion d’un type à un autre. Dans Chaîne, les fonctions concernant les chaînes de caractère. Dans Géometrie, les fonctions concernant la géométrie des entités. Dans Enregistrement, les fonctions d’énumération des données. Pour ajouter une fonction au calcul, double-cliquez dessus.

Un court exemple pour illustrer la manière dont la calculatrice fonctionne. Nous voulons calculer la longueur des lignes de la couche railroads de l’échantillon de données de QGIS :

  1. Chargez le fichier Shapefile railroads.shp dans QGIS et ouvrez sa mActionOpenTable Table d’Attributs.

  2. Cliquez sur mActionToggleEditing Basculer en mode édition et ouvrez la mActionCalculateField Calculatrice de champs.

  3. Cochez la case checkbox Créer un nouveau champ pour enregistrer le résultat des calculs dans un nouveau champ.

  4. Ajoutez longueur dans le nom de ce champ, réel en tant que type et définissez une longueur de 10 et une précision de 3.

  5. Maintenant cliquez sur longueur parmi les fonctions de Géométrie pour l’ajouter dans l’expression (sous la forme $length) et cliquez sur le bouton [Ok].

  6. Vous pouvez maintenant voir la nouvelle colonne longueur dans la table d’attributs.

Les fonctions disponibles sont listées ci-dessous.

column name "column name"            value of the field column name
'string'                             a string value
NULL                                 null value
a IS NULL                            a has no value
a IS NOT NULL                        a has a value
a IN (value[,value])                 a is below the values listed
a NOT IN (value[,value])             a is not below the values listed
a OR b                               a or *b* is true
a AND b                              a and *b* is true
NOT a                                inverted truth value of a
sqrt(a)                              square root of a
sin(a)                               sinus of a
cos(a)                               cosinus of b
tan(a)                               tangens of a
asin(a)                              arcussinus of a
acos(a)                              arcuscosinus of a
atan(a)                              arcustangens of a
to int(a)                            convert string a to integer
to real(a)                           convert string a to real
to string(a)                         convert number a to string
lower(a)                             convert string a to lower case
upper(a)                             convert string a to upper case
length(a)                            length of string a
atan2(y,x)                           arcustangens of y/x using the signs of the two
                                     arguments to determine the quadrant of the result
replace(*a*, replacethis, withthat)  replace this with that in string a
regexp_replace(a,this,that)          replace the regular expression this with that
substr(*a*,from,len)                 len characters of string *a* starting from from
                                     (first character index is 1)
a || b                               concatenate strings a and b
$rownum                              number current row
$area                                area of polygon
$perimeter                           perimeter of polygon
$length                              length of line
$id                                  feature id
$x                                   x coordinate of point
$y                                   y coordinate of point
xat(n)                               X coordinate of the point of an n-th line (indeces
                                     start at 0; negative values refer to the line end)
yat(n)                               y coordinate of the point of an n-th line (indeces
                                     start at 0; negative values refer to the line end)
a = b                                a and b are equal
a != b and a <> b                    a and b are not equal
a >= b                               a is larger than or equal to b
a <= b                               a is less than or equal to b
a > b                                a is larger than b
a < b                                a is smaller than b
a ~ b                                a matches the regular expression b
a LIKE b                             a equals b
a ILIKE b                            a equals b (without regard to case-sensitive)
a |wedge| b                          a raised to the power of b
a * b                                a multiplied by b
a / b                                a divided by b
a + b                                a plus b
a - b                                a minus b
+ a                                  positive sign
- a                                  negative value of a

La Liste de fonctions avec l’Aide pour la fonction sélectionnée, les Opérateurs et la zone Expression sont également accessibles depuis le type de rendu Ensemble de règles de l’onglet Style de la fenêtre de propriétés d’une couche et l’étiquetage basé sur une formule browsebutton dans l’extension d’mActionLabeling Étiquetage.