An overview of processes

Processes and process chains

One of the most important functions of ArcGIS Image Server is its ability to process raster datasets on the fly. Any of the processing applied to the raster datasets occurs when the data is requested via the server and does not alter the original data. These image service processes can be applied at three levels—at the image service level, on raster datasets, or on the individual rasters within the raster datasets.

To understand these levels, you need to know about image services. An image service is a collection of spatially grouped raster datasets. A single raster dataset and its relevant information are stored in a raster process definition file. Individual rasters that belong to the same raster dataset are usually placed in the raster process definition file. For example, in a service containing QuickBird data, each raster process definition file consists of one raster dataset that contains rasters corresponding to the panchromatic raster, the multispectral rasters, and a digital elevation model (DEM) raster to be used in orthorectification (if necessary). Processes can be applied on individual rasters or the whole raster dataset. These raster datasets are then mosaicked together to form the final image requested by an image server client. But before it is transmitted to the client, additional service processes can be applied.

The three levels on which ArcGIS Image Server applies the processes are explained below:

Image service level

Processing performed on the mosaicked image that is sent to the client is known as service-level processing. Only processes that change radiometry can be added at this level.

Raster dataset level

Some processes can be added to the entire raster dataset. For example, a Stretching process can be added to enhance the appearance of a raster dataset. Both radiometric and geometric processes can be applied at this level.

Individual rasters (like the DEM raster in a QuickBird raster dataset) can be specifically set to ignore processes added at the raster dataset level.

Raster level

The raster level contains processes applied to the individual rasters in a raster dataset. Processes that change geometry are usually performed at this level.

The various processes provided by ArcGIS Image Server can be combined to form a process chain. These process chains are written in the image service definition (.ISDef) file or the raster process definition (.RPDef) file, depending at which level they are applied. Based on the type of processing performed on an image, ArcGIS Image Server processes are divided into three classes:

Radiometric processesChange pixel values but not the number of pixels or where they are placed; for example, Convolution Filter or Stretching.
Geometric processes—Place pixels in their correct positions on the ground; for example, Warp.
Samplers—Resample pixels; for example, Sampler2D or Ortho.

Custom processes

ArcGIS Image Server allows you to implement custom processes. Two separate components are essential for implementing a custom process. These are the process dynamic-link library (DLL) which performs the main work of processing the pixels, and the process user interface, which provides an interface to enter the process parameters.

Custom process DLL

A custom process DLL is a simple library implemented in C++, which defines the functions from the custom process interface file. The DLL is stored in the same folder as the other ArcGIS Image Server processes to be used by those authoring image services.

Learn more about creating the custom process DLL

Custom process user interface

The custom process user interface component is necessary to use the process. It can be a simple Windows form displaying the parameters, along with an XML Attribute Definition (.XADef) file that ArcGIS Image Server uses to define which user interface DLL to load and for which process.  For developers familiar with Image Server XMLs, it is just a matter of generating a .XADef and XML Form Definition (XFDef) file and placing them in the right location.

Learn more about creating the custom process user interface