Справка по функциям калькулятора полей QGIS: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
 
Строка 86: Строка 86:


12345 % 10000 --> 2345
12345 % 10000 --> 2345
Выбрать из некоторого количества объектов, объекты с характеристикой кратной 50 по атрибуту ELEV:
"ELEV" % 50 = 0  или  NOT("ELEV" % 50)


=== <span style="color:blue">Оператор ^</span> ===
=== <span style="color:blue">Оператор ^</span> ===

Текущая версия от 14:52, 4 ноября 2013

Эта страница является черновиком статьи.


Справка по функциям калькулятора полей QGIS

Список функций

Операторы

Оператор +

Возвращает сумму значений полей

Синтаксис

a + b

Аргументы

a, b -> числа или поля содержащие целочисленные или десятичные значения

Пример

"field_name1" + "field_name2"

Оператор -

Возвращает разность значений полей

Синтаксис

a - b

Аргументы

a, b -> числа или поля содержащие целочисленные или десятичные значения

Пример

"field_name1" - "field_name2"


Оператор *

Возвращает произведение значений полей

Синтаксис

a * b

Аргументы

a, b -> числа или поля содержащие целочисленные или десятичные значения

Пример

"field_name1" * "field_name2"

Оператор /

Возвращает частное значений полей

Синтаксис

a / b

Аргументы

a, b -> числа или поля содержащие целочисленные или десятичные значения

Пример

"field_name1" / "field_name2"

Оператор %

Деление по модулю - возвращает остаток от деления одного целого числа на другое целое число.

Синтаксис

a % b

Аргументы

a, b -> целые числа.

Пример

12345 % 10000 --> 2345

Выбрать из некоторого количества объектов, объекты с характеристикой кратной 50 по атрибуту ELEV:

"ELEV" % 50 = 0 или NOT("ELEV" % 50)

Оператор ^

Возвращает результат возведения числа a в степень b.

Синтаксис

a ^ b

Аргументы

a, b -> числа или поля содержащие целочисленные или десятичные значения

Пример

"field_name1" ^ 2

"field_name1" ^ "field_name2"

Оператор =

Знак равенства

Синтаксис

a = b

Аргументы

a,b -> Значения полей

Пример

"field_name1" = "field_name2" --> В случае, если выражение верно, возвращает 1, в случае, если неверно — 0.

Оператор >

Оператор "больше".

Синтаксис

Синтаксис зависит от задач.

В случае, если нам нужно проверить справедливость выражения (если выражение верно, возвращается 1, если нет — 0):

a < b

Ниже приводится пример синтаксиса для построения условного выражения:

CASE WHEN a < 300 THEN m ELSE n END

Аргументы

a,b -> целочисленные или дробные значения. m,n -> численные или строковые значения.

Пример

Нижеследующее условное выражение возвращает значение "маленький" в случае, если значение поля "Количество" < 300 и "большой", в противном случае, возвращается значение "большой".

CASE WHEN "Количество" < 300 THEN 'маленький' ELSE 'большой' END

Оператор <

Синтаксис

Аргументы

Пример

Оператор <>

Синтаксис

Аргументы

Пример


Оператор <=

Синтаксис

Аргументы

Пример


Оператор >=

Синтаксис

Аргументы

Пример


Оператор ||

Оператор конкатенации: объединяет выражения из разных полей.

Синтаксис

a || b

Аргументы

a,b -> числовые и строковые выражения.

Пример

'Васисуалий' || ' ' || 'Лоханкин -> Васисуалий Лоханкин

Оператор LIKE

Оператор для поиска значений по образцу с учетом регистра.

Синтаксис

CASE WHEN a LIKE b THEN c ELSE d END

Аргументы

a, c, d - числа, строки или поля. b - образец. В качестве образца может быть задано как жестко фиксированное выражение, так и маска, например, '%ся' - маска для отбора значений поля любой длины, оканчивающихся на "ся" (Вася, Маруся и т.д.). Нижнее подчеркивание "_" используется для обозначения в маске одного знака, например, маска '__ся' отберет все слова оканчивающиеся на "ся" и имеющие длину в 4 символа.

Пример

Выражение, возвращающее значение "город", если значение поля "Населенный пункт" начинается с "г.", в противном случае, возвращает значение "поселок".

CASE WHEN "Населенный пункт" LIKE 'г.%' THEN 'город' ELSE 'поселок' END

Оператор ILIKE

Оператор для поиска значений по образцу без учета регистра.

Синтаксис

CASE WHEN a ILIKE b THEN c ELSE d END

Аргументы

a, c, d - числа, строки или поля. b - образец. В качестве образца может быть задано как жестко фиксированное выражение, так и маска, например, '%ся' - маска для отбора значений поля любой длины, оканчивающихся на "ся" (Вася, Маруся и т.д.). Нижнее подчеркивание "_" используется для обозначения в маске одного знака, например, маска '__ся' отберет все слова оканчивающиеся на "ся" и имеющие длину в 4 символа.

Пример

Выражение, возвращающее значение "город", если значение поля "Населенный пункт" начинается с "г.", в противном случае, возвращает значение "поселок".

CASE WHEN "Населенный пункт" ILIKE 'г.%' THEN 'город' ELSE 'поселок' END

Оператор IS

Синтаксис

Аргументы

Пример

Оператор OR

Условный оператор, отбирающий значения, которые удовлетворяют хотя бы одному условию из перечня.

Синтаксис

Аргументы

Пример

Оператор AND

Условный оператор, отбирающий такие значения, которые удовлетворяют двум (или более) условиям.

Синтаксис

CASE WHEN a оператор сравнения b AND c оператор сравнения d THEN n ELSE m END

Аргументы

a,b,c,d,n,m - числовые и строковые значения. В качестве операторов сравнения могут выступать: =,>,<,<>,<=,>=, LIKE.

Пример

С помощью данного выражения все значения поля "Размер" разбиваются на три класса: малый (от 0 до 15 включительно), средний (от 16 до 30 включительно), и крупный (более 30).

CASE WHEN "Размер" >= '0' AND "Размер" <= '15' THEN 'малый' WHEN "Размер" >= '16' AND "Размер" <= '30' THEN 'средний' WHEN "Размер" > '30' THEN 'крупный' END

Оператор NOT

Синтаксис

Аргументы

Пример

Математические

Математические функции, такие как квадратный корень, sin и cos.

Функция sqrt()

Квадратный корень

Синтаксис

sqrt(a)

Аргументы

a -> значение числового поля

Пример

sqrt("fiel_name1")

Функция sin()

Синус

Синтаксис

sin(a)

Аргументы

a -> значение числового поля, выраженное в радианах.

Пример

sin(3.14159265358979/6) --> 0.5

Функция cos()

Косинус

Синтаксис

cos(a)

Аргументы

a -> значение числового поля, выраженное в радианах.

Пример

cos(0) --> 1

Функция tan()

Тангенс

Синтаксис

tan(a)

Аргументы

a -> значение числового поля, выраженное в радианах.

Пример

tan(3.141592653589793/4)) --> 1

Функция asin()

Арксинус

Синтаксис

Аргументы

Пример

Функция acos()

Арккосинус

Синтаксис

Аргументы

Пример

Функция atan()

Арктангенс

Синтаксис

Аргументы

Пример


Функция atan2()

Арктангенс y/x использующий знаки двух аргументов для определения квадранта результата.

Синтаксис

atan2(y,x)

Аргументы

x,y -> значение числового поля, выраженное в радианах.

Пример

atan2("field_name1"/"field_name2")


Функция exp()

Синтаксис

Аргументы

Пример

Функция ln()

Синтаксис

Аргументы

Пример

Функция log10()

Синтаксис

Аргументы

Пример

Функция log()

Синтаксис

Аргументы

Пример

Преобразования

Функции для преобразования одного типа данных в другой, например для преобразования строковых данных в числовые, числовых в строковые.

Функция toint ()

Преобразует десятичные числа в целые.

Синтаксис

toint (a)

Аргументы

a -> десятичное число (real).

Пример

toint (123.456) -> 123

Функция toreal

Синтаксис

Аргументы

Пример

Функция tostring ()

Преобразует числовые данные в строковые.

Синтаксис

tostring (a)

Аргументы

a -> числовое поле (целочисленное или дробное)

Пример

tostring ("fild_name1")

Строковые

Функции для работы со строковыми данными, например замена или преобразование в верхний регистр.

Функция lower()

Преобразует текстовую строку в нижний регистр.

Синтаксис

lower(string)

Аргументы

string -> текстовая строка. Строка, регистр которой необходимо понизить.

Пример

lower('HELLO World') -> 'hello world'

Функция upper()

Преобразует текстовую строку в верхний регистр.

Синтаксис

upper(string)

Аргументы

string -> текстовая строка. Строка, регистр которой необходимо повысить.

Пример

upper('hello WOrld') -> 'HELLO WORLD'

Функция length()

Возвращает длину строки.

Синтаксис

length(string)

Аргументы

string -> текстовая строка. Строка, длину которой необходимо измерить.

Пример

length('HELLO') -> 5

Функция replace()

Возвращает тестовую строку с определенными заменами.

Синтаксис

replace(string,before,after)

Аргументы

string -> строка. Исходная строка.

before -> строка. Заменяемая часть строки.

after -> строка. Заменяющая часть строки.

Пример

replace('QGIS SHOULD ROCK','SHOULD','DOES') -> 'QGIS DOES ROCK'

Функция regexp_replace

Синтаксис

Аргументы

Пример

Функция substr()

Возвращает определенную часть строки.

Синтаксис

substr(string,startpos,length)

Аргументы

string -> строка. Исходная полная строка.

startpos -> число. Стартовая позиция откуда следует начинать экстракцию.

length -> is number. Длина экстрагируемой строки.

Пример

substr('HELLO WORLD',3,5) -> 'LLO W'

Геометрические

Функции для операций с геометрией объектов, например для расчета длин и площадей.

Функция xat()

Возвращает координату X (долготу) n-ой точки линии.

Синтаксис

xat(n)

Аргументы

n - целое число, номер n-ой точки линии (индекс начинается с 0; отрицательные значения отсчитываются от последнего значения индекса).

Пример

xat(1) -> градусы, в случае, если полилиния находится в географической системе координат

xat(1) -> метры, в случае, если полилиния в прямоугольной проекции.

Функция yat()

Возвращает координату Y (широту) n-ой точки линии.

Синтаксис

yat(n)

Аргументы

n - целое число, номер n-ой точки линии (индекс начинается с 0; отрицательные значения отсчитываются от последнего значения индекса).

Пример

yat(1) -> градусы, в случае, если полилиния находится в географической системе координат

yat(1) -> метры, в случае, если полилиния в прямоугольной проекции.

Функция $area

Возвращает площадь полигона. Внимание! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Синтаксис

$area

Аргументы

Нет аргументов.

Примеры

$area -> метры, полигональный слой должен быть в прямоугольной проекции.

Функция $length

Возвращает длину линии. Внимание! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Синтаксис

$length

Аргументы

Нет аргументов.

Пример

$length -> метры, линейный слой должен быть в прямоугольной проекции.

Функция $perimeter

Возвращает периметр полигона. Внимание! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Синтаксис

$perimeter

Аргументы

Нет аргументов.

Пример

$perimeter -> метры, линейный слой должен быть в прямоугольной проекции.

Функция $x

Возвращает координату X (долготу) точки. Внимание! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Синтаксис

$x

Аргументы

Нет аргументов.

Пример

$x -> градусы, в случае, если точечный слой находится в географической системе координат.

$x -> метры, в случае, если точечный слой находится в прямоугольной системе координат.

Функция $y

Возвращает координату Y (широту) точки. Внимание! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Синтаксис

$y

Аргументы

Нет аргументов.

Пример

$y -> градусы, в случае, если точечный слой находится в географической системе координат.

$y -> метры, в случае, если точечный слой находится в прямоугольной системе координат.

Записи

Функция $rownum

Функция для автоматической нумерации строк.

Синтаксис

$rownum

Аргументы

Нет аргументов.

Пример

$rownum -> 1,2,3... номер строки возвращается начиная с 1. Таким образом для нумерации строк нужно зайти в калькулятор полей, поставить галочку на "Обновить существующее поле", выбрать соответствующее поле и в окне "Выражение" написать "$rownum", нажать ОК.

Функция $id

Функция для автоматического присвоения идентификаторов (ID) объектов.

Синтаксис

$id

Аргументы

Нет аргументов.

Пример

$id -> 0,1,2,3... (нумерация начинается с 0).

Поля и значения

Содержит список полей слоя. Конкретные значения поля доступны по правому щелчку мыши.

Выберите значение поля из списка и щелкните по нему правой кнопкой мыши. Появится контекстное меню для загрузки значений из выбранного поля.

Function List

Operators

This group contains operators e.g + - *

+ operator

Return a summ of fields

Syntax

a + b

Arguments

a, b -> integer or real fields

Example

"field_name1" + "field_name2"

- operator

Syntax

Arguments

Example

* operator

Syntax

Arguments

Example

/ operator

Syntax

Arguments

Example

% operator

The modulo operation finds the remainder of division of one number by another.

Syntax

a % b

Arguments

a,b - are number.

Example

12345 % 10000 -> 2345

^ operator

Syntax

Arguments

Example

= operator

Syntax

Arguments

Example

> operator

Syntax

Arguments

Example

< Operator

Syntax

Arguments

Example

<> operator

Syntax

Arguments

Example

<= operator

Syntax

Arguments

Example

>= operator

Syntax

Arguments

Example

|| operator

Syntax

Arguments

Example

LIKE operator

Syntax

Arguments

Example

ILIKE operator

Syntax

Arguments

Example

IS operator

Syntax

Arguments

Example

OR operator

Syntax

Arguments

Example

AND operator

Syntax

Arguments

Example

NOT operator

Syntax

Arguments

Example


Math

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

sqrt function

Syntax

Arguments

Example

sin function

Syntax

Arguments

Example

cos function

Syntax

Arguments

Example

tan function

Syntax

Arguments

Example

asin function

Syntax

Arguments

Example

acos function

Syntax

Arguments

Example

atan function

Syntax

Arguments

Example

atan2 function

Syntax

Arguments

Example

exp function

Syntax

Arguments

Example

ln function

Syntax

Arguments

Example

log10 function

Syntax

Arguments

Example

log function

Syntax

Arguments

Example

Conversions

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

toint function

Syntax

Arguments

Example

toreal function

Syntax

Arguments

Example

tostring function

Syntax

Arguments

Example

String

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

lower() function

Converts a string to lower case letters.

Syntax

lower(string)

Arguments

string -> is string. The String to convert to lower case.

Example

lower('HELLO World') -> 'hello world'

upper() function

Converts a string to upper case letters.

Syntax

upper(string)

Arguments

string -> is string. The String to convert to upper case.

Example

upper('hello WOrld') -> 'HELLO WORLD'

length() function

Returns the length of a string.

Syntax

length(string)

Arguments

string -> is string. The String to count the length of.

Example

length('HELLO') -> 5

replace() function

Returns a string with the the supplied string replaced.

Syntax

replace(string,before,after)

Arguments

string -> is string. The start string.

before -> is string. The string to replace.

after -> is string. The string that will replace before

Example

replace('QGIS SHOULD ROCK','SHOULD','DOES') -> 'QGIS DOES ROCK'

regexp_replace() function

Syntax

Arguments

Example

substr() function

Return a part of a string

Syntax

substr(string,startpos,length)

Arguments

string -> is string. The full string.

startpos -> is number. The start position to extract from.

length -> is number. The length of the string to extract.

Example

substr('HELLO WORLD',3,5) -> 'LLO W'

Geometry

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

xat() function

Return x coordinate (longitude) of n-th point of a line.

Syntax

xat(n)

Arguments

n - integer, point number of a line (indices start at 0; negative values apply to the last index)

Example

xat(1) -> degree, if polyline layer is in Geographic Coordinate System

xat(1) -> meters, if polyline layer is in Projected Coordinate System

yat() function

Return y coordinate (latitude) of n-th point of a line.

Syntax

yat(n)

Arguments

n - integer, point number of a line (indices start at 0; negative values apply to the last index)

Example

yat(1) -> degree, if polyline layer is in Geographic Coordinate System

yat(1) -> meters, if polyline layer is in Projected Coordinate System

$area function

Return area of polygon. Attention! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Syntax

$area

Arguments

No arguments.

Example

$area -> meters, (polygone layer must be in projected coordinate system)

$length function

Return length of a line. Attention! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Syntax

$length

Arguments

No arguments.

Example

$length -> meters, (polyline layer must be in projected coordinate system)

$perimeter function

Возвращает периметр полигона. Attention! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Синтаксис

$perimeter

Аргументы

Аргументов нет.

Пример

$perimeter -> метры (полигональный слой должен быть в прямоугольной проекции).

$x function

Return X-coordinate (longitude) of point. Attention! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Syntax

$x

Arguments

No arguments.

Example

$x -> degree, if point layer is in Geographic Coordinate System

$x -> meters, if point layer is in Projected Coordinate System

$y function

Return Y-coordinate (latitude) of point. Attention! Следите, чтобы количество разрядов в результатах расчетов не превышало количество разрядов заданных при создании поля.

Syntax

$y

Arguments

No arguments.

Example

$y -> degree, if point layer is in Geographic Coordinate System

$y -> meters, if point layer is in Projected Coordinate System

Record

$rownum function

Syntax

Arguments

Example

$id function

Syntax

Arguments

Example

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.