Arcade ist eine Ausdruckssprache, die für die Verwendung in ArcGIS-Software geschrieben wurde, über die mathematische Berechnungen durchgeführt, Texte bearbeitet und logische Anweisungen ausgewertet werden können. Arcade-Ausdrücke sind nützlich, wenn neue Variablen berechnet werden sollen, ohne das Schema des Datasets aktualisieren zu müssen. Sie bieten auch den Vorteil, dynamisch und datenabhängig zu sein, was bedeutet, dass das Ergebnis eines Ausdrucks aktualisiert wird, wenn sich die Daten, die im Ausdruck verwendet werden, ändern.
Arcade kann verwendet werden, um Balkendiagramme, Kreisdiagramme, Liniendiagramme, Histogramme und Scatterplots zu konfigurieren. Um für eine Diagrammvariable einen Ausdruck, der Arcade unterstützt, zu erstellen oder zu bearbeiten, klicken Sie auf die Schaltfläche Arcade-Ausdruck , um das Fenster "Ausdruck-Generator" zu öffnen.
Die folgenden Beispiele sind potenzielle Anwendungsfälle für das Konfigurieren von Diagrammen mit Arcade.
Textbeispiele
Arcade stellt viele Funktionen bereit, mit denen Textwerte zum Erstellen und Konfigurieren von Diagrammen verarbeitet werden können. Zum Beispiel können Sie ein Diagramm lesbarer gestalten, indem Sie Zeichenfolgewerte, die nur aus Großbuchstaben bestehen (CALIFORNIA), so formatieren, dass nur der erste Buchstabe großgeschrieben wird (California). Dazu kann die Funktion Proper in Arcade verwendet werden:
# Format "CALIFORNIA" as "California"
Proper($feature.STATE_NAME);
Um mehrere Zeichenfolgefelder zu einer einzelnen Textausgabe zu verketten, verwenden Sie die Funktion Concatenate. Im folgenden Beispiel werden der Ortsname und der Name des Bundesstaates jedes Features zu einer Zeichenfolge verbunden:
# Combine CITY_NAME (eg "LOS_ANGELES") and STATE_NAME (eg "CALIFORNIA") into "LOS_ANGELES, CALIFORNIA"
Concatenate($feature.CITY_NAME, ", ", $feature.STATE_NAME);
Im Gegensatz dazu kann es Szenarien geben, in denen es hilfreich wäre, eine Zeichenfolge zu analysieren, um bestimmte Teile, die im Text enthalten sind, zu finden. Zum Beispiel können Sie die Funktion Split verwenden, um den Ortsnamen innerhalb einer Adresse (123 Main Street, Redlands, CA) zu identifizieren. Im folgenden Beispiel werden Adressen an Kommas geteilt und die Array-Indizierung verwendet, um den Ortsnamen zu identifizieren:
# Split string on "," and return the second element (ie, the city name)
Split($feature.FULL_ADDRESS, ",")[1];
Sie können auch Kontrollstrukturen in Arcade verwenden, um Textwerte basierend auf logischen Bedingungen neu zu kategorisieren. Im folgenden Beispiel wird die Funktion Find verwendet, um Sturmereignisse im Zusammenhang mit einem Tornado in der Kategorie "Tornado" und alle anderen Ereignisse in der Kategorie "Other" zu gruppieren:
if (Find($feature.EVENT_TYPE, "TORNADO") >= 0) {
return "Tornado";
} else {
return "Other";
}
Datumsbeispiele
Arcade stellt viele Funktionen bereit, mit denen datumsbezogene Felder verarbeitet werden können. Ein Dataset kann zum Beispiel mehrere Felder mit Datumsinformationen enthalten, die jedoch kombiniert werden müssen, um ein Datumsfeld zu erstellen, das in zeitbezogenen Diagrammen verwendet werden kann. Die Funktion Date verwendet die relevanten Datumskomponenten als Eingaben und gibt einen Datumswert aus:
Date($feature.YEAR, $feature.MONTH, $feature.DAY);
Um anhand von zwei Datumsangaben eine Dauer zu berechnen, verwenden Sie die Funktion DateDiff. Als Beispiel sei angenommen, dass das Dataset einer Serviceanforderung ein Datumsfeld für die Angabe des Zeitpunktes, an dem die Anforderung geöffnet wurde, und ein weiteres Datumsfeld für die Angabe des Zeitpunktes, an dem die Anforderung geschlossen wurde, enthält. Im folgenden Beispiel wird die Anzahl der Tage berechnet, die zwischen diesen zwei Datumswerten verstrichen sind:
DateDiff($feature.OPEN_DATE, $feature.CLOSE_DATE, "DAYS");
Arcade stellt auch Funktionen zum Analysieren der Details eines Datumsfeldes bereit. Um zum Beispiel die Muster nach Wochentag für ein Datumsfeld zu verstehen, verwenden Sie die Funktion ISOWeekday, um den Wochentag für ein Datum zurückzugeben:
ISOWeekday($feature.DATE);
Numerische Beispiele
Arcade stellt Funktionen und Operatoren für die Verarbeitung numerischer Werte bereit, die zum Erstellen eines Diagramms verwendet werden können. Zum Beispiel können Sie die Funktion AreaGeodetic verwenden, um eine Population nach der Fläche des Features zu normalisieren. Im folgenden Beispiel wird die Funktion AreaGeodetic zusammen mit dem Divisionsoperator verwendet:
$feature.POPULATION / AreaGeodetic($feature, 'square-miles')
Arcade stellt auch Funktionen für allgemeine mathematische Operationen bereit. Zum Beispiel können Sie die Funktion Average verwenden, um den Durchschnitt mehrerer Werte zu ermittelt:
Average([$feature.SCORE1, $feature.SCORE2, $feature.SCORE3])
In bestimmten Fällen wäre es sicher auch nützlich, numerische Daten zu kategorisieren. Zum Beispiel können Sie bei einem Dataset mit den Kenndaten von Automobilen die numerischen Werte für Meilen pro Gallone in bestimmte Kategorien, wie zum Beispiel "Good", "Okay" und "Poor", konvertieren:
if ($feature.MILES_PER_GALLON >= 30) {
return "Good"
} else if ($feature.MILES_PER_GALLON >= 20) {
return "Okay"
} else {
return "Poor"
}