The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008
265
are the original image and pan-sharpened image using ESR1
pan-sharpening algorithm.
Figure 4. A multi-band image at a resolution of 2.8 meters
Figure 5. Pan-sharpened result using ESRI pan-sharpening
method with a panchromatic image of 0.7 meter resolution.
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.
Figure 6. Diagram of key classes supporting raster functionality
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
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
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)
All geodata transformation classes support IGeoDataXform
interface and three additional interfaces: IClone,
ISupportErrorlnfo, 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.
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.
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.
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-9BB9-
A2A2006AF573.htm