Harnessing the Power of Imagery: A Programmatic Approach

In a previous blog entry, we provided a bird’s eye view upon the large ecosystem of developer-centric tools within ArcGIS for working with Imagery. Building upon that framework, we will further the notion of Imagery as an important medium for Developers.  But, where do we start?   What form would a potential workflow take? With so many different ways to consume and analyze imagery-based data is one environment better than the other (Desktop, Web, or Enterprise)? How do we get from A to Z?  Let’s work through it.

The wider technology community has been moving toward a cloud-native holistic web approach. Within this model client applications connect to data and leverage cloud platforms for data processing, creation, and presentation. We want to essentially decouple the code, compute, storage, and analytics.  Here, I outline a potential Esri framework for creating analysis pipelines represented through a series of environments and tools at the developers disposal.

Creating a Raster Collection from a Stac Resource.

Starting the Process

Imagine an environment where you open a web browser and have the entire ArcGIS Imagery stack at your disposal.  You could visualize imagery from a comprehensive catalog such as the living atlas or a 3rd party API driven one through stac (spatio-temporal asset catalog).  The focus is adaptable, ranging from analyzing global scale data with Landsat or regionally utilizing NAIP or Sentinel.  You also might determine that a need to search and submit a tasking order to a data provider is needed.  This can all be achieved directly within ArcGIS.  If we rewind a bit, workflows of this nature traditionally follow a pattern:  Search –> Analyze –> Create –> Visualize.  Let’s begin by searching for data from a variety of locations.

Filtering Services Based Imagery Data

In a traditional desktop or web client, tools can be used to search or discover data that adheres to specific requirements. Think about only viewing images with less than 10% cloud cover, from a specific sensor platform, that were collected on a specific date in time.  Accessing data with a code-first approach allows us to define a query that ensures the returned data meets these conditions.  This can also be extended to the confines of an area of interest. All with a few lines of code!

Analyze and Create

Once you have accessed this data via a services first approach, dozens of raster functions can be applied in-memory to quickly understand band information, carry out band math, or run vegetation indices. This I/O can all be done on-the-fly without installing software based upon your need and use case.  Not only can you quickly study and visualize imagery-based data, but you can also pair that with compute resources in Esri’s cloud.  This allows you to run dozens of processes against that imagery data while leveraging Raster Analytics. Some compelling methods available via this path are:


An ArcGIS Maps SDK for JavaScript web application that requests an Image Service and adds it to a Webmap.

Both the ArcGIS API for Python and ArcPy can be utilized within ArcGIS Notebooks or through standalone code as well.  ArcGIS Notebooks provide a Jupyter notebook experience across ArcGIS.  In addition, many tools are exposed through the ArcGIS REST APIs providing a powerful experience for working with Image Services.  The geospatial developer can leverage these environments in creative ways to create analytical products through unique combinations of tools. This really provides interactive environments for testing and quickly analyzing data in a connected environment through ArcGIS Pro, ArcGIS Online, or ArcGIS Enterprise.  What makes this approach unique is that it can be performed at the Desktop client or within a browser!

In conclusion:

We oftentimes view developer technology as only important on the automation, extensibility, and custom solution creation side of GIS.  However, creativity and data exploration are important from an Imagery standpoint.  Esri supports developers by showing the relevance of what they do through an imagery lens enabling them to create output products in an environment familiar to them.  In the next blog post in this series, we will discuss avenues for publishing data and sharing it into the ArcGIS System.


About the authors

Yuri Potawsky

Product Manager for Imagery with a focus on Deep Learning, Python, and Analytics.


Alexandra is a Product Marketing Manager on the Operational Intelligence team at Esri. She is currently working on reshaping Esri's motion imagery story with the ArcGIS Video Server launch in ArcGIS Excalibur. Before transitioning to product marketing, Alexandra specialized in CRM, content, and email marketing strategy for top tech companies.

Notify of
Inline Feedbacks
View all comments

Next Article

Virtualizing 3D training models with NVIDIA AI Enterprise

Read this article