ArcGIS Enterprise — Geoprocessing Services: Part 1 (English)

Hello dear GIS fellow, I have been working on GP Services for a long time since I had started working. Welcome to the first part of Geoprocessing Service article series :)

This topic is not one of the introduction topics in GIS. Recommended to ones who has worked on ArcGIS Enterprise platform as publishing web services, registered folders, used tools in ArcMap etc. However, I’ll try to cover many things and explain details. Do not hesitate to contact with me on LinkedIN or ucok.umut@gmail.com

Honestly, I know topic is deep but I don’t know how part is going to be. Dealing with the topic superficially is not my type, like many medium authors :) So that I’ll dive into every dirty detail.

Part 1 is only for introduction. Do not your ArcMap, please :) We’ll only cover ModelBuilder and Python Script for this part. So that, just take your coffee.

If I’ll be able to continue on series, we’ll take cover advanced scenarios including SDE, geometric network and web tools for these data structures. We’ll create Export to CAD, Importing excel data into data, generate HTML reports with pandas etc. with Web AppBuilder.

Authoring Geoprocessing services is more appropriate than SOE / SOI for many scenarios that do not need custom background services for such as web integration. Otherwise, we’d need to use ArcObjects in Java or .NET. However, this SOE / SOI will not be covered here.

ESRI also powered Jupyter Notebook Server which is part of GIS Server types to use Python in more areas. You can use ArcGIS Python API to manage your portal. Also you can create and run your background async services as long as Jupyter kernel stands.

Let’s start !

Geoprocessing Services on ArcGIS Enterprise (Server) are very handy, as you know. We can package our tool to a colleague, publish as web services without a developer. We’ll be coding of course, but it won’t be hard.

There are 3 ways we can create geoprocessing services :

  1. Python Script
  2. Python Toolbox
  3. Model Builder

We’ll prepare an environment for raster manipulation with Raster Catalog. It can be created in ArcMap but not in ArcGIS Pro which doesn’t support catalog, refers Mosaic Dataset instead.

Storage location may be SDE or File Geodatabase (FGDB). You may encounter some issues such as copying fgdb into arcgis server directories, pointing that path in tool etc. To deal with them, you need to register your folder with ArcGIS Server. For more details of registering folder with ArcGIS Server

Registering folder is important. Folder includes data should be somewhere that ArcGIS Server service has read / write permissions… This parts may be difficult for junior fellows. Do not panic ! We will not cover these part for a while, you can move on using FGDB.

You can check it out raster catalog cloning github repo linked below.

You may see raster catalog for the first time. I’ll not dive details. But it is similar with mosaic dataset. Raster catalog has to be Managed for SDE environment; it can be “Managed” or “Unmanaged” in File geodatabase also. Mosaic is faster than Catalog and provides overview, on-the-fly processing etc.

Managed provides storing data as physically in database, unmanage only points the datasource path. However, storing images in database cause performance issues generally.

Let’s add a field as “AddedDate” as date type to write current date. You can use “Add Field” tool.

Workflow:

  1. User uploads raster. So input should be one of the File / Raster Dataset / Raster Layer types.
  2. Uploaded raster moves into a folder that ArcGIS Server registered. Be aware of ArcGIS Server service has permissions on that folder. This step can be pass if you store raster in database.
  3. We’ll use Raster to Geodatabase. Then update date field using Field Calculator.

In Model Builder: