Nella casella degli strumenti di GeoAnalytics Tools sono disponibili più strumenti che consentono di applicare un'espressione.
- Espressioni buffer in Crea Buffer
- Espressioni buffer in 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. Nella versione 10.8.1, tutte le espressioni utilizzate in ArcGIS GeoAnalytics Server supportano Arcade.
Ulteriori informazioni sulle funzioni Arcade
Espressioni in Rileva Eventi
Le espressioni vengono utilizzate nello strumento Rileva Eventi per specificare le condizioni iniziali e finali per eventi. Una condizione Rileva Eventi deve restituire sempre true o false. Utilizzare una condizione per verificare se una feature deve essere inclusa in un evento. Le condizioni vengono testate rispetto a ogni feature per determinare le feature che sono eventi. I calcoli sono eseguiti quando l'analisi viene eseguita su ArcGIS GeoAnalytics Server. Nelle sezioni riportate di seguito sono inclusi esempi di espressioni utilizzabili.
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 | Questa funzione è stata aggiunta a partire da 10.1. | Risultato |
---|---|---|---|
a + b | a più b. | fieldname contiene il valore 1,5 $feature["fieldname"] + 2.5 | 4.0 |
a - b | a meno b. | fieldname contiene il valore 3,3 $feature["fieldname"]- 2.2 | 1.1 |
a * b | a per b. | fieldname contiene il valore 2,0 $feature["fieldname"] * 2.2 | 4.4 |
a / b | a diviso b. | fieldname contiene il valore 4,0 $feature["fieldname"] / 1.25 | 3,2 |
abs( a ) | Restituisce il valore assoluto (positivo) di a. | fieldname contiene il valore -1,5 abs($feature["fieldname"]) | 1,5 |
log( a ) | Restituisce il logaritmo naturale (base E) di a. | fieldname contiene il valore 1 log($feature["fieldname"]) | 0 |
sin( a ) | Restituisce il seno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti. | fieldname contiene il valore 1,5707 sin($feature["fieldname"]) | 1 |
cos( a ) | Restituisce il coseno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti. | fieldname contiene il valore 0 cos($feature["fieldname"]) | 1 |
tan( a ) | Restituisce la tangente di a. Si presuppone che l'input sia un angolo espresso in radianti. | fieldname contiene il valore 0 tan($feature["fieldname"]) | 0 |
rq( a ) | Restituisce la radice quadrata di a. | fieldname contiene il valore 9 rq($feature["fieldname"]) | 3 |
min( a, b ) | Restituisce il valore più basso compreso tra a e b. | fieldname contiene il valore 1,5 e il valore -3 min($feature["fieldname"], -3) | -3 |
max( a, b ) | Restituisce il valore più alto tra a e b. | fieldname1 contiene il valore 1,5 e fieldname2 contiene il valore -3 max($feature["fieldname1"], $feature["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($feature["distanza"], 0, 10) limite($feature['Store dist'], 6, distanza) | 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. |
Esempio di moltiplicazione per una condizione che rileva un evento.
$feature["Distance"] * 2 > 50
Esempi della funzione di testo
Le espressioni Rileva Eventi possono processare testo. La seguente tabella mostra un esempio delle operazioni disponibili.
Ulteriori informazioni sulle funzioni di testo disponibili in Arcade
Operatore | Spiegazione | Questa funzione è stata aggiunta a partire da 10.1. | Risultato |
---|---|---|---|
concatenare( <valori>, <separatore>) | Concatena i valori e restituisce una stringa.
| fieldname contiene il valore di GeoAnalytics Concatenare ([$features["fieldname"], "è", "fantastico!"], ' ') | GeoAnalytics è fantastico! |
cercare(<searchText>, <text>, <startPos>) | Cerca una stringa in una stringa. I caratteri jolly non sono supportati.
| fieldname1 contiene il valore di 14NorthStreet e fieldname2 contiene il valore di North find($feature["fieldname2"], $feature["fieldname1"]) | 2 |
inferiore(<valore>) | Compilare una stringa in minuscolo.
| fieldname contiene il valore di GEOANALYTICS inferiore($feature["fieldname"]) | geoanalytics |
Esempio di testo usando find e lower.
find(("north"), lower("146NorthStreet")) == 2
Esempi della funzione di dati
È possibile utilizzare Rileva Eventi da espressioni che usano date. 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 | Questa funzione è stata aggiunta a partire da 10.1. | Risultato |
---|---|---|---|
data( <valore>, <mese>, <giorno>, <ora>, <minuto>) | Analizza il valore o un insieme di valori in una stringa di data.
| fieldname contiene il valore di 1476987783555 Esempio 1: Data($features["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 09 Oct 2017 04:30:43 pm Anno($feature["fieldname"]) Esempio 2: fieldname è un campo stringa con il formato di una stringa ISO 8601 con un valore di 2012-09-27 | Esempio 1: 2017 Esempio 2: 2012 |
Operatori condizionali
Le istruzioni condizionali possono utilizzare i seguenti operatori:
Operatore | Spiegazione | Questa funzione è stata aggiunta a partire da 10.1. | 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 con Rileva Eventi.
Ulteriori informazioni sulle funzioni logihe disponibili in Arcade
Funzione | Spiegazione | Questa funzione è stata aggiunta a partire da 10.1. | Risultato |
---|---|---|---|
iif(<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:
| iif($feature["field1"] > $feature["field2"], $feature["field1"], 0) iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["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($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["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($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0) | Confronta l'uguaglianza tra il conditional val 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. |
Esempi di considerazione tracce
Inoltre, alcuni GeoAnalytics Tools, come Rileva eventi e Calcola Campo, possono utilizzare equazioni che prendono in considerazione le tracce in Arcade.
Funzione | Spiegazione | Questa funzione è stata aggiunta a partire da 10.1. | Risultato | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TrackStartTime() | Calcola il periodo temporale di inizio di un rilevamento in millisecondi da epoca. | Se si usa un rilevamento che inizia il 2 gennaio 2017 TrackStartTime() | 1483315200000 | ||||||||||||
TrackDuration() | Calcola la durata di una traccia in millisecondi dall’inizio fino al passaggio temporale attuale. | Se si usa un rilevamento che inizia il 2 gennaio 2017 e il periodo temporale corrente è il 4 gennaio 2017. TrackDuration() | 172800000 | ||||||||||||
TrackCurrentTime() | Calcola l’ora attuale in una traccia. | Se si usa una feature del 3 gennaio 2017 alle 9:00 TrackCurrentTime() | 1483434000000 | ||||||||||||
TrackIndex | Restituisce l’indice temporale della feature calcolata. | Calcolo di questo valore sulla prima feature di una traccia. TrackIndex | 0 | ||||||||||||
TrackFieldWindow(<fieldName>, <startIndex>, <endIndex>) | Restituisce un array di valori nel campo dato per l'indice temporale specificato. La funzione finestra consente di andare avanti e indietro nel tempo. L'espressione viene valutata su ciascuna feature nella traccia.
| MyField ha ordinato i valori di [10, 20, 30, 40, 50] in maniera sequenziale. L'espressione viene valutata su ciascuna feature nella traccia. I risultati restituiti includono la feature iniziale ma non la feature finale. Esempio 1:TrackFieldWindow("MyField,-1,2) Esempio 2:TrackFieldWindow("MyField,-2,0)[0] Esempio 3:TrackFieldWindow("MyField,0,3)[2] | Esempio 1: se si esegue la valutazione su ciascuna feature, la tabella mostra i risultati seguenti.
Esempio 2: se si esegue la valutazione sull'indice 2 (il valore è 30), restituisce: 10. Esempio 3: se si esegue la valutazione sull'indice 2 (il valore è 30), restituisce: 50. | ||||||||||||
TrackGeometryWindow(<startIndex>, <endIndex>) | Restituisce un array di valori rappresentante la geometria per l'indice temporale specificato. La funzione finestra consente di andare avanti e indietro nel tempo. L'espressione viene valutata su ciascuna feature nella traccia.
| MyField ha ordinato i valori di [10, 20, 30, 40, 50] in maniera sequenziale. La geometria delle feature è [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] L'espressione viene valutata su ciascuna feature nella traccia. I risultati restituiti includono la feature iniziale ma non la feature finale. Esempio 1:TrackGeometryWindow(-1,2) Esempio 2: TrackGeometryWindow(0,1)[0] su un dataset polilinea Esempio 3: TrackGeometryWindow(0,1)[0] su un dataset polilinea Esempio 4: trova il valore X del punto precedente TrackGeometryWindow(-1,0)[0]["x"] | Esempio 1: se si esegue la valutazione su ciascuna feature, la tabella mostra i risultati seguenti.
Esempio 2: le polilinee vengono restituite nel seguente formato: [{"paths":[[[-180,-22.88],[-177.6,-23.6]],[[180,-18.099999999999994],[179.7,-18.4],[179.4,-18.7],[178.9,-18.9],[178.5,-19.3],[178.2,-19.7],[178.4,-20],[178.8,-20.2],[178.9,-21.8],[179,-22.2],[179.4,-22.7],[180,-22.88]],[[-178,-17],[-178.8,-17.3],[-179.2,-17.5],[-179.6,-17.8],[-179.9,-18],[-180,-18.099999999999994]]]}] Esempio 3: i poligono vengono restituiti nel seguente formato: [{"rings":[[[-7882559.1197999995,6376090.883500002],[-7893142.474300001,6042715.216800004],[-8544018.775999999,6045361.0554000065],[-8544018.775999999,6376090.883500002],[-7882559.1197999995,6376090.883500002]]]}] Esempio 4: valutato sull'indice 2 (il valore è 30): 2. | ||||||||||||
TrackWindow(<value1>, <value2>) | Restituisce un array di valori rappresentante la geometria e tutti gli attributi per l'indice temporale specificato. La funzione finestra consente di andare avanti e indietro nel tempo.
| MyField ha ordinato in maniera sequenziale i valori di [10, 20, 30, 40, 50], oltre ai campi objectID, globalID e instant_datetime. La geometria delle feature è [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] L'espressione viene valutata su ciascuna feature nella traccia. I risultati restituiti includono la feature iniziale ma non la feature finale. Esempio 1:TrackWindow(-1,0)[0] Esempio 2:geometry(TrackWindow(-1,0)[0]["x"] | Esempio 1: se si esegue la valutazione su ciascuna feature, la tabella mostra i risultati seguenti.
Esempio 2: valutato sull'indice 2 (il valore è 30): 2. |