Understanding geotransformations (ArcObjects .NET 10.6 SDK)
ArcObjects Help for .NET developers > Developing with ArcGIS > Learning ArcObjects > Managing data > Working with spatial references > Understanding geotransformations (ArcObjects .NET 10.6 SDK)

Understanding geotransformations

Geotransformations convert data between two geographic coordinate systems (datums). A geotransformation is sometimes performed when projecting data between two projected coordinate systems.

In this topic

What is a geographic transformation?

A geographic transformation is a mathematical operation that takes the coordinates of a point in one geographic coordinate system and returns the coordinates of the same point in another geographic coordinate system. There is also an inverse transformation to allow coordinates to be put back to the first coordinate system from the second. Many different types of mathematical operations are used to achieve this task.
To illustrate this process, consider the following scenario:
  • You have a known geographic position in the state of Kansas, which is 37.68 N, 97.32 W. This same location, when displayed with universal transverse Mercator (UTM) Grid Zone 14N for Kansas (based on the North American Datum of 1927 [NAD1927] geographic coordinate system), has planar coordinates of 648147.22m E, 4171434.25m N. The same geographic location, when using the UTM Grid Zone 14N (based on the North American Datum of 1983 [NAD1983] geographic coordinate system), has planar coordinates of 648115.09m E, 4171640.19m N. This is a difference of –12.13 meters in the eastings and 204.86 meters in the northings.
  • Thus, if you have two datasets that are projected, they might be using different projected coordinate systems, which are based on different geographic coordinate systems. It might not be enough to simply change the parameters of the projected coordinate system. You might experience a misalignment between the two datasets even when both are displayed using a common projected coordinate system. The magnitude of the error can vary depending on the geographic coordinate systems used and the relative accuracy of the data. A geographic transformation should minimize these inaccuracies.

What is a geotransformation?

Older geographic coordinate systems are usually local systems. They are designed for a particular region or country. As measuring techniques and data became available, new geographic coordinate systems have often been defined for the same area. A geographic transformation converts data between two geographic coordinate systems. A geotransformation includes a name, two geographic coordinate systems (from and to), a method or type, and any parameters required for the method. Each method or type is a class. The following are the available transformation types:

Geotransformation interfaces

The interfaces on these classes allow you to set any parameters needed by the transformation type. The High Accuracy Reference Network (HARN), North American Datum Conversion (NADCON), and National Transformation Version 2 (NTv2) transformations are grid based. They use a file on disk to calculate the data shifts. Use the IGridTransformation interface to access the on-disk information. Use the IGeoTransformation interface to set the from and to spatial references. A geotransformation is always defined in a particular direction—FROM geographic coordinate system 1 TO geographic coordinate system 2. The ProjectEx method on IGeometry2 has a direction parameter of type esriTransformDirection. Set it to esriTransformForward if you want to apply the geotransformation in the order in which it is defined. If you want to apply it in the opposite direction, use esriTransformReverse.
To access the hundreds of predefined geographic transformations, ISpatialReferenceFactory has the CreateGeoTransformation method. The predefined geographic transformations are listed in the esriSRGeoTransformationType, esriSRGeoTransformation2Type, and esriSRGeoTransformation3Type enumerations.
A CompositeGeoTransformation is a multistep geotransformation. Use the ICompositeGeoTransformation interface when you need to define a geographic transformation operation that requires an intermediate geographic coordinate system. For example, no direct path from one geographic coordinate system to another exists, but you can use a third geographic coordinate system to get from one to another. For example, Cameroon uses both the Adindan and Minna geographic coordinate systems. While it is not possible to convert directly between Adindan and Minna, you can convert both to World Geodetic System (WGS) 1984; therefore, you can go from Adindan to WGS 1984, then from WGS 1984 to Minna. The transformation method actually goes from Minna to WGS 1984; therefore, you need to state that you want to go in the reverse direction (WGS 1984 to Minna). To specify the direction of a transformation, use the esriTransformDirection enumerations (esriTransformForward and esriTransformReverse).
The forward direction through this composite geotransformation takes you from Adindan to Minna. The reverse direction through this geotransformation takes you from Minna to Adindan. This composite geotransformation has the following two components, that is, it has two (direction, geotransformation) pairs:
  • Adindan to WGS 1984 (forward)
  • Minna to WGS 1984 (reverse)
Going forward through the composite geotransformation is the same as going forward through the first component geotransformation and backward through the second component geotransformation. Going reverse through the composite geotransformation is the same as going forward through the second geotransformation and backward through the first geotransformation.
In other words, you need the component directions and component ordering to define what forward and reverse mean at the composite level. The order is important. Once you build the composite transformation, it acts just like a regular transformation.

See Also:

Creating a predefined geotransformation
How to perform an affine transformation

Development licensing Deployment licensing
ArcGIS Desktop Basic
ArcGIS Desktop Standard
ArcGIS Desktop Advanced
Engine Developer Kit