# Interface Transformation

All Superinterfaces:
  `CoordinateOperation, IdentifiedObject, SingleOperation`

All Known Implementing Classes:
  `DefaultTransformation`

@UML(identifier="CC_Transformation", specification=ISO_19111) public interface Transformation extends SingleOperation
An operation on coordinates that usually includes a change of Datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation.

Since:
  1.0
See Also:
  - `Conversion`

- ## Field Summary

  ### Fields inherited from interface CoordinateOperation

  `COORDINATE_OPERATION_ACCURACY_KEY, DOMAIN_OF_VALIDITY_KEY, OPERATION_VERSION_KEY, SCOPE_KEY`

  ### Fields inherited from interface IdentifiedObject

  `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getOperationVersion()`
  Version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters).
  `CoordinateReferenceSystem`
  `getSourceCRS()`
  Returns the source CRS.
  `CoordinateReferenceSystem`
  `getTargetCRS()`
  Returns the target CRS.

  ### Methods inherited from interface CoordinateOperation

  `getCoordinateOperationAccuracy, getDomainOfValidity, getMathTransform, getScope`

  ### Methods inherited from interface IdentifiedObject

  `getAlias, getIdentifiers, getName, getRemarks, toWKT`

  ### Methods inherited from interface SingleOperation

  `getMethod, getParameterValues`

- ## Method Details

  - ### getSourceCRS

    @UML(identifier="sourceCRS", obligation=MANDATORY, specification=ISO_19111) CoordinateReferenceSystem getSourceCRS()
    Returns the source CRS.
    Specified by:
      `getSourceCRS` in interface `CoordinateOperation`
    Returns:
      The source CRS (never `null`).
    See Also:
      - `Conversion​.getSourceCRS()`
      - `getSourceCRS()`

  - ### getTargetCRS

    @UML(identifier="targetCRS", obligation=MANDATORY, specification=ISO_19111) CoordinateReferenceSystem getTargetCRS()
    Returns the target CRS.
    Specified by:
      `getTargetCRS` in interface `CoordinateOperation`
    Returns:
      The target CRS (never `null`).
    See Also:
      - `Conversion​.getTargetCRS()`
      - `getTargetCRS()`

  - ### getOperationVersion

    @UML(identifier="operationVersion", obligation=MANDATORY, specification=ISO_19111) String getOperationVersion()
    Version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters). This attribute is mandatory in a Transformation.
    Specified by:
      `getOperationVersion` in interface `CoordinateOperation`
    Returns:
      The coordinate operation version.