Response to a Common Problem
Arcade is a response to a common problem. How do you display data when there is no column in the schema containing that data? Up until now, if the map layer you are working with did not have exactly the right attribute data you need, you had two choices:
- Alter the underlying data, or
- Bring in the services of an application developer
ArcGIS Arcade has a simple scripting syntax that enables you to manipulate your existing data to generate new information based on it. While this sort of functionality has always been available in certain Esri products – most notably Desktop – the aim behind Arcade is to make it available everywhere in the ArcGIS platform, and for it to work identically in all environments. You can almost think of Arcade as “Excel for ArcGIS”. In much the same way as Excel lets you write formula to work with spreadsheet data, Arcade lets you do the same with map data.
The situations in which you can use the Arcade expression language are known as profiles. Quite simply, a profile is a context in which an Arcade expression can be evaluated and understood. Currently there are five such profiles: visualization, labeling, pop-up, field calculate, and aliases.
- The visualization profile lets you take the data you already have and use it in expressions to determine how to render that data.
- The labeling profile lets you specify which label a particular feature should show, and how that label should be formatted.
- The pop-up profile lets you specify content for a popup specific to a particular feature.
- The field calculate profile performs field attribute calculation.
- The alias profile lets you access numeric data and manipulate it to return a string.
Visualization Profile Example
Let’s show what is probably the most common use case for Arcade first. The map in the screenshot below shows the solar energy potential for various buildings in Bristol, England. The Arcade expression used to create this information is shown in the inset. It just examines the value of the field which corresponds to the photovoltaic generation potential in Kilowatt Hours per year and, based upon it, returns either Low, Average or High which is used to render the building footprints accordingly. Note that Low, Average, or High are not values available in an existing attribute field in the source map. They are being dynamically evaluated at runtime. You could extend this example to render areas of the city based on average solar potential in each area. You wouldn’t need to add this information to the attribute data, you could just use Arcade to evaluate it on the fly based on data you already have.
Arcade is Multi-Platform
The power of Arcade comes from the fact that it is multi –platform, with the ability to run everywhere on nearly every device powered by a rich set of apps. For that to work properly, each of these apps needs to speak the same language, and that’s the goal behind Arcade.
Anything that Arcade can do you can do in ArcGIS Pro, or write custom code for using one of the APIs, runtime SDKs, or Python scripting language. But the end goal is to have Arcade as a common expression language that you can use in all ArcGIS environments. The screenshot below depicts a simple Arcade expression written in ArcGIS Pro using the labeling profile.
ArcGIS Arcade Classes