CUSTOM IMAGE PROCESSING CAPABILITIES IN ARCGIS Hong Xua, Peng Gaob a ESRI, Raster Product Engineer Lead, 380 New York Street, Redlands, CA91765 - hxu@esri.com b ESRI, Raster Development Lead, 380 New York Street, Redlands,-CA91765 - pgao@esri.com Commission IV, WG IV/2 KEY WORDS: GIS, Raster, Remote Sensing, Transformation, Geometry, Radiometry, Programming, Open System ABSTRACT: The traditional workflow of using remote sensing images in GIS applications is to acquire or purchase processed images and then use these “ready” images in GIS software. As the development of remote sensing technology, more and more sensors have been invented and are producing imagery with various camera models. Both imagery providers and GIS software companies are working on providing ways to make these imagery products available to wide varieties of GIS users in a timely fashion. This paper presents the open structure in ArcGIS, the commercial GIS software, that allows third parties to add custom image processing functionality to ArcGIS. With this open structure, ArcGIS software provides a platform that brings remote sensing and GIS application together. The paper will discuss in details the image processing capabilities in ArcGIS and the open structure that supports custom geodata transformations, custom pixel filters, and custom raster format into ArcGIS. third parties can create their own extensions or custom plug-ins to support custom camera model and custom pixel filtering algorithms, taking advantages of the powerful ArcGIS capabilities in image management, mapping and raster analysis. 1. INTRODUCTION ArcGIS, the leading GIS software for managing geospatial data, provides functionality in raster data storage and management, image processing, image visualization, and image serving over the web. This combination of capabilities provides a complete solution for government agencies, the military, private companies, and many other parties to build various GIS and geospatial applications. 2. GEOMETRIC TRANSFORMATION SUPPORT IN ARCGIS ArcGIS software supports many types of geometric transformations. The Georeferencing toolbar in ArcGIS allows users to georeferencing image with three geometric transformation types: polynomial transformation which includes 1st, 2nd, and 3rd polynomial, rubber sheeting transformation, and Spline transformation. ArcGIS’s raster projection engine provides a fast and accurate algorithm for re-projecting images to various projections including the complicated Cube and Fuller projections. First, ArcGIS supports more than 40 existing raster formats and can store large seamless image mosaics in an enterprise geodatabase and a File geodatabase that any other existing raster format can not offer. Developers can also add any new raster format support into ArcGIS. These capabilities have laid a solid foundation for building geospatial applications with various image data; Secondly, ArcGIS provides many raster renderering capabilities that can display various types of raster data; Thirdly, ArcGIS provides rich raster processing tools for raster analysis and image processing such as creating a slope or creating an hillshade image from DEM, generating a pansharpened image, georeferencing an image, creating orthorectified images from QuickBird and IKONOS’s basic image products, and so on. Lastly, the ArcGIS server products allow users to serve imagery through intranet and internet, providing image services to more users. ArcGIS also supports reading and processing images with RPC camera model. Starting from 9.2 release, ArcGIS software, supports RPC camera model from the basic image products of QuickBird and IKONOS. The RPC information is read and applied directly when the image is accessed or displayed in ArcGIS (Figure 1). Further more, by applying DEM, ArcGIS can produce orthorectified image from these products (Figure 2, and Figure 3). As the development of GIS and remote sensing technologies improve, the demand for imagery as GIS data sources also increases. More image sensors have been developed and are producing imagery for various GIS applications (Tao, 2001, Altimarier, 2002, Toutin, and Wolniewicz et al), and each sensor might have its own proprietary camera model and/or image processing algorithms. Making these images available to vast GIS users using a fast and convenient way becomes critical for both GIS users and image companies. ArcGIS, as a complete system for managing geospatial data, has not only the capabilities to mange, visualize, process and serve images, but also provides an open structure for developers or third parties to add their own algorithms for image processing including geometric transformation and radiometric transformation. Any 263 The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008 3. RASTER PROCESSING SUPPORT IN ARCGIS ArcGIS provides sets of Geoprocessing tools that allow users to create, analyze, and process raster data. Some of the tools such as creating a slope, or creating a shaded relief from DEM, performing raster data overlay, zonal and local analysis, hydrology analysis, and so on are provided through ArcGIS’s Spatial Analysis extension: Figure 1. Original QuickBird Level 1B product. ArcGIS software can read the map coordinate directly -Courtesy by Digital Globe Some basic image processing tools, such as image clipping, image mosaicking, compositing bands, and so on, are provided through ArcGIS core products: Figure 2. The Geoprocessing tool that can create orthocorrected image by applying DEM data Figure 3 The ortho-corrected result displayed in ArcMap The Create Pan-sharpened Raster Dataset tool is used to create a pan-sharpened image by fusing a low resolution MS image with a high resolution panchromatic image. The pan-sharpening methods supported in ArcGIS include Brovey, HIS, Mean, and ESRI methods. The two pictures (Figure 4 and Figure 5) below 264 The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008 are the original image and pan-sharpened image using ESRI pan-sharpening algorithm. created directly from the raster file name through a workspace class (e.g. name of the directory where the raster file resides). The Raster, derived from a RasterDataset, is a class that provides access to raster data and handles pixel read from raster dataset. Raster is a virtual representation of raster dataset which allows changing the properties of Raster such as dimension, extent, spatial reference, and so on. It also allows transforming the raster data geometrically and radiometrically through the GeodataXForm and PixelFilter classes. The changes on Raster is virtual, it can be preserved by saving out to another raster dataset or passing to display pipeline. 4.1 ADDING CUSTOM GEODATA XFORM TO ARCGIS IGeoDataXForm Figure 4. A multi-band image at a resolution of 2.8 meters PolynomialXForm GeoDataXform RPC Adjust -XForm -XForm Custom … -XForm Figure 9. Diagram of geodata transformation classes The GeodataXform is an abstract class that consists of many geometric transformation classes including polynomial transformation, rubber sheeting transformation, RPC transformation (Rational Polynomial Coefficients), coordinate transformation that supports projecting raster, and Spline transformation. (Figure 9) Figure 5. Pan-sharpened result using ESRI pan-sharpening method with a panchromatic image of 0.7 meter resolution. All geodata transformation classes support IGeoDataXform interface and three additional interfaces: IClone, ISupportErrorInfo, and IPersistStream. IGeodataXform interface contains methods that transform a set of points, transform an area, and transform a cell size, which provide the foundations to transform raster data geometrically. 4. ARCOBJECTS RASTER API ArcGIS software is built upon ArcObjects, which includes APIs that support the built-in raster functionality. Developers and third parties can also extend ArcGIS raster capabilities using the existing APIs and build application for visualizing, processing, and analyzing raster data. ArcObjects contain four major classes that support the open structure for custom image processing: RasterDataset, Raster, GeodataXFrom and PixelFilter. GeodataXform is designed to work with class Raster. Once it is set on Raster, the ArcGIS raster transformation pipeline, through RasterXFormer class, will detect it and apply the GeodataXform during pixel fetching for display or data output. Figure 6. Diagram of key classes supporting raster functionality To add a custom transformation into ArcGIS framework, create a custom geodata transformation class by implementing IGeoDataXform and the rest three required interfaces. Once plug-into ArcGIS, the custom geodata transformation class will work as same as any other built-in geodata transformation classes, e.g. it can be applied to Raster using IRaster2::GeoDataXform method and displayed in ArcMap directly. A geodata transformation class can also be serialized and stored in a XML file as part of raster dataset. A RasterDataset class is used to read raster files and provide properties about the raster data. The RasterDataset class encapsulates all the details that handle reading specific raster formats and provides an easy data access, for developers, of raster data in different formats. Regardless of the raster formats, RasterDataset interprets information of the raster data automatically such as projection, coordinates, statistics of the pixel values, colormap, and pyramids. A RasterDataset can be Any third parties, who wish to support their proprietary camera model in ArcGIS, can take advantage of this open structure. For further documentation and example, please refer the online topic: http://edndoc.esri.com/arcobjects/9.2/CPP_VB6_VBA_VCPP_ Doc/COM_Samples_Docs/Raster/Transformation_And_Spatial _Reference/CustomGeoXForm/954B42BC-A74C-45C9-9BB9A2A2006AF573.htm RasterDataset PixelFilter Raster GeoDataXform RasterXFormer 265 The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008 format driver can be found from http://www.gdal.org/gdal_drivertut.html; Second, compile the format driver with GDAL library’s ESRI branch which is released with ArcGIS software; Last, install the format driver into ArcGIS. Further information on configuration with ArcGIS, refer to custom format driver documentation form ESRI EDN web site. 4.2 ADDING CUSTOM PIXEL FILTER TO ARCGIS IPixelFilter Convolution -Filter Remap -Filter PixelFilter PanSharpening -Filter … Custom -Filter 5. CONCLUSION Figure 10. Diagram of pixel filter classes ArcGIS software provides a complete solution for accessing, processing, visualizing, and severing geospatial data. The rich geoprocessing toolsets provide functionality that process and analysis raster data as well as models that apply to many industries such as environmental, agriculture, transportation, energy, infrastructure, and so on. ArcObjects, the libraries that ArcGIS software is built upon, provides a platform for developers or third parties to create solution based applications. Raster APIs, part of ArcObjects, not only allows developers to develop raster-centric applications, but also provide solution for third parties to plug-in their own image processing algorithms, proprietary raster format, or proprietary camera models to ArcGIS. To summarize, ArcGIS framework provides an easy way for third parties to distribute new data products and new technology to a wide GIS user community. The radiometric transformation in ArcGIS are supported through a series of pixel filter classes (Figure 10): ConvolutionFilter class supports standard pixel filtering algorithms such as low pass filtering, high passes filtering, and so on; the PanSharpeningFilter class performs image panchromatic sharpening operation, and RemapFilter class transforms pixel values based on a set of predefined pixel value mapping criteria. The PixelFilter is an abstract class and supports a generic IPixelFilter interface that is implemented by all pixel filter classes. The pixel filter class is designed to work with class Raster (Figure 1). A pixel filter class can be set on Raster through IPixelOperation::PixelFilter method, and the transformation will be applied during pixel fetching such as display or data output. REFERENCE To add a custom pixel filtering operation to ArcGIS, create a custom pixel filter class by implementing IPixelFilter interface and the additional required interfaces. The custom pixel filter class will work as same as any built-in pixel filter classes. Altimarier, A. and Kany, C., 2002, , Digital surface model generation from CORONA satellite images, ISPRS Journal of Photogrammetry and Remote Sensing, July 2002, Pages 221235 Third parties, who wish to add their own image processing algorithms into ArcGIS or build image processing extension for ArcGIS, can take advantage of this open structure. For further documentation and example, please refer to the online topic: http://edndoc.esri.com/arcobjects/9.2/CPP_VB6_VBA_VCPP_ Doc/COM_Samples_Docs/Raster/Creating_Raster_Data/Custo mHillshadeFilter/48FC182C-D935-4489-95FBAE4BBE6D0286.htm C. V. Tao, 2001, A Comprehensive Study of the Rational Function Model for Photogrammetric Processing, PE&RS Vol. 67, No. 12, pp.1347-1357 ESRI, last visited on April, 2008, Overview of ArcObjects raster API, http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriData SourcesRaster/DataSourcesRaster_overview.htm 4.3 ADDING CUSTOM RASTER FORMAT to ARCGIS Some data vendors or data producers have not only their own sensor models, but may also store images in their own proprietary raster format, which is not part of raster formats supported by default in ArcGIS product. To support this use case, ArcGIS also provides the capability which allows developers to add custom raster format. ArcGIS, since 9.2, uses the Geospatial Data Abstract Library (GDAL) to support underline raster formats. To add a custom raster format into ArcGIS, first, develop a format driver for your raster data using GDAL libraries. The documentation for creating GDAL raster Toutin, T., last visited on April 2008, Review Paper: Geometric Processing of Remote Sensing Images: Models, Algoruthms, and Methods, http://geomatic.unipv.it/autec/Toutin-1.pdf Wolniewicz, W. and Ke, L., last visited on April 2008, Geometric Modeling of VHRS, www.isprs.org/commission1/euroCOW06/euroCOW06_files/pa pers/Geometric%20models%20-%20wolniewicz.doc 266