Sharing Geoprocessing Tools via the Web
By Benjamin Pross, Christoph Stasch, and Albert Remke, 52°North Initiative for Geospatial Open Source Software GmbH; and Satish Sankaran and Marten Hogeweg, Esri
This article as a PDF.
The 52°North Initiative for Geospatial Open Source Software has developed an open-source extension to ArcGIS for Desktop that enables access to Open Geospatial Consortium, Inc. (OGC), Web Processing Services (WPS) so they can be used in the same manner as native ArcGIS geoprocessing tools.
Geoprocessing tools make it possible to analyze, transform, and combine geographic datasets and generate information that can be visualized in maps and used as an aid to decision-making. ArcGIS offers a wide range of geoprocessing functionality in its toolboxes and extensions. There are many ways ArcGIS users can use geoprocessing tools within the familiar desktop environment. They can download new tools from the Analysis and Geoprocessing Tool Gallery, build their own tools with ModelBuilder, use custom ArcGIS for Server geoprocessing services, and invoke services offered by ArcGIS Online.
Users can now also publish a geoprocessing tool as a WPS. The WPS interface specification is an international standard published by OGC that provides rules for standardizing inputs and outputs and (according to the OGC specification) "defines how a client can request the execution of a process and how the output from the process is handled." It supports the integration and mashup of geoprocessing functionality from arbitrary sources. A processing tool published as a WPS can be used by any client software that implements the WPS interface in line with the OGC WPS specification.
However, while ArcGIS allows geoprocessing tools to be published as a WPS, it does not offer a WPS client interface. Consequently, it is not easy to access external non-ArcGIS geoprocessing tools such as simulation models, rich data interfaces, or processing capabilities from any other legacy software that supports the WPS interface.
WPS Interface Standard Versions
The OGC released the first version of the WPS interface standard (version 1.0.0) in 2007. The goal was to facilitate discovery and access of geoprocessing tools via the web. Since version 2.0 of this standard was published in 2015, implementations of this new version are still rare.
The WPS 1.0.0 interface offers three operations: GetCapabilities, DescribeProcess, and Execute.
- The GetCapabilities operation provides access to general information about a WPS and its processing capabilities.
- The DescribeProcess operation provides detailed information on processing tools such as the input and output data formats.
- The Execute operation can be used to invoke the execution of a geo-processing tool with specified input data and control parameters.
Lengthy computations can be executed in asynchronous mode so that the client can focus on other things while the computation is ongoing. It can query the status from time to time and fetch the results after the computation has been completed. Both the processing functionality and the formats of the input and output data may be of any kind, keeping the WPS highly generic.
In practice, there are numerous WPS implementations based on many different technologies such as the 52°North WPS, pyWPS, or Esri's WPS based on ArcGIS. Most of these implementations focus on the server-side provision of WPS. Many clients are tailored to a specific service counterpart, which limits their reusability. Only a few generic clients are available, such as the WPS client for QGIS or web clients based on OpenLayers. However, the limited support of data formats often causes significant interoperability problems.
Using WPS with ArcGIS
The 52°North Extensible WPS Client for ArcMap was implemented as an open-source extension to ArcGIS that fully integrates into the ArcGIS for Desktop environment. It enables OGC WPS to be accessed and used in the same manner as native ArcGIS geoprocessing tools. This makes it easy to run WPS-based processes and integrate the results of that processing into ArcMap for use with other applications. The diagram in Figure 1 illustrates the architecture of the software.
Figure 1: ArcGIS WPS Client architecture
This example describes how to use the WPS client for executing an external process offered by the United States Geological Survey (USGS) to allow the download of coverage datasets that intersect a given vector feature. The desired parameter (in this case, precipitation) and the time period of interest can be specified.
Use ArcCatalog to add a new WPS by choosing Add WPS Server as a new item (as shown in Figure 2). Add WPS Server is located in the GIS Servers section with other OGC services (such as WFS, WCS, or WMS) that can be added to ArcGIS.
After clicking Add WPS Server, a dialog box very similar to the dialog box for adding a WCS service will appear (as shown in Figure 3). The installation comes with a predefined list of WPS URLs. Server URLs can also be typed into the text field and stored for later reuse. The currently supported default is WPS version 1.0.0.
Figure 2: Add WPS Server item in ArcCatalog window
Figure 3: Entering a WPS URL
After connecting to a WPS server, the processes offered will be listed in the center-left area of the client window (as shown in Figure 4). On the right, you will find additional information about the currently selected process.
After selecting one or more processes, click OK. These processes will be turned into geoprocessing tools (process tools) and will be added to the user's toolbox.
All processing tools made available by an individual WPS are grouped in a toolset with the WPS URL as its name. (Figure 5 shows a selection of WPS processing tools.) The overall WPS toolbox containing all WPS toolsets is added to the ArcToolbox for convenience.
Figure 4: Displaying metadata describing the WPS and its processing capabilities
Figure 5: WPS as a toolbox
Double-clicking a processing tool invokes the standard ArcGIS tool dialog box (as shown in Figure 6). This is where you can specify the inputs and outputs of the WPS process. For complex outputs, a file path is generated automatically.
The processing tools can be executed directly, depending on the format of the inputs and outputs. Figure 7 shows a process tool with completed input and output fields.
Figure 6: Initial geoprocessing tool dialog box for a remote WPS process
Figure 7: Completed geoprocessing tool dialog box
For complex inputs that are not sent by reference, ModelBuilder can be used to connect processing tools to custom import and export tools that transform ArcGIS layers into a format that the WPS can handle, and vice versa. Some of these tools are shipped with the client, while others can be downloaded or created by the user. This means that the client can be easily extended to support new formats. Figure 8 shows a processing tool connected to an import and export tool in ModelBuilder. (Figure 9 shows the results of model execution.)
Figure 8: Using ModelBuilder to work with WPS-based processing tools
Figure 9: Precipitation in Alabama from 1/1/1950 to 1/20/1950 shown as a time-enabled NetCDF dataset
The Extensible WPS Client for ArcMap will be continually improved by the 52°North geoprocessing community. The next minor release will provide some extended logging capabilities. The next major step is to add support for the WPS 2.0 interface and for WPS profiles. In addition to improvements to the client itself, an increase in the number of specialized import and export tools is planned as well as improvements in methods for finding new tools.
For more information, contact Benjamin Pross, software engineer at 52°North, or Satish Sankaran, product manager at Esri.