Skip To Content

Usare le espressioni con GeoAnalytics Tools

Nella casella degli strumenti di GeoAnalytics Tools sono disponibili più strumenti che consentono di applicare un'espressione. I seguenti strumenti consentono di applicare un'espressione:

I GeoAnalytics Tools che utilizzano espressioni hanno utilizzi diversi, nonché limitazioni sulle espressioni da applicare.

Ricostruisci tracce e Crea buffer

Le espressioni buffer sono utilizzate dagli strumenti Ricostruisci tracce e Crea buffer.

Le dimensioni del buffer sono in genere immesse utilizzando valori costanti o valori di campo. Tuttavia, l'immissione dei valori non è l'unico modo per specificare la dimensione di un buffer utilizzando GeoAnalytics Tools. In alcuni casi, è possibile eseguire un calcolo matematico per impostare la dimensione del buffer. È possibile eseguire calcoli sia semplici che avanzati applicabili a tutti i record. Il calcolo viene applicato a ogni feature che viene analizzata. I calcoli sono eseguiti quando l'analisi viene eseguita su ArcGIS GeoAnalytics Server.

Le espressioni buffer possono utilizzare calcoli semplici e tutte le funzioni integrate.

Nelle sezioni riportate di seguito sono inclusi esempi di espressioni di buffer.

Join delle feature

Le espressioni sono utilizzate nello strumento Join delle feature per specificare le condizioni di join.

In alcuni casi, è possibile specificare una condizione per selezionare le feature da includere nel join. È possibile eseguire semplici condizioni di join (come field a > field c) nonché le condizioni avanzate. Le condizioni vengono testate rispetto a ogni feature per determinare ciò che viene analizzato. I calcoli sono eseguiti quando l'analisi viene eseguita in ArcGIS GeoAnalytics Server.

Le espressioni della condizione di join possono utilizzare calcoli semplici e funzioni integrate avanzate per creare le condizioni. Le condizioni di join non possono utilizzare la funzione as_distance. Una condizione di join deve restituire sempre true o false.

Nelle sezioni riportate di seguito sono inclusi esempi di espressioni.

Calcoli semplici

Esempi semplici di matematica

Gli strumenti Ricostruisci tracce e Crea buffer possono elaborare i numeri matematicamente.

Lo strumento Join delle feature può utilizzare operazioni matematiche quando si creano condizioni di join.

OperatoreSpiegazioneEsempioRisultato

a + b

a più b

["fieldname"] + 2.5

fieldname contiene il valore 1,5

4.0

a - b

a meno b

["fieldname"]- 2.2

fieldname contiene il valore 3,3

1.1

a * b

a moltiplicato per b

["fieldname"] * 2.2

fieldname contiene il valore 2

4,4

a / b

a diviso b

["fieldname"] / 1.25

fieldname contiene il valore 4,0

3,2

abs( a )

Restituisce il valore assoluto (positivo) di a.

abs(["fieldname"])

fieldname contiene il valore -1,5

1,5

log ( a )

Restituisce il logaritmo naturale (base e) di a.

log(["fieldname"])

fieldname contiene il valore 1

0

sin ( a )

Restituisce il seno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti.

sin(["fieldname"])

fieldname contiene il valore 1,5707

1

cos( a )

Restituisce il coseno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti.

cos(["fieldname"])

fieldname contiene il valore 0

1

tan( a )

Restituisce la tangente di a. Si presuppone che l'input sia un angolo espresso in radianti.

tan(["fieldname"])

fieldname contiene il valore 0

0

sqrt( a )

Restituisce la radice quadrata di a.

sqrt(["fieldname"])

fieldname contiene il valore 9

3

min( a, b )

Restituisce il valore più basso compreso tra a e b.

min("fieldname", -3)

fieldname contiene il valore 1,5 e il valore -3

-3

max( a, b )

Restituisce il valore più alto compreso tra a e b.

max("fieldname1", "fieldname2")

fieldname1 contiene il valore 1,5 e fieldname2 contiene il valore -3

1,5

Esempio di moltiplicazione per un'espressione buffer

["Distance"] * 2

Esempio di moltiplicazione per un'espressione di condizione di join

["Distance"] * 2 > 5

Funzioni integrate per GeoAnalytics Tools

Esempi della funzione As distance

Le funzioni as distance eseguono il cast dei valori numerici in una distanza lineare che può essere utilizzata in un'espressione matematica.

Gli strumenti Ricostruisci tracce e Crea buffer possono utilizzare le funzioni as distance. Se un valore numerico è utilizzato senza una funzione as distance, si presume che l'unità sia espressa in metri.

Lo strumento Join delle feature non può utilizzare le funzioni as distance.

FunzioneSpiegazioneEsempioRisultato

as_meters( <value> )

Applica un calcolo presupponendo che i valori di input siano in metri.

as_meters( ["fieldname"] )

as_meters(150)

I risultati sono memorizzati nel buffer entro 150 metri.

as_kilometers( <value> )

Applica un calcolo presupponendo che i valori di input siano in chilometri.

as_kilometers( ["fieldname"] )

as_kilometers(150)

I risultati sono memorizzati nel buffer entro 150 chilometri.

as_feet( <value> )

Applica un calcolo presupponendo che i valori di input siano in piedi.

as_feet( ["fieldname"] )

as_feet(150)

I risultati sono memorizzati nel buffer entro 150 piedi.

as_yards( <value> )

Applica un calcolo presupponendo che i valori di input siano in iarde.

as_yards( ["fieldname"] )

as_yards(150)

I risultati sono memorizzati nel buffer entro 150 iarde.

as_nautical_miles( <value> )

Applica un calcolo presupponendo che i valori di input siano in miglia nautiche.

as_nautical_miles( ["fieldname"] )

as_nautical_miles(150)

I risultati sono memorizzati nel buffer entro 150 miglia nautiche.

as_miles( <value> )

Applica un calcolo presupponendo che i valori di input siano in miglia.

as_miles( ["fieldname"] )

as_miles(150)

I risultati sono memorizzati nel buffer entro 150 miglia.

Per ogni feature, moltiplicare il campo Distanza presupponendo che sia in chilometri e aggiungere 10 metri per un'espressione buffer.

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

Funzioni integrate avanzate per espressioni buffer di GeoAnalytics Tools

Oltre alle semplici espressioni matematiche, è possibile utilizzare funzioni più avanzate per applicare espressioni buffer e condizioni di join.

Gli strumenti Ricostruisci tracce e Crea buffer possono utilizzare funzioni avanzate.

Lo strumento Join delle feature può utilizzare operazioni avanzate quando si creano condizioni di join.

FunzioneSpiegazioneEsempioRisultato

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

Restituisce il valore di input se rientra nei limiti vincolanti. Se il valore è inferiore al valore basso, restituisce il valore basso. Se il valore è superiore al valore alto, restituisce il valore alto.

constrain( distance, 0, 10)

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

Restituisce 0 se distance è minore di 0, altrimenti 10 se distance è maggiore di 10 e di distance.

Restituisce 6 se Store dist è minore di 6, altrimenti distance se Store dist è maggiore di distance e di Store dist.

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

Restituisce un valore se una condizione è true e un altro valore se tale condizione è false.

<true value> e <false value> possono essere i seguenti:

  • Un campo numerico. Utilizzare le parentesi quadre se c'è uno spazio nel nome del campo.
  • Un numero.
  • Una funzione.

iff(field1 > field2, field1, 0)

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

Restituisce field1 se field1 è maggiore di field2, altrimenti 0.

Restituisce il risultato della seconda funzione iff se field1 è maggiore di field2, altrimenti 0.

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

Valuta una serie di espressioni, una alla volta, fino a quando una non risulta essere true.

  • expression: un'espressione.
  • result: può essere un numero o un campo.
  • default: un valore facoltativo se nessuna delle espressioni corrisponde.

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

Se field1 + 10 è maggiore di 1, restituisce 1. In caso contrario, verifica se field2 + 10 è maggiore di 2. In tal caso, restituisce 2. In caso contrario, restituisce field3.

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

La funzione decode valuta un'espressione e ne confronta il valore con i parametri successivi. Se l'espressione corrisponde, restituisce il successivo valore di parametro. In assenza di corrispondenze, è disponibile l'opzione per cui l'ultimo parametro è un valore restituito predefinito.

  • conditional val: può essere un campo o un'espressione.
  • case: un valore da confrontare con conditional val.
  • result: il risultato se il caso corrispondente corrisponde a conditional val.
  • defaultValue: un valore facoltativo se nessun altro valore è true.

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

Confronta l'uguaglianza tra il valore condizionale field1 + 3 e il caso 1 field1. Se true, restituisce 1. Se false, confronta l'uguaglianza tra field1 + 3 e field2. Se true, restituisce 2; altrimenti, restituisce 0.

Le istruzioni condizionali possono utilizzare i seguenti operatori:

OperatoreSpiegazioneEsempioRisultati

a > b

a < b

a è maggiore di b

a è minore di b

10 > 2

False

a >= b

a <= b

a è maggiore o uguale a b

a è minore o uguale a b

abs(-10) >= 10

True

a != b

a non è uguale a b

abs(-3) != -3

True

a == b

a è uguale a b

abs(-5) == 5

True

<condition1> OR <condition2>

condizione una o condizione due è soddisfatta

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

True

<condition1> AND <condition2>

condizione una e condizione due sono soddisfatte

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

False

Esempio di un'espressione buffer che utilizza condizioni e funzioni avanzate

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

Esempio di moltiplicazione per una condizione di join

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