ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / ProjectionTransformation Class / Transformation Property
Example Version

Transformation Property
Gets the datum transformation. Can be null if transformation is not used.
Syntax
public DatumTransformation Transformation {get;}
Example
Determine Transformations
// methods need to run on the MCT
ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
{
  //
  // find the first transformation used between spatial references 4267 and 4326
  //
  SpatialReference sr4267 = 
       SpatialReferenceBuilder.CreateSpatialReference(4267);
  SpatialReference sr4326 = SpatialReferences.WGS84;

  List<ProjectionTransformation> transformations = 
         ProjectionTransformation.FindTransformations(sr4267, sr4326);
  // transformations.Count = 1
  ProjectionTransformation projTrans = transformations[0];
  CompositeGeographicTransformation compositeGT = 
       projTrans.Transformation as CompositeGeographicTransformation;
  GeographicTransformation gt = compositeGT[0];
  // gt.Wkid = 15851
  // gt.Name = "NAD_1927_To_WGS_1984_79_CONUS"
  // gt.IsForward = true


  //
  // find the first five transformation used between spatial references 4267 and 4326
  //
  transformations = ProjectionTransformation.FindTransformations(
                                     sr4267, sr4326, numResults: 5);
  // transformations.Count = 5
  projTrans = transformations[0];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 1
  // compositeGT[0].Wkid = 15851
  // compositeGT[0].Name = "NAD_1927_To_WGS_1984_79_CONUS"
  // compositeGT[0].IsForward = true

  projTrans = transformations[1];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 1
  // compositeGT[0].Wkid = 1173
  // compositeGT[0].Name = "NAD_1927_To_WGS_1984_4"
  // compositeGT[0].IsForward = true

  projTrans = transformations[2];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 1
  // compositeGT[0].Wkid = 1172
  // compositeGT[0].Name = "NAD_1927_To_WGS_1984_3"
  // compositeGT[0].IsForward = true

  projTrans = transformations[3];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 2
  // compositeGT[0].Wkid = 1241
  // compositeGT[0].Name = "NAD_1927_To_NAD_1983_NADCON"
  // compositeGT[0].IsForward = true

  // compositeGT[1].Wkid = 108190
  // compositeGT[1].Name = "WGS_1984_(ITRF00)_To_NAD_1983"
  // compositeGT[1].IsForward = false

  projTrans = transformations[4];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 2
  // compositeGT[0].Wkid = 1241
  // compositeGT[0].Name = "NAD_1927_To_NAD_1983_NADCON"
  // compositeGT[0].IsForward = true

  // compositeGT[1].Wkid = 1515
  // compositeGT[1].Name = "NAD_1983_To_WGS_1984_5"
  // compositeGT[1].IsForward = true


  //
  // find the first transformation used between spatial
  // references 4267 and 4326 within Alaska
  //

  // Alaska
  Envelope envelope = EnvelopeBuilderEx.CreateEnvelope(-161, 61, -145, 69);
  transformations = ProjectionTransformation.FindTransformations(
                                              sr4267, sr4326, envelope);
  // transformations.Count = 1
  projTrans = transformations[0];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 2
  // compositeGT[0].Wkid = 1243
  // compositeGT[0].Name = "NAD_1927_To_NAD_1983_Alaska"
  // compositeGT[0].IsForward = true

  // compositeGT[1].Wkid = 108190
  // compositeGT[1].Name = "WGS_1984_(ITRF00)_To_NAD_1983"
  // compositeGT[1].IsForward = false


  //
  // find the first geographic transformation used between two spatial references with VCS  (use vertical = false)
  //
  SpatialReference inSR = 
                  SpatialReferenceBuilder.CreateSpatialReference(4269, 115702);
  SpatialReference outSR = 
                  SpatialReferenceBuilder.CreateSpatialReference(4326, 3855);

  // Even though each spatial reference has a VCS,
  // vertical = false should return geographic transformations.
  transformations = ProjectionTransformation.FindTransformations(inSR, outSR);
  // transformations.Count = 1
  projTrans = transformations[0];
  compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
  // compositeGT.Count = 1
  // compositeGT[0].Wkid = 108190
  // compositeGT[0].Name = ""WGS_1984_(ITRF00)_To_NAD_1983"
  // compositeGT[0].IsForward = false

  //
  // find the first vertical transformation used between two spatial references with VCS  (use vertical = true)
  //

  transformations = 
            ProjectionTransformation.FindTransformations(
                                    inSR, outSR, vertical: true);
  // transformations.Count = 1
  projTrans = transformations[0];

  CompositeHVDatumTransformation compositeHV = 
          projTrans.Transformation as CompositeHVDatumTransformation;
  // compositeHV.Count = 2
  // compositeHV[0].Wkid = 1188
  // compositeHV[0].Name = "NAD_1983_To_WGS_1984_1"
  // compositeHV[0].IsForward = true

  // compositeHV[1].Wkid = 110019
  // compositeHV[1].Name = "WGS_1984_To_WGS_1984_EGM2008_2.5x2.5_Height"
  // compositeHV[1].IsForward = true
});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also