com.esri.arcgis.carto
Interface IImageServer3

All Superinterfaces:
IImageServer, IImageServer2, Serializable
All Known Subinterfaces:
IImageServer4
All Known Implementing Classes:
ImageServer, ImageServerIP, ImageServerLP

public interface IImageServer3
extends IImageServer2, Serializable

Provides access to members that control an image server object (SO).

Remarks

IImageServer3 interface provides methods accessing the catalog of an image service such as select catalog items based on a query, get the catalog items, metadata, and download the selected items.

An ImageServer object can be created from multiple data models: raster dataset, mosaic dataset, or an image service defintion file (an 9.3 classic image server file). Table below lists the supported methods with regards to the data models.

Methods

Raster

Dataset

Mosaic

Dataset

Image Service

Definition

GetVersion yes yes yes
GetServiceInfo yes yes yes
GetImage yes yes yes
ExportImage yes yes yes
ExportMapImage yes yes yes
GetMetadata yes yes yes
GenerateServiceInfo yes yes yes
Identify yes yes yes
GetCatalogItemCount no yes no
GetCatalogItemIDs no yes no
GetCatalogItems no yes no
GetThumnail no yes no
GetRasterMetadata no yes no
GetRasterInfo no yes no
GetPixelBlock no yes no
GetNativeRasterInfo no yes no
GetNativePixelBlock no yes no
GetFields no yes no
Download no yes no
GetFile no yes no

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 IImageServerDownloadResults download(IFIDSet pFIDs, IGeometry pGeometry, String format)
          Clips images to a given geometry, and returns a list of downloadable files for a given set of catalog item IDs.
 IImageServiceInfo generateServiceInfo(IRenderingRule pRenderingRule)
          Generates the image service information as if a given rendering rule is applied.
 int getCatalogItemCount(IQueryFilter pFilter)
          Gets the catalog item count for a given query filter.
 IFIDSet getCatalogItemIDs(IQueryFilter pFilter)
          Gets the catalog item IDs for a given query filter.
 IRecordSet getCatalogItems(IQueryFilter pFilter)
          Gets the catalog items for a given query filter.
 IFields getFields()
          The fields of the image catalog.
 String getFile(IImageServerDownloadResult pFile)
          Get the URL to a given download result.
 String getMetadata()
          The image service metadata.
 byte[] getNativePixelBlock(int rID, int iID, int tx, int ty, int level)
          Gets a pixel block at a given block location for a specified raw source raster.
 IRasterInfos getNativeRasterInfo(int rID)
          Gets raster information of all raw source rasters for a given raster catalog item.
 byte[] getPixelBlock(int rID, int tx, int ty, int level)
          Gets a pixel block at a given block location.
 IRasterInfo getRasterInfo(int rID)
          Gets the image information of a given raster catalog item.
 String getRasterMetadata(int rID)
          Gets the metadata of a given raster catalog item.
 IImageResult getThumbnail(int rID)
          Gets the thumbnail image of a given raster catalog item.
 IImageServerIdentifyResult identify(IGeometry pLocation, IMosaicRule pMosaicRule, IPoint pCellsize)
          Identifies the pixel value and catalog items at the given location.
 
Methods inherited from interface com.esri.arcgis.carto.IImageServer2
exportMapImage
 
Methods inherited from interface com.esri.arcgis.carto.IImageServer
exportImage, getImage, getServiceInfo, getVersion
 

Method Detail

getFields

IFields getFields()
                  throws IOException,
                         AutomationException
The fields of the image catalog.

Remarks

The accessible fields are defined during publishing and are stored in the image service configuration file.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A reference to a com.esri.arcgis.geodatabase.IFields
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCatalogItemCount

int getCatalogItemCount(IQueryFilter pFilter)
                        throws IOException,
                               AutomationException
Gets the catalog item count for a given query filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
Returns:
The pNumItems
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCatalogItemIDs

IFIDSet getCatalogItemIDs(IQueryFilter pFilter)
                          throws IOException,
                                 AutomationException
Gets the catalog item IDs for a given query filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFIDSet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCatalogItems

IRecordSet getCatalogItems(IQueryFilter pFilter)
                           throws IOException,
                                  AutomationException
Gets the catalog items for a given query filter.

Remarks

If an ImageQueryFilter with a pixel size is specified, the query will include the selection based on the image service level of details. An image service uses a minimum and maximum pixel size range to define when an individual image will be selected as a part of a mosaic. If a pixel size is given, only these images whose pixel size range contains the given pixel size are selected.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IRecordSet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

download

IImageServerDownloadResults download(IFIDSet pFIDs,
                                     IGeometry pGeometry,
                                     String format)
                                     throws IOException,
                                            AutomationException
Clips images to a given geometry, and returns a list of downloadable files for a given set of catalog item IDs.

Remarks

The Download method return an ImageServerDownloadResults which contains multiple ImageServerDownloadResult objects, and each one of them contain a downloadable file and its size in bytes.

The number of items that can be downloaded is defined in the image service
configuration. One item might be corresponding to multiple files. For example a raster of a pan-sharpened image service consists of a single band raster dataset and a multiple band raster dataset, where each dataset might consist of multiple files such as an image file, a world file, and a pyramid file.The returned downloadable files can be URLs (e.g. http:// or ftp://) that are directly downloadable from a remote server. They can also be files that are known only to the image service. In this case, GetFile() should be used to prepare the file for download and get a public URL.

Downloading formats of folder structure, for example ESRI GRID, is not supported. It will be converted to tiff upon downloading.

New at 10.1, user can convert source rasters to other supported formats by “:Conversion” to the format string (for example: “JP2:Conversion”).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pFIDs - A reference to a com.esri.arcgis.geodatabase.IFIDSet (in)
pGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
format - The format (in)
Returns:
A reference to a com.esri.arcgis.carto.IImageServerDownloadResults
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFile

String getFile(IImageServerDownloadResult pFile)
               throws IOException,
                      AutomationException
Get the URL to a given download result.

Remarks

GetFile() prepares a downloadable file that is only known to the image service and returns a public URL (e.g. http:// or ftp://).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pFile - A reference to a com.esri.arcgis.carto.IImageServerDownloadResult (in)
Returns:
The pURL
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

identify

IImageServerIdentifyResult identify(IGeometry pLocation,
                                    IMosaicRule pMosaicRule,
                                    IPoint pCellsize)
                                    throws IOException,
                                           AutomationException
Identifies the pixel value and catalog items at the given location.

Remarks

Identify return an ImageServerIdentifyResult which contains a single pixel value of the current visible raster at the centroid of the specified location. If there are multiple rasters overlapping the location, the visibility of a raster is determined by the order of the rasters defined in the mosaic rule. It also contains a set of catalog items in a RecordSet that overlap the given geometry. The catalog items are ordered based in the mosaic rule. A list of catalog item visibilities give the percentage contribution of the item to overall mosaic.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pLocation - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pMosaicRule - A reference to a com.esri.arcgis.carto.IMosaicRule (in)
pCellsize - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.carto.IImageServerIdentifyResult
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMetadata

String getMetadata()
                   throws IOException,
                          AutomationException
The image service metadata.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pXml
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRasterInfo

IRasterInfo getRasterInfo(int rID)
                          throws IOException,
                                 AutomationException
Gets the image information of a given raster catalog item.

Remarks

The RasterInfo object completely describes an image. It contains information on (1) image tiling scheme, including tile origin, pixel size, and tile size; (2) image properties including number of columns and rows, number of bands, pixel type, NoData value, and etc; (3) georeferencing and orientation information including native extent and native spatial reference, extent, and Geodata transformation.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rID - The rID (in)
Returns:
A reference to a com.esri.arcgis.datasourcesraster.IRasterInfo
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPixelBlock

byte[] getPixelBlock(int rID,
                     int tx,
                     int ty,
                     int level)
                     throws IOException,
                            AutomationException
Gets a pixel block at a given block location.

Description

Gets a pixel block from an image at a given raster ID and at block/tile location (tx, ty). A raster ID (RID) is the object ID of the catalog item containing the image.

Remarks

The returned binary pixel block data is of the same format as that returned from GetImage().

The pixel block is positioned using block/tile column and row numbers based on a tiling scheme, i.e. the tile origin, the pixel size, and tile size. The tiling information on an image can be obtained using GetRasterInfo method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rID - The rID (in)
tx - The tx (in)
ty - The ty (in)
level - The level (in)
Returns:
An unsigned byte
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRasterMetadata

String getRasterMetadata(int rID)
                         throws IOException,
                                AutomationException
Gets the metadata of a given raster catalog item.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rID - The rID (in)
Returns:
The pXml
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getThumbnail

IImageResult getThumbnail(int rID)
                          throws IOException,
                                 AutomationException
Gets the thumbnail image of a given raster catalog item.

Remarks

If the catalog of the image service has a Thumbnail field containing precomputed thumbnail images, a precomputed thumbnail will be returned. Otherwise, a thumbnail image will be generated from the full size image.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rID - The rID (in)
Returns:
A reference to a com.esri.arcgis.carto.IImageResult
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

generateServiceInfo

IImageServiceInfo generateServiceInfo(IRenderingRule pRenderingRule)
                                      throws IOException,
                                             AutomationException
Generates the image service information as if a given rendering rule is applied.

Remarks

This method is used together with GetImage to unpack the returned binary image data. When requesting an image with a rendering rule, the original service information, obtained using GetServiceInfo, may change once the raster function and renderer are applied to target service, e.g. pixel type, number of bands, and etc, depending the type of functions and renderers applied. The returned binary image from GetImage is formatted according to the new image service info.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pRenderingRule - A reference to a com.esri.arcgis.carto.IRenderingRule (in)
Returns:
A reference to a com.esri.arcgis.carto.IImageServiceInfo
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNativeRasterInfo

IRasterInfos getNativeRasterInfo(int rID)
                                 throws IOException,
                                        AutomationException
Gets raster information of all raw source rasters for a given raster catalog item.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rID - The rID (in)
Returns:
A reference to a com.esri.arcgis.datasourcesraster.IRasterInfos
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNativePixelBlock

byte[] getNativePixelBlock(int rID,
                           int iID,
                           int tx,
                           int ty,
                           int level)
                           throws IOException,
                                  AutomationException
Gets a pixel block at a given block location for a specified raw source raster.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rID - The rID (in)
iID - The iID (in)
tx - The tx (in)
ty - The ty (in)
level - The level (in)
Returns:
An unsigned byte
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.