Skip to content

Commit

Permalink
Merge pull request qgis#138 from astroidex/master
Browse files Browse the repository at this point in the history
reorganisation, added missing functions, reparate block for every category
  • Loading branch information
diethard2 committed Sep 15, 2013
2 parents 75bb7d9 + b2e9960 commit 020a471
Showing 1 changed file with 255 additions and 59 deletions.
314 changes: 255 additions & 59 deletions source/docs/user_manual/working_with_vector/field_calculator.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,71 +82,267 @@ calculate the length of the ``railroads`` layer from the QGIS sample dataset:

The available functions are listed below.

The field calculator **Function list** with the **Selected Function Help** ,
**Operators** and **Expression** menu are also available through the rule-based
rendering in the Style tab of the Layer properties and the expression based
labeling |browsebutton| in the |mActionLabeling| :sup:`Labeling` core application.


.. index:: Field_Calculator_Functions



**Operators**

This group contains operators e.g + - *

::

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 a and b are not equal
a <> b
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 * b a multiplied by b

a / b a divided by b
a % b a modulo b f.e 7 % 2 = 1 -> 2 fits into 7 three times rest is 1
a ^ b a power b f.e. 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 |wedge| b a raised to the power of b
+ a positive sign
- a negative value of a
- 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



**Conditionals**

This group contains functions to handle conditional checks in 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



**Mathematical Functions**

This group contains math functions e.g square root, sin and cos

::

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**

This group contains functions to convert on data type to another e.g string to integer, integer to string.

::

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 and Time Functions**

This group contains functions for handling date and time data.

::

$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



**String Functions**

This group contains functions that operate on strings e.g replace, convert to upper case.

::

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



**Color Functions**

This group contains functions for manipulating colors.

::

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

**Geometry Functions**

This group contains functions that operate on geometry objects e.g length, area.

::
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


**Record Functions**

This group contains functions that operate on record identifiers.

::

$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


**Fields and Values**

Contains a list of fields from the layer. Sample values can also be accessed via right-click.

Select the field name from the list then right-click to access context menu with options to load sample values from the selected field.


The field calculator **Function list** with the **Selected Function Help** ,
**Operators** and **Expression** menu are also available through the rule-based
rendering in the Style tab of the Layer properties and the expression based
labeling |browsebutton| in the |mActionLabeling| :sup:`Labeling` core application.

0 comments on commit 020a471

Please sign in to comment.