NWFWMD-IT / Hydrologic-Monitoring-Project

0 stars 0 forks source link

Research scope of Arcade expressions #191

Open mmannion opened 3 months ago

mmannion commented 3 months ago

Business Need

We have a general need to access summary information for Locations that is derived from data in related tables when working in web maps. For example:

Specifically, we'd like to access this information as if it were an attribute directly on the Location table to facilitate reporting. To continue the example:

It would be easiest if these properties actually were, or appeared to be, attributes of the Location table, itself.

Ideally, this information would be:

  1. Derived on-the-fly
  2. Implemented once and reused by multiple maps/apps
  3. Using ArcGIS technology

Regarding item 1, we'd like something equivalent to a computed column in a database view (e.g. MAX(LocationVisit.VisitDate) AS LastVisitDate). Alternatively, we could use a solution that reliably maintains a physical attribute, such as a database trigger.

With respect to items 2 and 3, we want to implement a solution once, then reuse it in multiple maps/apps. Preferably, the summary information would appear as a "normal" Location attribute through a feature service. Again, we could do this with a database view or trigger, but publishing the former can be tricky and the latter requires more specialized knowledge than an ArcGIS-level solution (note that we are doing both successfully with the Land Management database, but are re-looking at alternatives here).

The best solution would be one that uses an ArcGIS-level solution (e.g. join, Arcade expression) at the feature service level.

To Research

From initial discussions, we suspect that Arcade expressions may be the solution. We are fairly certain that we can use Arcade at the web app (e.g. dashboard) level to access related data and return the summary values we need. But, working at the app level would require every developer to reimplement the same solution.

It may be possible to use Arcade at the web map level to present the summary information as normal attributes. That would allow reuse by multiple apps, but would still require reimpelmenting if we needed multiple web maps.

If possible, we'd like to push this down the stack to at least the feature service level. That way, all upstream web maps and web apps could access the summary attributes without having to implement any special logic of their own.

Therefore, as a proof-of-concept, research if/how to add two attributes to the Location table:

using Arcade or another solution, in order of preference, at the:

To Do

mmannion commented 2 months ago

Per @SarahNWF research, Arcade may not be able to reference related nonspatial tables. Will test using another feature class in hydro database (need to create test feature class + relationship class to Location).

Confirmed we can use Arcade to relate to nonspatial tables.

mmannion commented 1 month ago

We can use Arcade to show last visit date in popup, but not symbolize on it.

Creating view as proof-of-concept to see if we can symbolize on last visit from view, but continue to drive the rest of the dashboard from the "real" source data.

SarahNWF commented 2 weeks ago

Need to update ArcGIS Enterprise to 11.3 to move forward with publishing view.

Image