On-the-Fly Processing and Dynamic Raster Mosaicking
Mosaic datasets resolve many traditional raster management issues
By Colin Childs, Esri Education Services
|Sources, mosaic methods, and functions are used when creating a mosaic dataset. On-the-fly processing generates mosaicked images on demand.|
This article as a PDF .
ArcGIS 10 introduces a powerful and exciting new geodatabase data model for managing raster data that reduces processing time; maintains information from overlapping imagery; and easily handles large, disparate datasets.
The mosaic dataset allows you to catalog collections of raster and image data as well as define and refine the metadata and processing applied to this data. These collections can range in size from a few rasters to collections that are large both in terms of total file size and in the number of raster datasets participating in the mosaic. Mosaic datasets can be directly accessed by users of ArcGIS Desktop or served as an image service to many users. Mosaic datasets are accessed as dynamically mosaicked images that can be controlled and refined by the end user, making all information content in the imagery accessible.
The mosaic dataset references the original pixels and stores detailed properties, metadata, and processing information about the imagery and references the original pixels. It can be stored in any geodatabase (file or ArcSDE) and is part of core ArcGIS 10 software. Although mosaic datasets can be accessed and viewed in ArcGIS with any license level, an ArcEditor or ArcInfo license is required to create or edit them. Serving mosaic datasets with ArcGIS Server requires the Image extension license.
Creating and managing a mosaic dataset follows a simple workflow that uses geoprocessing tools for creation and management and ArcMap for interactive editing and display. In addition, geoprocessing models and Python may be used to automate and manage mosaic datasets.
|Referenced mosaic datasets can generate different sets of products, each with specific mosaicking methods and mosaic dataset functions, from the same source.|
Raster data is added directly to a mosaic dataset, and the properties are stored in the geodatabase. By specifying a raster type, data can be directly incorporated from sensors or files that include detailed properties such as spatial reference metadata, acquisition dates, and sensor type as well as defined optional details for additional processing such as orthorectification. Note that raster datasets in a mosaic dataset can remain in their native format on disk or may be loaded into the geodatabase (if required).
|Function||On-the-fly, nonpermanent processing applied to one or more rasters as they are accessed.|
|Mosaic/Mosaicked image||An image composed of multiple images fused together. A mosaic can be a static product, such as a map cache created from a single raster dataset, or a dynamic image created using a mosaic dataset.|
|Mosaic dataset||A collection of raster datasets (images) stored as a catalog and viewed as a mosaicked image that is dynamic. The properties of the original imagery are maintained, and overlapping imagery can be ordered as required.|
|Mosaic layer||A layer that references a mosaic dataset. It can be viewed in ArcMap as a group layer that consists of boundary, footprint, and image layers. It can also be used by geoprocessing tools to access pixel data.|
|Mosaic method||A rule for ordering overlapping rasters when viewing the mosaicked image so that the optimum image is displayed on top.|
|Overviews||Reduced-resolution datasets generated to improve the speed at which the mosaic is displayed.|
|Pyramid||A set of reduced-resolution rasters associated with a raster dataset that enables faster display of the raster at smaller scales.|
|Raster catalog||A collection of raster datasets defined in a table. Each record in the table represents an individual raster dataset in the catalog. A managed raster catalog can be used to store imagery directly in a database.|
|Raster dataset||Any valid raster format organized into one or more bands. Each band consists of a matrix or array of equally spaced cells (pixels) arranged in rows and columns. Each pixel in the raster dataset has a value. Raster datasets have associated properties, such as spatial reference, as well as metadata.|
|Raster footprint||Detailed extent of a raster dataset. Imagery outside the footprint is clipped from the viewed image.|
|Raster layer||A layer that references a raster dataset and may define additional processing or functions to be applied to the image.|
|Raster type||Identifies how to import detailed mosaic dataset properties and metadata, such as georeferencing, acquisition date, and sensor type, along with a raster format.|
A brief glossary of mosaic dataset terms
Mosaic datasets represent a data model in the geodatabase. In this model, participating rasters may be accessed either as a dynamic mosaic composed of images processed on the fly or as a catalog with tables containing geometry and metadata. This provides multiple options for organizing/managing raster data. Functions can be applied to each input raster added to the mosaicked dataset to define how it is processed when creating the mosaicked image on demand. A mosaic dataset may also have associated mosaic methods that define the default ordering of the imagery.
In addition, creating referenced mosaic datasets allows the generation of different sets of products, each with specific mosaicking methods and mosaic dataset functions, from the same source. A referenced mosaic dataset behaves like a regular mosaic dataset, but the records that define processing of individual rasters or metadata cannot be edited because they are referenced from the source mosaic dataset. For example, you could create a mosaic dataset to manage all your digital elevation model (DEM) data, then create a referenced mosaic dataset to produce a hillshade and another reference mosaic to define slope. Updating the elevation data automatically updates the hillshade and slope. Other patterns for managing very large image collections can involve creating a mosaic dataset that uses other mosaic datasets as input.
|Mosaic dataset properties|
- Properties of the imagery
- Associated image metadata
- Raster processing functions
|References original pixels as files or database|
|Authored in ArcGIS Desktop|
|Geoprocessing tools and ArcObjects for automation|
- Dynamically mosaicked image, processed on the fly
- Catalog table with geometry and metadata
Because mosaic datasets are dynamically mosaicked and processed on the fly, the processes for a mosaic dataset are transactional and executed on demand in contrast to traditional methods for handling rasters that deal with image processing and image mosaicking as separate and linear steps. When an image is required by a client application, the image processing functions and dynamic mosaicking are executed on the fly and the result served to the client. Essentially, the imagery is processed as it is accessed.
Mosaic datasets are aware of spatial and temporal information that is maintained as attributes of the source raster datasets. Thus, a mosaic dataset can easily handle data with varying resolutions (e.g., spectral, spatial, temporal, and radiometric).
There is no loss of pixel data or metadata when using mosaic datasets because the source pixels are never altered or converted. Users have access to the mosaicked image as well as the source data. Consequently, no data is lost when using overlapping datasets; all information in the imagery is preserved. Users can reorder imagery to ensure the most appropriate image is on top. This dynamic handling of overlapping imagery differs greatly from the traditional approach to processing and mosaicking imagery into new products that must be stored and maintained and results in significant storage requirements and information loss.
Creating a Mosaic Dataset
|There is no loss of pixel data or metadata when using mosaic datasets because the source pixels are never altered or converted.|
A mosaic dataset consists of a footprint feature class that acts as a catalog that details the extent of each raster and references the source pixels along with properties, metadata, and processing functions. It includes a boundary feature class that defines the extent of the mosaic dataset and property pages that reference default mosaicking rules and other properties defining how imagery and metadata are accessed. A mosaic dataset also contains a table for logging data loading and other properties. Optionally, it can contain a seamline feature class for seamline mosaicking.
Creating a mosaic dataset, even for terabytes of preprocessed imagery, is a straightforward process that can be as easy as pointing the system to the source directory. Note that mosaic datasets can also handle more complex data obtained directly from different satellite and aerial sensors. Advanced, sophisticated mosaic datasets can be generated that fuse imagery from multiple sources and sensors based on the decisions and considerations made while creating and modifying the mosaic dataset. These considerations include choosing mosaic dataset properties, mosaic methods, and mosaic dataset functions as well as the use of referenced mosaics and mosaic datasets that use other mosaic datasets as their source.
Follow these steps to create a mosaic dataset
- Create or locate a target geodatabase. If ArcSDE is not required, using a file geodatabase is recommended.
- In ArcCatalog, right-click the geodatabase and choose New > Mosaic Dataset.
- Specify the mosaic dataset name.
- Specify the coordinate system that will be used for managing the mosaic dataset. Rasters may be in any spatial reference system.
- Add rasters to the mosaic dataset.
- Specify raster type in the Raster Type Properties dialog box. As raster datasets are added to the mosaic dataset, footprints are created for each raster dataset and the boundary is generated for the entire mosaic dataset. The overviews are generated for the entire mosaic dataset and are generally small when compared to the complete dataset. Instead of creating overviews, you can use other lower-resolution imagery if available or another imagery source such as ArcGIS online.
- Optionally, expand Advanced Options and (if necessary) check the option to Build Raster Pyramids and Calculate Statistics, if necessary. Set the properties that affect how the mosaicked image will be presented to the client and how they can interact.
- Right-click on the mosaic dataset in the catalog window to open the Mosaic Dataset Properties dialog box. From the Defaults tab, you can change default properties such as the compression method used for transmission, the default resampling method, and the default mosaic method. These properties are used when a mosaic dataset is accessed but can be changed by users depending on their requirements. From the Functions tab, you can add additional image processing functions that will be applied to the mosaic. These are functions applied to the image after it is mosaicked from multiple sources but before it is displayed. When done, the mosaic dataset is added to the table of contents and can now be used. The functions associated with each raster can also be modified (if required).
|A mosaic dataset consists of a catalog that provides the source of the pixels, properties, metadata, processing functions, and footprints of the participating rasters; includes a feature class that defines the boundary; and applies mosaicking rules that define the default rules for dynamically mosaicking overlapping rasters.|
Raster data is added to a mosaic dataset by specifying a raster type. Raster dataset, the default raster type, can be used for all standardized data sources such as GeoTIFF or MrSID files. The raster type can be used to facilitate the use of more complex data and identifies metadata, such as the acquisition date and sensor type, along with a raster format and optional additional processing to be applied to the rasters. Raster types can be easily customized and stored for future use to help automate adding similar data.
The mosaic method, defined as part of the mosaic dataset properties, defines how overlapping imagery is handled in the mosaic dataset. Mosaic methods define the order of the rasters that are mosaicked together to create the mosaicked image. The By Attribute mosaic method is commonly used to order imagery based on an attribute such as date. For example, Date can be set to 'Latest' or 'Closest to May 2001.' Alternatively, the same method can be used to set the order of imagery by other attributes (e.g., 'Highest Sun Angle'). Similar mosaic methods can be used to set the image orientation from the north, south, east, or west, which may improve the ability to see features such as the sides of houses in wide angle or oblique imagery. A default mosaic method is defined when the mosaic dataset is authored, but users can redefine the mosaicking method according to their requirements. Mosaicking methods are summarized in the table below.
|By Attribute||Order images based on attribute defined in the table. It is used when imagery with specific properties is of most interest.|
|Closest to Center||Place the raster with center closest to the center of the area of interest on top. This is the default for most overlapping imagery with specific attributes.|
|Closest to Nadir||Compares the area of interest and the raster nadir point instead of the image center point. It optimizes imagery for the most vertical view.|
|Closest to Viewpoint||Chooses top image based on a direction specified by the client. It is useful for seeing the sides of buildings.|
|Lock Raster||Display only specified rasters despite any change in the area of interest.|
|None||No ordering specified. The order of imagery is based on the order in the mosaic dataset table, which may change.|
|North-West||Raster with center in the northwest corner is displayed on top. It is a simple way to fix the order of imagery.|
|Seamline||Fixes the order of the imagery based on an attribute and uses a special seamline geometry feature as the location to blend images together. It is used when it is necessary to create a static mosaic and minimize the transition from one image to the other.|
Summary of mosaicking methods
Mosaic Dataset Functions
Mosaicking functions are operations that are applied on the fly to each raster in the mosaic dataset or to the contents of the mosaic dataset and deliver dynamically processed raster data to users. These allow multiple products to be created from a single raster source because imagery is processed as it is accessed.
|Mosaicking functions applied on the fly to each raster in the mosaic dataset or to the contents of the mosaic dataset deliver dynamically processed raster data and allow multiple products to be created from a single raster source.|
Some of the common processes applied to mosaic datasets via functions include
- Stretch, Extract Bands, Normalized Difference Vegetation Index (NDVI) (to enhance imagery)
- Clip, Mask (to exclude areas or classify)
- Orthorectify, Pan-Sharpen (to process satellite and aerial imagery)
- Slope, Aspect, Shaded Relief (when working with elevation data)
Functions can be added to the individual raster datasets or the entire mosaic dataset. The functions are managed within the mosaic dataset. Note that when specific raster data products (data from a satellite sensor, for example) are added to a mosaic dataset, some functions are automatically added because these functions were defined as part of a raster type. Specifying the raster type, therefore, allows the mosaic dataset to identify and apply appropriate functions to the source raster datasets of a mosaic dataset.
Here is a more detailed look at some functions that can be used when working with elevation data:
- Aspect function—Identifies the downslope direction of the maximum rate of change in value from each cell to its neighbors.
- Hillshade function—Generates a grayscale model of a terrain with the sun's relative position taken into account for shading the terrain.
- Shaded Relief function—Generates a shaded relief from an elevation model and color ramp.
- Slope function—Calculates the rate of change of elevation for each DEM cell.
- Stretch function—Enhances an image by changing properties, such as brightness, contrast, and gamma, through multiple stretch types.
- Convolution function—Performs filtering on the pixel values in a raster, which is primarily for sharpening an image. It can also be used for blurring an image, detecting edges within an image, or other kernel-based enhancements.
The mosaic dataset also includes an advanced color correction option to match the color of different images and remove lighting trends in the imagery to improve its visual quality. Color correction is defined using the color correction tool and determines for each raster a set of color corrections to be applied on the fly, enabling mosaic datasets to return imagery that is visually pleasing as well as scientifically correct from the same source without data duplication or extensive processing.
Serving Mosaic Datasets
|Stretches are generally used to enhance imagery as well as to convert imagery with high bit depths to the 8-bit depth required for display.|
Image services are a service provided by ArcGIS Server for the optimized serving of imagery. Any raster dataset or raster layer can be served as an image service so that it is accessible to a wide range of desktop and Web applications. These image services are dynamic. Client applications define properties such as the extent of the request, projection, and sampling method. When the server receives a request for imagery, it accesses and processes the imagery as required. Client requests can include information on the compression to be used for transmission. Setting a lower compression quality enables users to quickly access imagery over low-bandwidth networks (for example, for navigation purposes) and then set high quality to get imagery for analysis purposes. Image services can return imagery as a picture that can be used as a background for applications or as data values that can be used in analysis. Image services provide a one-to-many relationship between source raster datasets and image services. A single raster dataset can be served in multiple forms. The functionality, if further extended in client applications, can also define additional processing that is performed on the server.
The Image extension extends ArcGIS Server to serve mosaic datasets. This enables a many-to-many relationship so that a large collection of images can be served as a single virtual image in multiple forms. Using the Image extension, large collections of imagery become accessible. These image services can be accessed not only as an image but also as a catalog that enables applications to access the rich metadata or define selection queries to search or refine the imagery to be displayed. If a user requires imagery locally, either it can be exported to a specified extent and format or the original pixels can be downloaded.
Mosaic datasets resolve many of the traditional raster management issues by cataloging large collections of imagery and performing on-the-fly processing and dynamic mosaicking. The benefits of using mosaic datasets include
- Reducing processing time because imagery can be directly used without extensive preprocessing
- Maintaining information on overlapping imagery that is traditionally lost when creating a static mosaicked image
- Easily handling large disparate datasets such as imagery along pipelines or transportation corridors
- Handling datasets with different resolutions without the need to sample the imagery up or down
- Reducing resampling of source rasters thereby retaining image quality and integrity
- Reducing storage by removing redundancy traditionally created with multiple image products
- Easing maintenance because imagery can be added or changed as required
- Retaining valuable information by maintaining metadata
For more information, visit help.arcgis.com and search on "Essential raster data vocabulary."
|Arithmetic||Performs an arithmetic operation between two partially or completely spatially overlapping rasters or a raster and one or more constant values.||Typically used to merge different bands of imagery together or apply conversions, for example, to compute radiance values.|
|Aspect||Identifies the downslope direction of the maximum rate of change in value from each cell to its neighbors.||This is used generally to help identify watersheds or side of hills that have more light.|
|Clip||Extracts or excludes an area in a raster according to a set of detailed extents.||Often used to efficiently exclude NoData areas or clouds from an image|
|Colormap||Transforms an index of pixel values to display as either a grayscale or a red, green, blue (RGB) image, based on a color map.||Used typically to render the results of a classification.|
|Colormap To RGB||Converts a single-band raster with a color map to a three-band (red, green, and blue) raster.||This enables color-mapped images to be correctly rendered together.|
|Color Model Conversion||Converts the color model of an image, for example, from either the hue, saturation, and value (HSV) to RGB or vice versa.||This function is often used in some image processing algorithms.|
|Complex||Computes magnitude from complex values.||Typically used with radar imagery.|
|Composite Band||Combines rasters to form a multiband raster. ||Typically a multispectral image will be displayed as a composite of specific bands (e.g., 432 for false color infrared).|
|Constant||Creates a virtual raster with a single pixel value for all its pixels.||Used generally to simulate some input.|
|Convolution||Performs filtering on the pixel values in a raster.||Used for sharpening an image, blurring an image, detecting edges within an image, or other kernel-based enhancements.|
|Extract Band||Reorders or extracts bands from a raster.||Used to specify a single band from a multiband raster.|
|Geometric||Rectifies an image based on a geodata transformation.||This is used to orthorectify rasters based on a sensor definition and an elevation model or perform other geometric transformations.|
|Grayscale||Converts a multiband raster into a grayscale raster.||This is sometimes done to tone down an image so that overlaid vector data is more visible.|
|Hillshade||Generates a grayscale model of a terrain with the sun's relative position taken into account for shading the terrain.||Emphasizes the structure of terrain.|
|Identity||Default function required by all rasters in a mosaic dataset if there is no other function.||Identifies a raster.|
|Mask||Creates NoData by defining a range of pixel values. Any values outside the range will be returned as NoData.||This can be used to mask out clouds or other parts of an image on a pixel by pixel basis.|
|NDVI||Calculates the Normalized Difference Vegetation Index (NDVI) values using a two-band raster consisting of the red and near-infrared bands.||NDVI is very useful in identifying vegetation biomass or stress.|
|Pan-sharpening||Enhances the spatial resolution of a multiband image by fusing it with a higher-resolution panchromatic image.||Pan-sharpening is applied when visualizing imagery from many satellite and aerial imagery platforms to sharpen color images without increasing the data size or affecting the fidelity of the multispectral imagery.|
|Raster Info||Modifies properties of the raster, such as bit depth.||Useful when converting imagery used in conjunction with other imagery that is combined using a function.|
|Shaded Relief||Generates a shaded relief from an elevation model and color ramp.||This is similar to Hillshade but provides color for better cartographic representation.|
|Slope||Calculates the rate of change of elevation for each DEM cell.||This is most useful as an input to many elevation analysis applications.|
|Spectral Conversion||Applies a matrix to a multiband image to affect the spectral values of the output.||Can be used to convert a false color image to a pseudo color image.|
|Statistics||Calculates focal statistics for each pixel of an image based on a defined focal neighborhood.||Such statistics can be used to drive dynamic range adjustment to optimized display.|
|Stretch||Changes properties such as brightness, contrast, and gamma through multiple stretch types.||Enhances an image.|
A detailed list of available mosaic dataset functions