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

Veld berekening

De knop mActionCalculateField Veld berekening in de attributen tabel geeft de mogelijkheid om berekeningen uit te voeren van bestaanden attribuutwaarden of gedefinieerde functies, bijvoorbeeld om de lengte of oppervlakte van de geometrie. Het resultaat kan in een nieuw attribuutveld worden vastgelegd, of het kan gebruikt worden om de waarden in een bestaand attribuutveld bij te werken.

De vectorlaag moet eerst in de modus bewerken staan voordat het icoon veld berekening geactiveerd is zodat je deze kunt selecteren (zie .figure_attributes_3_). In de dialoog kun je aangeven of je alleen geselecteerde objecten wilt bijwerken, of dat een nieuw attribuutveld moet worden aangemaakt waarin de resultaten van de berekening zullen worden toegevoegd of de berekening gebruikt zal worden om de inhoud van een bestaand attribuutveld te vernieuwen.

Figure Attributes 3:

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

Field Calculator nix

Wanneer je ervoor kiest een nieuw veld toe te voegen, dient een veldnaam, een veldtype (geheel getal, decimaal getal of tekst), de totale veldlengte en de precisie te worden gegeven (zie figure_attributes_3). Wanneer je bijvoorbeeld voor een veldlengte van 10 en een precisie van 3 kiest betekent dit dat je 6 tekens voor de punt, daarna de punt en daarachter nog 3 tekens voor de precisie.

De Functielijst bevat zowel functies, velden en waarden. Bekijk de help functie in de Help Geselecteerde Functie (indien aanwezig). In Expressie kun je de expressie van de berekening die je aan het opbouwen bent met behulp van de Functielijst. Voor de meest gebruikte operatoren zie Operatoren.

In de Functielijst, klik op Velden en Waarden om alle attribuutvelden van de geselecteerde tabel te doorzoeken. Dubbelklik op een attribuutveld om deze toe te voegen aan de expressie invoertekst. Om een expressie op te bouwen kun je ook rechtsstreeks invoeren van het invoertekstvak van expressie. Gebruik de rechtermuisknop om de waarden van een attribuutveld te tonen, je kunt dan kiezen tussen Laad top 10 unieke waarden en laad alle unieke waarden. Aan de rechterkant opent vervolgens de lijst van unieke veldwaarden. Om een waarde aan het tekstvak Expressie toe te voegen, dubbelklik op de naam in de lijst van Veldwaarden.

De groepen Operatoren, Berekening, Conversies, String, Geometrie en Record bieden verschillende functies. In Operatoren vind je een aantal eenvoudige wiskundige functies. Onder Berekening vind je meer (geometrische) wiskundige functies. Onder Conversies bevat functies om een datatype om te zetten naar een ander datatype. Onder de String vind je tekst functies. Onder de Record groep vind je functie om een veld toe te voegen die een opeenvolgende unieke nummering bevat. Om een functie toe te voegen aan het Expressie tekstvak dubbelklikt men de functie.

Een kort voorbeeld illustreert het gebruik van veld berekening. We will de lengte van de railroads laag van de QGIS sample dataset berekenen:

  1. Laad de shapefile railroads.shp in QGIS en selecteer mActionOpenTable Open Attribuut Tabel.

  2. Klik op mActionToggleEditing Bewerken aan/uitzetten en open de dialoog Veld berekening met mActionCalculateField Veld berekening.

  3. Selecteer het aanvinkvak checkbox Create a new field`Nieuw veld aanmaken om berekeningen op te slaan in het nieuwe veld.

  4. Voeg lengte toe als resultaatveld, selecteer Decimaal getal (real) als veldtype en geef een veldlengte op van 10 en een precisie van 3.

  5. Klik nu op de functie $length in de Geometry groep om deze toe te voegen als $length in de veld berekenings expressie tekstinvoer gedeelte en druk op [OK].

  6. Je kunt nu de nieuwe kolom lengte in de attributen tabel terugvinden.

De beschikbare functies worden hieronder gegeven.

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

De Functielijst van Veldberekening met de Help Geselecteerde Functie, Operatoren en Expressie zijn ook beschikbaar vanuit het tabblad Stijl van de Laag Eigenschappen en de Expressie Gebaseerde Labels via de browsebutton in de mActionLabeling Labels van de standaard applicatie gebruikmakend van de nieuwe symbologie.