An overview of raster formats

In ArcGIS Image Server a raster format defines how pixels are read from a media into the service provider for processing and distribution. Although ArcGIS Image Server reads a number of common raster formats directly, there are some formats that can not be directly accessed; therefore, it may be necessary to add additional raster formats.

Each time a user pans or changes their view, a new request for imagery is made resulting in the following actions:

The request is sent to the service provider
The service provider queries the image service to identify which raster datasets are required to cover the request
The rasters are analysed to determine what pixels need to be read from the different raster sources
The specified raster source is opened and the required pixels are read
The pixels are processed according to the defined process chain
The imagery is returned to the client application

ArcGIS Image Server needs to quickly open a raster source and extract the required pixels. During this process, the files are briefly opened for read access. Some caching is also performed internally to reduce some requests, but in the context of the raster format development this can be ignored. All the details for the raster including the details of the format, storage location, how the raster is georeferenced, pixel type, metadata, attributes and so on, are extracted as part of the Add Raster process and stored in the Raster Process Definition (RPDef) associated with each rasters. When the Service Definition is compiled the content of the RPDef is serialized and structured for efficient data access. When the server needs to access a specific part of an image the serialized data structure is passed to the associated format read to open and extract only the required pixels. This methodology enables the raster reading functions to be optimized to access only the required pixels and not to read additional header and georeferencing information.

The raster formats that ArcGIS Image Server currently supports are listed in ArcGIS Image Server supported raster formats. The raster format used to access a raster is defined by the node \raster\formatname within the raster process definition (.RPDef).

Much effort has been put into creating the supported raster formats to be as efficient and as fast as possible. Although a number of formats are supported and can be used directly by the ArcGIS Image Server, the formats that are optimal are those that are simplest in structure and for which a small section of the raster can be quickly read. Formats, such as TIFF or RAW, are fastest to read the most efficient. In the RAW format, pixels are stored is two dimensional simple array; therefore, obtaining the location of a specified set of pixels can be determined quickly and a direct simple read function can be used to extract the pixels. A TIFF file can also order the pixels in tiles, so that a rectangular block of pixels can be quickly extracted without unnecessary disk reads. The tiles in a TIFF file can also be compressed, for example, using JPEG compression that not only reduces the size of the data storage but also the bytes that need to be transferred from the disk to the CPU when reading part of an image. When setting up an image service it is strongly advised to ensure that the speed for access to the raster source is as fast as possible and that slow network connections or disk speeds do not hamper the performance. When the throughput of the pixels to the CPU is limited, it is advisable to use compressed imagery. The problem with compressed imagery is that it is often lossy, resulting in a decrease in image quality and the processing that can be performed on the image. Additionally, the decompression of the compressed pixels, which is required by the service provider, puts additional load on the service provider.

Special optimized raster formats have been created for both TIFF and RAW files. Many formats, such as those used by SRTM or DOQQs, are actually RAW files with specialized headers, and the optimized RAW raster format readers are used to read the pixels. A raster type therefore may utilize a set of functions to extract properties and metadata from the images during the adding process and a totally different set of functions for reading the pixels. Those used for reading the properties need not be as optimized as those for reading the pixels. For images that are internally just a RAW set of pixels, it is advantageous to use the RAW format reader.

For some other files formats, the GDAL library is used. For more information on GDAL visit http://www.gdal.org. Most formats that GDAL can read can be directly read by ArcGIS Image Server, although the read speed is not as fast as the optimized TIFF and RAW format readers. Formats that utilize the AORaster format reader access the imagery. All other formats supported by ArcGIS are accessed using Leica RDO. The use of RDO adds an additional layer of abstraction to ArcGIS Image Server, which can reduce the access performance.