Skip To Content

Utilizar expressões com GeoAnalytics Tools

Há múltiplas ferramentas na caixa de ferramentas do GeoAnalytics Tools que permitem a você aplicar uma expressão. As seguintes ferramentas têm a opção para aplicar uma expressão:

As GeoAnalytics Tools que utilizam expressões têm diferentes usos, como também, limitações sobre quais expressões podem ser aplicadas.

Reconstruir Caminhos e Criar Buffers

As expressões de buffer são utilizadas pelas ferramentas Reconstruir Caminhos e Criar Buffers.

Os tamanhos de buffer são mais comumente inseridos utilizando valores de campo ou constantes. Entretanto, a entrada de valores não é a única maneira de especificar um tamanho de buffer utilizando as GeoAnalytics Tools. Em alguns casos, você pode desejar a execução de um cálculo matemático para definir o tamanho do buffer. Você pode executar cálculos simples, como também, cálculos avançados que são aplicados a todos os registros. O cálculo é aplicado a cada feição que é analisada. Os cálculos são realizados quando a análise é executada no ArcGIS GeoAnalytics Server.

As expressões de buffer podem utilizar cálculos simples e todas as funções embutidas.

Os exemplos de expressão do buffer estão incluídos nas seções abaixo.

Ligar Feições

As expressões são utilizadas na ferramenta Ligar Feições para especificar condições de ligação.

Em alguns casos, convém especificar uma condição para selecionar as feições que devem ser incluídas na ligação. Você pode executar condições de ligação simples (como field a > field c), como também, condições avançadas. As condições são testadas em relação a cada feição para determinar o que é analisado. Os cálculos são realizados quando a análise é executada no ArcGIS GeoAnalytics Server.

As expressões de condição da ligação podem utilizar cálculos simples e funções embutidas avançadas para criar condições. As condições de ligação não podem utilizar a função as_distance. Uma condição de ligação sempre deve resultar em true ou false.

Os exemplos de expressão estão incluídos nas seções abaixo.

Cálculos simples

Exemplos de matemática simples

As ferramentas Reconstruir Caminhos e Criar Buffers podem processar matematicamente números.

A ferramenta Ligar Feições pode utilizar operações matemáticas ao criar condições de ligação.

OperadorExplanaçãoExemploResultado

a + b

a mais b

["fieldname"] + 2.5

fieldname contém um valor de 1.5

4.0

a - b

a menos b

["fieldname"]- 2.2

fieldname contém um valor de 3.3

1.1

a * b

a multiplicado por b

["fieldname"] * 2.2

fieldname contém um valor de 2.0

4.4

a / b

a dividido por b

["fieldname"] / 1.25

fieldname contém um valor de 4.0

3.2

abs( a )

Retorna o valor absoluto (positivo) de a.

abs(["fieldname"])

fieldname contém um valor de -1.5

1.5

log ( a )

Retorna o logaritmo natural (base e) de a.

log(["fieldname"])

fieldname contém um valor de 1

0

sin ( a )

Retorna o seno trigonométrico de a. A entrada é assumida como sendo um ângulo em radianos.

sin(["fieldname"])

fieldname contém um valor de 1.5707

1

cos( a )

Retorna o co-seno trigonométrico de a. A entrada é assumida como sendo um ângulo em radianos.

cos(["fieldname"])

fieldname contém um valor de 0

1

tan( a )

Retorna a tangente de a. A entrada é assumida como sendo um ângulo em radianos.

tan(["fieldname"])

fieldname contém um valor de 0

0

sqrt( a )

Retorna a raiz quadrada de a.

sqrt(["fieldname"])

fieldname contém um valor de 9

3

min( a, b )

Retorna o número estimado mais baixo entre a e b.

min("fieldname", -3)

fieldname contém um valor de 1.5 e um valor de -3

-3

max( a, b )

Retorna o número estimado mais alto entre a ou b.

max("fieldname1", "fieldname2")

fieldname1 contém um valor de 1.5 e fieldname2 contém um valor -3

1.5

Exemplo de multiplicação para uma expressão de buffer

["Distance"] * 2

Exemplo de multiplicação para uma expressão de condição da ligação

["Distance"] * 2 > 5

Funções embutidas para GeoAnalytics Tools

Exemplos da função As distance

As funções as distance convertem valores numéricos para uma distância linear, que pode então ser utilizada em uma expressão matemática.

As ferramentas Reconstruir Caminhos e Criar Buffers pode utilizar as funções as distance. Se um valor numérico for utilizado sem uma função as distance, a unidade será assumida para ser metros.

A ferramenta Ligar Feições não pode utilizar as funções as distance.

FunçãoExplanaçãoExemploResultado

as_meters( <value> )

Aplica um cálculo assumindo que os valores de entrada estão em metros.

as_meters( ["fieldname"] )

as_meters(150)

Os resultados são armazenados em buffers por 150 metros.

as_kilometers( <value> )

Aplica um cálculo assumindo que os valores de entrada estão em quilômetros.

as_kilometers( ["fieldname"] )

as_kilometers(150)

Os resultados são armazenados em buffers por 150 quilômetros.

as_feet( <value> )

Aplica um cálculo assumindo que os valores de entrada estão em pés.

as_feet( ["fieldname"] )

as_feet(150)

Os resultados são armazenados em buffers por 150 pés.

as_yards( <value> )

Aplica um cálculo assumindo que os valores de entrada estão em jardas.

as_yards( ["fieldname"] )

as_yards(150)

Os resultados são armazenados em buffers por 150 jardas.

as_nautical_miles( <value> )

Aplica um cálculo assumindo que os valores de entrada estão em milhas náuticas.

as_nautical_miles( ["fieldname"] )

as_nautical_miles(150)

Os resultados são armazenados em buffers por 150 milhas náuticas.

as_miles( <value> )

Aplica um cálculo assumindo que os valores de entrada estão em milhas.

as_miles( ["fieldname"] )

as_miles(150)

Os resultados são armazenados em buffers por 150 milhas.

Para cada feição, multiplique o campo Distância assumindo que esteja em quilômetros, e adicione 10 metros para uma expressão de buffer.

as_kilometers(["Distance"]) * 3 + as_meters(10)

Funções embutidas avançadas para expressões de buffer das GeoAnalytics Tools

Além de expressões matemáticas simples, funções mais avançadas podem ser utilizadas para aplicar expressões de buffer e condições de ligação.

As ferramentas Reconstruir Caminhos e Criar Buffers podem utilizar funções avançadas.

A ferramenta Ligar Feições pode utilizar operações avançadas ao criar condições de ligação.

FunçãoExplanaçãoExemploResultado

constrain(<value>,<low>,<high>)

Retorna o valor de entrada se ele estiver dentro dos limites determinados. Se o valor for menor que o valor baixo, retorna o valor baixo. Se o valor for maior que o valor alto, retorna o valor alto.

constrain( distance, 0, 10)

constrain(['Store dist'], 6, distance)

Returna 0 se distance for menor que 0, 10 se distance for maior que 10, e caso contrário, distance.

Returna 6 se Store dist for menor que 6, distance se Store dist for maior que distance, e caso contrário, Store dist.

iff(<condition>,<true value>,<false value>)

Retorna um valor se uma condição avaliar para true, e outro valor se esta condição avaliar para false.

<true value> e <false value> podem ser o seguinte:

  • Um campo numérico. Se houver um espaço no nome de campo, utilize colchetes.
  • Um número.
  • Uma função.

iff(field1 > field2, field1, 0)

iff(field1 > field2, iff(field2 = 0, field3, field4), 0)

Returna field1 se field1 for maior que field2, e caso contrário, 0.

Retorna o resultado da segunda função iff se field1 for maior que field2, e caso contrário, 0.

when(<expression1>, <result1>, <expression2>, <result2>, ... , <expressionN>, <resultN>, <default>)

Avalia uma série de expressões na sua vez, até que uma avalie para true.

  • expression—Uma expressão.
  • result—Pode ser um número ou campo.
  • default—Um valor opcional se nenhuma das expressões for compatível.

when((field1 + 10) > 1, 1,(field2 + 10) > 2 , 2, field3)

Se field1 + 10 for maior que 1, retorna 1. Se não, marque se field2 + 10 for maior que 2. Se positivo, retorna 2. Se não, retorna field3.

decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )

A função decode avalia uma expressão e compara seu valor com os parâmetros subsequentes. Se a expressão corresponder, ela retorna o próximo valor de parâmetro. Se nenhuma corresponder, há a opção do último parâmetro para ser um valor de retorno padrão.

  • conditional val—Pode ser um campo ou uma expressão.
  • case—Um valor a ser comparado à conditional val.
  • result—O resultado se o caso for correspondente à conditional val.
  • defaultValue—Um valor opcional se nenhum outro valor for true.

decode(field1 + 3 , field1, 1, field2, 2, 0)

Compara a igualdade entre o valor condicional field1 + 3 e case1 field1. Se true, retorna 1. Se false, compara a igualdade entre field1 + 3 e field2. Se true, retorna 2; caso contrário, retorna 0.

As declarações condicionais podem utilizar os seguintes operadores:

OperadorExplanaçãoExemploResultados

a > b

a < b

a é maior que b

a é menor que b

10 > 2

Falso

a >= b

a <= b

a é maior ou igual a b

a é menor ou igual a b

abs(-10) >= 10

Verdadeiro

a != b

a não é igual a b

abs(-3) != -3

Verdadeiro

a == b

a é igual a b

abs(-5) == 5

Verdadeiro

<condition1> OR <condition2>

condição 1 ou condição 2 é atendida

(abs(-5) == 5) OR (10 > 2)

Verdadeiro

<condition1> AND <condition2>

condição 1 e condição 2 são atendidas

(abs(-5) == 5) AND (10 < 2)

Falso

Exemplo de uma expressão de buffer utilizando funções e condições avançadas

iff(field1 > field2, iff(field2 = 0, field3, field4), 0)

Exemplo de multiplicação para condição de ligação

iff(field1 > field2, iff(field2 = 0, field3, field4), 0) > ["Distance"] * 2