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

Calculatrice de champ 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.

L’exemple suivant montre comment la calculatrice de champs fonctionne. Il s’agit de calculer la longueur en km de la couche railroads issue de l’échantillon de données 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. Double-cliquez maintenant sur la fonction $length de la catégorie Géometrie pour l’ajouter à la zone d’Expression.

  6. Terminez en rentrant ‘/ 1000’ à la fin de l’expression et en cliquant sur le bouton [Ok].

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

Les fonctions disponibles sont listées ci-dessous.

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.

Opérateurs

Cette catégorie contient des opérateurs tels que + - *, etc.

a + b      a plus b
a - b      a minus b
a * b      a multiplied by b
a / b      a divided by b
a % b      a modulo b for example 7 % 2 = 1 -> 2 fits into 7 three times rest is 1
a ^ b      a power b for example 2^2=4 or 2^3=8
a = b      a and b are equal
a > b      a is larger than b
a < b      a is smaller than b
a <> b     a and b are not equal
a != b     a and b are not equal
a <= b     a is less than or equal to b
a >= b     a is larger than or equal to b
a ~ b      a matches the regular expression b
+ a        positive sign
- a        negative value of a
||         joins two values together into a string 'Hello' || ' world'
LIKE       returns 1 if the string matches the supplied pattern
ILIKE      returns 1 if the string matches case-insensitive the supplied
           pattern. ILIKE can be used instead of LIKE to make the match case-insensitive
IS         returns 1 if a is the same as b
OR         returns 1 when condition a or b is true
AND        returns 1 when condition a and b are true
NOT        returns 1 if a is not the same as b
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

Conditions

Cette catégorie contient des fonctions permettant de gérer des conditions dans les expressions.

CASE                          evaluates multiple expressions and return a result
CASE ELSE                     evaluates multiple expressions and return a result
coalesce                      returns the first non-NULL value from the expression list
regexp_match                  returns true if any part of a string matches
                              the supplied regular expression

Math

Cette catégorie contient des fonctions mathématiques telles que la racine carrée, le sinus, le cosinus, etc.

sqrt(a)                       square root of a
abs                           returns the absolute value of a number.
sin(a)                        sinus of a
cos(a)                        cosinus of a
tan(a)                        tangens of a
asin(a)                       arcussinus of a
acos(a)                       arcuscosinus of a
atan(a)                       arcustangens of a
atan2(y,x)                    arcustangens of y/x using the signs of the two arguments
                              to determine the quadrant of the result
exp                           exponential of an value
ln                            value of the natural logarithm of the passed expression
log10                         value of the base 10 logarithm of the passed expression
log                           value of the logarithm of the passed value and base
round                         number to number of decimal places
rand                          random integer within the range specified by the minimum
                              and maximum argument (inclusive)
randf                         random float within the range specified by the minimum
                              and maximum argument (inclusive)
max                           largest value in a set of values
min                           smallest value in a set of values
clamp                         restricts an input value to a specified range
scale_linear                  transforms a given value from an input domain to an output
                              range using linear interpolation
scale_exp                     transforms a given value from an input domain to an output
                              range using an exponential curve
floor                         rounds a number downwards
ceil                          rounds a number upwards
$pi                           pi as value for calculations

Conversions

Cette catégorie contient des fonctions permettant d’effectuer des conversions de types de données telles que la conversion de textes en entiers, d’entiers en textes, etc.

toint                        converts a string to integer number
toreal                       converts a string to real number
tostring                     convert number to string
todatetime                   convert a string into Qt data time type
todate                       convert a string into Qt data type
totime                       convert a string into Qt time type
tointerval                   converts a string to a interval type. Can be used to take days,
                             hours, month, etc off a date

Date et heure

Cette catégorie contient des fonctions permettant de traiter de dates.

$now       current date and time
age        difference between two dates
year       extract the year part from a date, or the number of years from a Interval
month      extract the month part from a date, or the number of months from a Interval
week       extract the week number from a date, or the number of weeks from a Interval
day        extract the day from a date, or the number of days from a Interval
hour       extract the hour from a datetime or time, or the number
           of hours from a Interval
minute     extract the minute from a datetime or time, or the number
           of minutes from a Interval
second     extract the second from a datetime or time, or the number
           of minutes from a Interval

Chaîne

Cette catégorie contient des fonctions opérant sur des chaînes de caractères comme le remplacement, la conversion en majuscules, etc.

lower         convert string a to lower case
upper         convert string a to upper case
title         converts all words of a string to title case (all words lower case
              with leading capital letter)
trim          removes all leading and trailing whitespace (spaces, tabs, etc) from a string
length        length of string a
replace       returns a string with the the supplied string replaced
regexp_replace(a,this,that)  returns a string with the supplied regular expression replaced
regexp_substr    returns the portion of a string which matches a supplied regular expression
substr(*a*,from,len)         returns a part of a string
concat        concatenates several strings to one
strpos        returns the index of a regular expression in a string
left          returns a substring that contains the n leftmost characters of the string
right         returns a substring that contains the n rightmost characters of the string
rpad          returns a string with supplied width padded using the fill character
lpad          returns a string with supplied width padded using the fill character
format        formats a string using supplied arguments
format_number   returns a number formatted with the locale separator for thousands.
                Also truncates the number to the number of supplied places
format_date   formats a date type or string into a custom string format

Couleur

Cette catégorie contient des fonctions permettant de manipuler des couleurs.

color_rgb       returns a string representation of a color based on its red, green,
                and blue components
color_rgba      returns a string representation of a color based on its red, green,
                blue, and alpha (transparency) components
ramp_color      returns a string representing a color from a color ramp
color_hsl       returns a string representation of a color based on its hue,
                saturation, and lightness attributes
color_hsla      returns a string representation of a color based on its hue, saturation,
                lightness and alpha (transparency) attributes
color_hsv       returns a string representation of a color based on its hue,
                saturation, and value attributes
color_hsva      returns a string representation of a color based on its hue, saturation,
                value and alpha (transparency) attributes
color_cmyk      returns a string representation of a color based on its cyan, magenta,
                yellow and black components
color_cmyka     returns a string representation of a color based on its cyan, magenta,
                yellow, black and alpha (transparency) components

Géométrie

Cette catégorie contient des fonctions utilisant la géométrie des entités comme la longueur, l’aire, etc.

xat              retrieves a x coordinate of the current feature
yat              retrieves a y coordinate of the current feature
$area            returns the area size of the current feature
$length          returns the area size of the current feature
$perimeter       returns the perimeter length of the current feature
$x               returns the x coordinate of the current feature
$y               returns the y coordinate of the current feature
$geometry        returns the geometry of the current feature. Can be used
                 for processing with other functions.
geomFromWKT      returns a geometry created from a Well-Known Text (WKT) representation.
geomFromGML      returns a geometry from a GML representation of geometry
bbox
disjoint         returns 1 if the Geometries do not share any space together
intersects       returns 1 if the geometries spatially intersect
                 (share any portion of space) and 0 if they don't
touches          returns 1 if the geometries have at least one point in common,
                 but their interiors do not intersect
crosses          returns 1 if the supplied geometries have some, but not all,
                 interior points in common.
contains         returns true if and only if no points of b lie in the exterior of a,
                 and at least one point of the interior of b lies in the interior of a
overlaps         returns 1 if the Geometries share space, are of the same dimension,
                 but are not completely contained by each other.
within           returns 1 if the geometry a is completely inside geometry b
buffer           returns a geometry that represents all points whose distance
                 from this geometry is less than or equal to distance
centroid         returns the geometric center of a geometry
convexHull       returns the convex hull of a geometry. It represents the
                 minimum convex geometry that encloses all geometries within the set
difference       returns a geometry that represents that part of geometry a that
                 does not intersect with geometry a
distance         returns the minimum distance (based on spatial ref) between
                 two geometries in projected units
intersection     returns a geometry that represents the shared portion
                 of geometry a and geometry b
symDifference    returns a geometry that represents the portions of a and b
                 that do not intersect
combine          returns the combination of geometry a and geometry b
union            returns a geometry that represents the point set union of the geometries
geomToWKT        returns the Well-Known Text (WKT) representation of the
                 geometry without SRID metadata

Enregistrement

Cette catégorie contient des fonctions qui permettant d’accéder aux identifiants des enregistrements.

$rownum                      returns the number of the current row
$id                          returns the feature id of the current row
$scale                       returns the current scale of the map canvas

Champs et Valeurs

Cette catégorie contient la liste des champs de la couche. Un échantillon des valeurs contenues dans un champ s’obtient via un clic-droit.

Sélectionnez le nom du champ depuis la liste et, par un clic-droit dessus, un menu contextuel apparaît proposant de charger un échantillon de valeurs contenues dans le champ sélectionné.