Nella casella degli strumenti di GeoAnalytics Tools sono disponibili più strumenti che consentono di applicare un'espressione.
- Espressioni buffer in Crea buffer e Ricostruisci tracce
- Condizioni di join in Join delle feature
Ulteriori informazioni sulle espressioni in Join delle feature
- Condizioni di evento in Rileva Eventi
- Calcolo dei valori di campo in Calcola Campo
I GeoAnalytics Tools che utilizzano espressioni hanno utilizzi diversi, nonché limitazioni sulle espressioni da applicare. Tutte le espressioni utilizzate in ArcGIS GeoAnalytics Server supportano Arcade.
Ulteriori informazioni sulle funzioni Arcade
Espressioni in 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 campo a > campo 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.
Nota:
Join delle feature richiede due input: un layer di destinazione e un layer di join. Di conseguente, tutte le espressioni Arcade in Join delle feature devono descrivere i dataset da utilizzare. Ad esempio, un’operazione per calcolare se un campo nel Target Layer denominato field1 è maggiore rispetto ad un campo nel Join Layer denominato field2 viene espresso come $target["field1"] > $join["field2"]. Ciò è diverso dalle espressioni in altri GeoAnalytics Tools, che utilizzano il formato $feature["fieldname"].Una condizione di join deve restituire sempre true o false. Nelle sezioni riportate di seguito sono inclusi esempi di espressioni.
Esempi di operatori matematici e funzioni
Le espressioni sono in grado di elaborare numeri matematicamente. La seguente tabella mostra un esempio delle operazioni disponibili.
Ulteriori informazioni sulle operazioni matematiche e le funzioni disponibili in Arcade
Operatore | Spiegazione | Esempio | Risultato |
---|---|---|---|
a + b | a più b. | fieldname contiene un valore di 1.5. $target["fieldname"] + 2,5 | 4.0 |
a - b | a meno b. | fieldname contiene un valore di 3.3. $target["fieldname"]- 2,2 | 1,1 |
a * b | a per b. | fieldname contiene un valore di 2.0. $join["fieldname"] * 2,2 | 4,4 |
a / b | a diviso b. | fieldname contiene un valore di 4.0. $join["fieldname"] / 1,25 | 3,2 |
abs( a ) | Restituisce il valore assoluto (positivo) di a. | fieldname contiene un valore di -1.5. abs($target["fieldname"]) | 1,5 |
log( a ) | Restituisce il logaritmo naturale (base E) di a. | fieldname contiene un valore di 1. log($join["fieldname"]) | 0 |
sin( a ) | Restituisce il seno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti. | fieldname contiene un valore di 1.5707. sin($target["fieldname"]) | 1 |
cos( a ) | Restituisce il coseno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti. | fieldname contiene un valore di 0. cos($join["fieldname"]) | 1 |
tan( a ) | Restituisce la tangente di a. Si presuppone che l'input sia un angolo espresso in radianti. | fieldname contiene un valore di 0. tan($target["fieldname"]) | 0 |
rq( a ) | Restituisce la radice quadrata di a. | fieldname contiene un valore di 9. sqrt($join["fieldname"]) | 3 |
min( a, b ) | Restituisce il valore più basso compreso tra a e b. | fieldname contiene un valore di 1.5 e un valore di -3. min($join["fieldname"], -3) | -3 |
max( a, b ) | Restituisce il valore più alto tra a e b. | fieldname1 contiene un valore di 1.5 e fieldname2 contiene un valore di -3. max($target["fieldname1"], $join["fieldname2"]) | 1,5 |
constrain(<value>,<low>,<high>) | Restituisce il valore di input se rientra nei limiti vincolanti. Se il valore di input è inferiore al valore basso, restituisce il valore basso. Se il valore di input è superiore al valore alto, restituisce il valore alto. | limite($target["distance"], 0, 10) limite($join['Store dist'], 6, distanza) | Restituisce 0 se distance è minore di 0, 10 se distance è maggiore di 10, altrimenti distance. Restituisce 6 se Store dist è minore di 6, distance se Store dist è maggiore di distance, altrimenti Store dist. |
Esempio di moltiplicazione per un'espressione di condizione di join che utilizza un campo dal dataset di destinazione.
$target["Distance"] * 2 > $join["DistField"]
Esempi della funzione di testo
Le espressioni di condizione di join possono processare testo. La seguente tabella mostra un esempio delle operazioni disponibili.
Ulteriori informazioni sulle funzioni di testo disponibili in Arcade
Operatore | Spiegazione | Esempio | Risultato |
---|---|---|---|
concatenare( <valori>, <separatore>) | Concatena i valori e restituisce una stringa.
| fieldname contiene il valore GeoAnalytics Concatenare ([$target["fieldname"], "è", "fantastico!"], ' ') | GeoAnalytics è fantastico! |
cercare(<searchText>, <text>, <startPos>) | Cerca una stringa in una stringa. I caratteri jolly non sono supportati.
| fieldname1 contiene un valore di 14NorthStreet e fieldname2 contiene un valore di North. trova($target["fieldname2"], $join["fieldname1"]) | 2 |
inferiore(<valore>) | Compilare una stringa in minuscolo.
| fieldname contiene un valore di GEOANALYTICS. inferiore($join["fieldname"]) | geoanalytics |
Esempio di testo usando find e lower.
find(("north"), lower("146NorthStreet")) == False
Esempi della funzione di dati
Le espressioni di join possono processare dati. La seguente tabella mostra un esempio delle operazioni disponibili.
Ulteriori informazioni sulle funzioni di dati disponibili in Arcade
In Arcade, i valori del mese variano dallo 0 (Gennaio) all’11 (Dicembre), i giorni vanno dall’1 al 31, le ore dallo 0 (12:00 am) al 23 (11:00 pm), i minuti ed i secondi dallo 0 al 59, ed i millisecondi dallo 0 al 999. I dati Arcade restituiscono i valori temporali nella posizione del proprio GeoAnalytics Server.
Operatore | Spiegazione | Esempio | Risultato |
---|---|---|---|
data( <valore>, <mese>, <giorno>, <ora>, <minuto>) | Analizza il valore o un insieme di valori in una stringa di data.
| fieldname contiene un valore di 1476987783555. Esempio 1: Data($target["fieldname"]) Esempio 2: Data(2017,0,14,0) Esempio 3: Data() | Esempio 1: 20 Ott 2016 11:23:03 am Esempio 2: 14 Gen 2017 12:00:00 am Esempio 3: Restituisce il periodo temporale attuale |
DiffData(<data1>, <data2>, <unità>) | Sottrae due date e restituisce la differenza nelle unità specificate.
| Esempio 1: DiffData(Data(2017,1,14,0), Data()) Esempio 2: DiffData(Data(2017,1,14,0), Data(), "Anni") | Il risultato cambierà a seconda del momento di avvio di questo comando. Esempio 1: -20532129137 Esempio 2: -0.6546783768647119 |
Anno(<Valoredata>) | Restituisce l'anno della data specificata.
| Esempio 1: fieldname è un campo di un tipo Date con un valore di valore di 09 Oct 2017 04:30:43 pm. Anno($join["fieldname"]) Esempio 2: fieldname è un campo stringa con il formato di una stringa ISO 8601 con un valore di 2012-09-27. Esempio 2: fieldname è un campo stringa con il formato di una stringa ISO 8601 con un valore di Year(Date($target["fieldname"])). | Esempio 1: 2017 Esempio 2: 2012 |
Operatori condizionali
Le istruzioni condizionali possono utilizzare i seguenti operatori:
Operatore | Spiegazione | Esempio | Risultati |
---|---|---|---|
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> || <condition2> | Condition 1 o condition 2 viene soddisfatta. | (abs(-5) == 5) || (10 < 2) | True |
<condition1> && <condition2> | Condition 1 e condition 2 vengono soddisfatte. | (abs(-5) == 5) && (10 < 2) | False |
Esempi di operatore logico
Oltre ad operatori condizionali, è possibile utilizzare operatori logici più avanzati per join delle feature.
Ulteriori informazioni sulle funzioni logihe disponibili in Arcade
Funzione | Spiegazione | Esempio | Risultato |
---|---|---|---|
constrain(<value>,<low>,<high>) | Restituisce il valore di input se rientra nei limiti vincolanti. Se il valore di input è inferiore al valore basso, restituisce il valore basso. Se il valore di input è superiore al valore alto, restituisce il valore alto. | limite($target["distance"], 0, 10) limite($join['Store dist'], 6, distanza) | Restituisce 0 se distance è minore di 0, 10 se distance è maggiore di 10, altrimenti distance. Restituisce 6 se Store dist è minore di 6, distance se Store dist è maggiore di distance, altrimenti Store dist. |
iif(<condition>,<true value>,<false value>) | Restituire un valore se una condizione risulta essere true un altro valore se la condizione risulta essere false. <true value> e <false value> possono essere i seguenti:
| iif($target["field1"] > $join["field2"], $join["field1"], 0) iif($target["field1"] > $join["field2"], iif($target["field2"] = 0, $join["field3"], $target["field4"]), 0) | Restituisce field1 se field1 è maggiore di field2, altrimenti 0. Restituisce il risultato della seconda funzione iif 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.
| quando(($target["field1"] + 10) > 1, 1,($join["field2"] + 10) > 2, 2, $target["field3"]) | Se field1 + 10 è maggiore di 1, restituisce 1. In caso contrario, verifica se field2 + 10 è maggiore di 2. Se lo è, 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.
| decodifica($target["field1"] + 3, $join["field1"], 1, $target["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. |