ArcGIS Image Server processing chain

ArcGIS Image Server not only serves existing image data to client applications, but is capable of processing the underlying raster data prior to transmission to the client application. This is a key feature of ArcGIS Image Server. It lets you create multiple image products on the fly from a single set of rasters.

The image server processing chain is defined within the image service definition. You need to understand how the image server processing chain works to enable the correct design of new raster types, raster formats, processes, or GeoTransformers. Much of the development by third parties on ArcGIS Image Server will involve creating the image service definitions and raster process definitions that define the process chain.

For more information, see "About the ArcGIS Image Server process chain" in the ArcGIS Image Server Help.

The image server processing chain is formed from two parts:

Service process—The process applied to the result of the mosaicking process prior to optional compression and transmission to the client application. This is defined as a process chain within the .ISDef Extensible Markup Language (XML) file.
Raster process—The processing applied to the rasters prior to mosaicking. It consists of two components, the raster process that is applied specifically to a single raster within the raster dataset and the raster group process through which all rasters are passed.

The raster process is defined within the raster process definition file (.RPDef). A raster process definition file consists of two parts:

Raster group—Defines the properties of the raster dataset, including the spatial reference system of the raster, number of bands, pixel type, and pixel size ranges. These properties are viewed within the Service Editor using the Raster Properties dialog box on the Info, General, Metadata, and Processes tabs. These processes are applied to all pixels in the raster dataset.
Rasters—Defines a list of individual rasters that make up a raster dataset. Sometimes, a raster dataset may consist of a single raster, such as one TIFF file, but in many cases, there may be multiple rasters such as overview rasters or individual bands stored in different locations. For each raster, a set of general properties is defined, such as the source of the raster, a description, and a NoData value. Format information defines specifics about how the pixels are stored. Process information defines the process chain applied to the specified raster. Each raster has a minimum and maximum pixel range that defines the pixel sizes at which the pixels should be processed as well as an enabled flag that indicates if the raster is enabled. The enabled flag is required because it is possible for a raster dataset to contain rasters that are not directly used.

When a client application requests imagery for a specific area, the service provider creates a database query to identify the raster datasets that should be included in the processing (based on the footprint and requested pixel size), and a selection set of these rasters is created. The raster datasets are ordered based on the defined mosaic method. The pixel sizes defined for each raster, within each raster dataset, are checked to determine which rasters should be processed. The result of this process is a list of individual rasters, each with a process chain and a modified footprint. The extents of each individual raster that will be visible to the client are determined, then these extents are transformed to pixel coordinates to determine the range of row and column values required from the source raster.

The pixels required for processing are extracted from the raster source and passed through the raster and raster group process chain to create individual rasters covering the area of interest in the specified client coordinate system and with the client-defined pixel size. Each of the rasters is mosaicked together based on the mosaicking method to form the output image.

If a service process chain is defined the image is passed through the service process chain, which may only modify the pixel values and not change the georeferencing of the imagery. If the image is to be compressed for transmission, the resulting image is passed through the appropriate codec prior to transmission to the client application.

The process chain consists of three different types of processes:

Radiometric processes—Change only the radiometry of the image. They include image algebra, pan-sharpening, and convolution filters. They can be applied at any stage in the process chain. A radiometric process takes a raster as input and outputs a raster of a similar size, but optionally with a different pixel type, number of bands or bit depth.
Geotransforms—Affect the geometry and not the radiometry of an image. They are used to transform imagery from one coordinate system to another. They may not exist as part of a service process but may exist as part of a raster group or raster process.
Samplers—Specific subclasses of processes that are used to sample imagery from one coordinate system to another. Two samplers exist within ArcGIS Image Server: the 2D sampler and ortho sampler. Unless a 2D sampler is specifically defined at a specific location in the process chain, it is added to the end of the raster process prior to mosaicking.

When a raster process chain is to be run, the process is split into the different types. This ensures that the radiometric processes are handled separately from the geotransforms.

The geotransforms defined in the raster process chain are concatenated with an additional GeoTransformer that performs projections and is set up to transform from the client coordinate system to the coordinate system defined for the raster. In this manner, the concatenated set of geotransforms can be used to apply a transformation from the client coordinate system to the row and column pixel coordinate system of the raster source. The concatenation of the GeoTransformers ensures that only a single sampling of the imagery occurs between the original pixel coordinates and the pixel of the client request. When serving imagery, a GeoTransformer is only used to perform the transformation in the direction of client coordinates to raster coordinates. As this process is applied many times, each GeoTransformer should be optimized to perform this as efficiently as possible. A GeoTransformer can be designed to handle 2D or 3D coordinates. A special set of GeoTransformers are referred to as sensor definitions when they describe the transformation from ground space to pixel space for an imaging sensor.

If a process chain does not contain a specific sampler process the sampler process, is added to the end of the process chain prior to the sampling. The sampler process performs the sampling of the imagery. Both samplers currently support nearest neighbor and bilinear sampling. In certain cases, it may be advantageous to add extra samplers to a process chain, as the sampler generally reduces the data volume to process; but the sampling process does affect the radiometry slightly, so it is advantageous not to include a sample, for example, prior to a convolution filter.

The 2D sampler passes 2D coordinates from the client coordinate system through the geotransforms to determine row and column coordinates. This transform is not done for each pixel; instead, an analysis is performed to determine the density of a grid of regularly spaced points required to accurately transform pixels from one system to another, such that linear interpolation between the grid points reaches a specified accuracy, which by default is set to 1/2 pixel in the output coordinate system.

The ortho sampler is similar to the 2D sampler but can optionally take a terrain model as input and uses a more detailed analysis to determine the spacing of the regularly spaced points. For each 2D coordinate, a height value is extracted from the associated terrain model and the resulting 3D coordinates are passed through the geotransform to obtain the pixel coordinates. In this manner, ArcGIS Image Server performs orthorectification. The extraction of height values from a terrain model requires ArcGIS Image Server to be licensed with the Ortho extension.