Calculadora de Campo
A calculadora de campo é uma poderosa ferramenta desenvolvida dentro do QGIS, ela permite fazer extração de dados das geometrias dos vetores, inserir dados em campos baseados em regras, fazer somas, subtrações, divisões e outras inúmeras operações com os dados da camada. Podemos, inclusive, criar novas funções a serem utilizadas. Todas as configurações dos campos variam conforme o formato da camada (Shapefile, Geopackage, Postgis, Spatialite...)
Devemos tomar alguns cuidados com a calculadora de campo:
-
Nomes de campo devem estar sempre entre aspas duplas (Ex.:
"campo_de_futebol"
). -
Textos devem estar sempre entre aspas simples (
'Solto a vóz nas estradas, já não posso parar...'
) -
Números: Podem ser inseridos diretamente na caixa de texto, devendo tomar cuidado para utilizar o ponto (.) como separador decimal, separador de milhar não deve ser utilizado. Exemplo: Inteiro
42
, decimal3.14159265359
-
Funções que começam com
$
não precisam de argumentos. Exemplo: $area -> Retorna a área da geometria. -
Funções que começam com
@
normalmente acessam alguma variável. Exemplo: @row_number -> 1. -
Funções que possuem parêntesis no final necessitam de parametros para funcionarem. Exemplo: y(
$geometry
) -> Retorna o valor do eixo y da feição.
As funções podem ser combinadas para atingir o resultado desejado.
1.Atualizar apenas X feições selecionadas
: Essa opção é habilitada quando há alguma seleção na camada. Ela faz com que as alterações aconteçam apenas nas feições selecionadas. Caso queira que aconteça para todas as feições, essa opção deve ser desmarcada.
O x representa a quantidade de feições selecionadas dentro da camada.
2.Caixa Criar um novo campo
: Aqui podemos configurar para que seja criado um novo campo na camada.
* Criar um campo virtual
: Essa opção permite que seja criado um campo virtual na camada a ser editada, sendo que o campo ficar apenas dentro do projeto do QGIS.
* Nome do campo
: Aqui podemos determinar o nome do novo campo a ser criado na camada.
* Tipo do novo campo
: Aqui configuramos o tipo que o campo irá ter quando criado.
* Comprimento do campo de saida
: Aqui informamos o tamanho do campo a ser criado.
* Precisão
: Aqui configuramos a quantidade de casas decimais do campo, se a configuração o permitir.
* As medições feitas levão em consideração as configurações do projeto relativas a forma de medição configurada.
3.Caixa Atualiza um campo existente
: Aqui podemos escolher na lista um campo que queremos atualizar que já exista na camada.
4.Aba Expressão
: Aqui podemos construir expressões para inserir, modificar dados na camada.
a) Caixa de texto
: Aqui montamos a expressão utilizando as funções presentes. Acima dessa caixa aparece alguns operadores que podemos utilizar ao construir expressões, os operadores pondem ser inseridos na expressão utilizando o telado também.
b) Lista de funções
: Aqui temos todas as funções que podemos utilizar na camada, desde nomes de campos da tabela, até manipulação de texto.
c) Ajuda: Aqui verificamos a ajuda da expressão selecionada na lista de funções, aqui também pode mostrar uma amostra do que está no campo selecionado na tabela de atributos, ou todos os valores únicos.
d) Prévia de saída: Aqui aparece uma amostra do resultado da expressão criada, caso haja algum erro, aqui irá aparecer Expressão Inválida (more info).
5.Aba Editor de funções
: Nessa aba, é possível acrescentar novas funções, construidas utilizanto Python.
Algumas funções são muito utilizadas, e vamos passar por uma delas.
Grupo Campos e valores
:
Aqui aparecem todos os campos presentes na tabela, com exceção da coluna que contém geometria. Com duplo click é possível adicionar o campo na caixa de texto. Caso queira inserir o nome do campo através do teclado, sempre devemos utilizar as aspas duplas (Ex.: "nome do campo") para evitar que seja tratado como uma função.
Grupo Geometria
:
Aqui estão presentes as funções que utilizam a geometria da camada.
||
: Faz concatenação de texo e/ou campos. Exemplo: 'brincando' || 'com' || 'textos' -> 'Brincando com texos'- $geometry: Retorna a geomertia da feição.
- $id: Retorna o identificador único (id/fid/ogc_id) da feição dentro da camada.
- x_min(geometria): Retora o menor valor do eixo x da feição, de acordo com o SRC da camada. Exemplo: x_min($geometry)
- x_max(geometria): Retora o maior valor do eixo x da feição, de acordo com o SRC da camada. Exemplo: x_max($geometry)
- y_min(geometria): Retora o menor valor do eixo y da feição, de acordo com o SRC da camada. Exemplo: y_min($geometry)
- xymax(geometria): Retora o maior valor do eixo y da feição, de acordo com o SRC da camada. Exemplo: y_max($geometry)
Funções referentes à polígonos: - $area: Retorna a área da geometria. Exemplo: $area - area(geometria): Retorna a area da geometria também, porém sempre planilmétrica, no SRC da camada. Exemplo: area($geometry) - $perimeter: Retorna o perímetro da feição. $perimeter - centroid(geometria): Retorna o centro gemétrico de um polígono. Exemplo: centroid($geometry) - point_on_surface(geometria): Retorna um ponto dentro da geometria. Exemplo($geometry)
Funções referentes à linhas: - $length: Retorna o tamanho da linha. $length - length(): Retorna o tamanho da linha, porém sempre planilmétrica, no SRC da camada. Exemplo: length($geometry).
Funções referentes à pontos: - $y: Retorna o eixo y da geometria do ponto. - y(geometria): Retorna o eixo y de uma geometria, ou o eixo y do centroide de uma geometria. Exemplo: y($geometry). - $x: Retorna o eixo x da geometria do ponto. - y(geometria): Retorna o eixo x de uma geometria, ou o eixo x do centroide de uma geometria. Exemplo: x($geometry). - m(geometria): Retorna a dimensão m de um ponto. Exemplo: m($geometry) - z(geometria): Retona a dimensão z de um ponto. Exemplo: z($geometry)
Após a criação da expresão, ao clicar em OK
, caso não haja nenhum erro, os valores serão inseridos na tabela de atributos, no campo novo ou no campo já existente, dependendo da configuração.
Exemplo de expressão:
As funções possuem ajuda muito bem definidas, e há vários plugins que acrescentam novas funções à calculadora e novas funções podem ser encontradas na internet. Deve-se verificar a compatibilidade das funções com a versão do Python utilizada pelo Qgis.
Novas funções para o Qgis: