ESRI banner

Defining Projections

ArcGIS Image Server allows clients to retrieve data from published image service sources in any desired coordinate system. To do this, the required transformation from source spatial reference system to the client requested spatial reference system must be valid. This can be done using the Service Properties dialog box available in the client DLL.

Additionally, users can create custom rotated coordinate system definitions and request the service for rotated data based on these definitions. These newly created rotated coordinate systems are known as Adjusted Horizontal Coordinate Systems (ADJHCS) within ArcGIS Image Server framework.

You need to first create a definition string to access published data in this newly created coordinate system. Then you need to set the client spatial reference system to the newly created spatial reference system definition on the image service being accessed by the client. After this place a request for data covering the desired area of interest.

Below is an example of a custom rotated coordinate system projection string. This string can either be added programmatically or to a text file with a .prj extension.

ADJHCS["User_Provided_CoordinateSystem_Name",PROJCS["World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",0],UNIT["Meter",1]],HTMETHOD["Affine_Parametric"],ARRAY["Coefficients",6,A,B,C,D,E,F],UNIT["Meter",1.0]]

The above example can be broken down into five parts. Each part is explained below.

1. ADJHCS["User_Provided_CoordinateSystem_Name",
"ADJHCS[" is the start node of the custom projection engine string.
"*_Name" is the user provided name for the rotated coordinate system.
2. PROJCS["World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]], PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",0],UNIT["Meter",1]],
"PROJCS[..." is a valid projection engine definition string used to define the coordinate system on which this newly created rotated coordinate system is based.
3. HTMETHOD["Affine_Parametric"],
This is for internal use only and must be contained within the string.

4. ARRAY["Coefficients",6,A,B,C,D,E,F],

A,B,C,D,E,F are the affine parameters computed as,

    - A = Scaling of x axis * cos(Rotation angle)

    - B = Scaling of y axis * sin(Skew angle - Rotation angle)/cos(Skew angle)

    - C = Translation in X

    - D = Scaling of x axis * sin(Rotation angle)

    - E = Scaling of y axis * cos(Skew angle - Rotation angle)/cos(Skew angle)

    - F = Translation in Y

5. UNIT["Meter",1.0]]
This is the end node of the custom projection engine string.

AISDatums file

Users can manipulate the transformation within the ArcGIS Image Server framework using a AISDatums.txt file. This file contains a list of datum transformations that ArcGIS Image Server can use. Users can edit this file, which is available at Program Files\ESRI\Image Server\pedata\AISDatums.txt, in any text editor.

The format of the AISDatums file is as follows:

One datum transformation definition (either the code or description) per line.
The actual factory code and description of the datum transform is semicolon delimited.
A line starting with # is treated as a commented line.
A valid line should contain at least a code or description string. For example:
-CODE;DESC
-;DESC
-CODE;

In cases where a datum transformation is required during on-the-fly transformations, ArcGIS Image Server searches for an appropriate transformation sequentially in the AISDatums file. It uses the first transformation that succeeds and caches it for later use. Afterwards, whenever ArcGIS Image Server searches for an appropriate datum transformation, the cache is searched before searching the datum file.

In some cases, when the multiple transformations exists, the preferred transform can be prioritized by moving it up in the list. This enables the preferred transformation to be applied before other similar transformations. Users can also define and add new transformations to the datum file.

Whenever the file is modified, users must restart the server to reflect the changes. Restarting the server clears the cache.