EPSG:9623

Affine geometric transformation

Attributes

Data source: OGP

Information source: EPSG guidance note #7-2, http://www.epsg.org

Revision date: 2005-08-26

MapTiler banner

Export

Definition: OGP XML

<div class="syntax"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span> <span class="nt">&lt;gml:OperationMethod</span> <span class="na">xmlns:epsg=</span><span class="s">&quot;urn:x-ogp:spec:schema-xsd:EPSG:1.0:dataset&quot;</span> <span class="na">xmlns:gml=</span><span class="s">&quot;http://www.opengis.net/gml/3.2&quot;</span> <span class="na">xmlns:xlink=</span><span class="s">&quot;http://www.w3.org/1999/xlink&quot;</span> <span class="na">gml:id=</span><span class="s">&quot;epsg-method-9623&quot;</span><span class="nt">&gt;</span> <span class="nt">&lt;gml:metaDataProperty&gt;</span> <span class="nt">&lt;epsg:CommonMetaData&gt;</span> <span class="nt">&lt;epsg:informationSource&gt;</span>EPSG guidance note #7-2, http://www.epsg.org<span class="nt">&lt;/epsg:informationSource&gt;</span> <span class="nt">&lt;epsg:revisionDate&gt;</span>2005-08-26<span class="nt">&lt;/epsg:revisionDate&gt;</span> <span class="nt">&lt;epsg:changes&gt;</span> <span class="nt">&lt;epsg:changeID</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:change-request:EPSG::2004.670&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;/epsg:changes&gt;</span> <span class="nt">&lt;epsg:isDeprecated&gt;</span>false<span class="nt">&lt;/epsg:isDeprecated&gt;</span> <span class="nt">&lt;/epsg:CommonMetaData&gt;</span> <span class="nt">&lt;/gml:metaDataProperty&gt;</span> <span class="nt">&lt;gml:metaDataProperty&gt;</span> <span class="nt">&lt;epsg:CoordinateOperationMethodMetaData&gt;</span> <span class="nt">&lt;epsg:isOperationReversible&gt;</span>true<span class="nt">&lt;/epsg:isOperationReversible&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8621&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8622&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8612&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8613&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8663&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8615&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:signReversal</span> <span class="na">changeSign=</span><span class="s">&quot;false&quot;</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8616&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;epsg:example&gt;</span>(none)<span class="nt">&lt;/epsg:example&gt;</span> <span class="nt">&lt;/epsg:CoordinateOperationMethodMetaData&gt;</span> <span class="nt">&lt;/gml:metaDataProperty&gt;</span> <span class="nt">&lt;gml:identifier</span> <span class="na">codeSpace=</span><span class="s">&quot;OGP&quot;</span><span class="nt">&gt;</span>urn:ogc:def:method:EPSG::9623<span class="nt">&lt;/gml:identifier&gt;</span> <span class="nt">&lt;gml:name&gt;</span>Affine geometric transformation<span class="nt">&lt;/gml:name&gt;</span> <span class="nt">&lt;gml:formula&gt;</span>Note: These formulas have been transcribed from EPSG Guidance Note #7-2. Users are encouraged to use that document rather than the text which follows as reference because limitations in the transcription will be avoided. General case. The geometric representation of the affine transformation is: XT = XT0 + XS * k * MX * cos qX + YS * k * MY * sin qY YT = YT0 – XS * k * MX * sin qX + YS * k * MY * cos qY where: XT0 ,YT0 = the coordinates of the origin point of the source coordinate reference system, expressed in the target coordinate reference system; MX , MY = the length of one unit of the source axis, expressed in units of the target axis, for the first and second source and target axis pairs respectively; qX , qY = the angles about which the source coordinate reference system axes XS and YS must be rotated to coincide with the target coordinate reference system axes XT and YT respectively (counter-clockwise being positive). k = point scale factor of the target coordinate reference system in a chosen reference point; Comparing the algebraic representation with the parameters of the parameteric form (code 9624) it can be seen that the parametric and geometric forms of the affine transformation are related as follows: A0 = XT0 A1 = k * MX * cos qX A2 = k * MY * sin qY B0 = YT0 B1 = – k * MX * sin qX B2 = k *MY * cos qY Reversibility For the Affine Geometric Transformation, the reverse operation can be described by a different formula, as shown below, in which the same parameter values as the forward transformation may be used: XS = [( XT – XT0) . cos qY – (YT – YT0) . sin qY ] / [k * MX * cos (qX – qY)] YS = [(XT – XT0) . sin qX + (YT – YT0) . cos qX ] / [k * MY * cos (qX – qY)] Orthogonal case If the source coordinate reference system happens to have orthogonal axes, that is both axes are rotated through the same angle to bring them into the direction of the orthogonal target coordinate reference system axes, i.e. qX = qY = q, then the Affine Geometric Transformation can be simplified to: XT = XT0 + XS . k . MX . cos q + YS . k . MY . sin q YT = YT0 – XS . k . MX . sin q + YS . k . MY . cos q where: q = the angle through which the source coordinate reference system axes must be rotated to coincide with the target coordinate refderence system axes (counter-clockwise is positive). Alternatively, the bearing (clockwise positive) of the source coordinate reference system Y-axis measured relative to target coordinate reference system north. The reverse formulas of the general case can also be simplified by replacing qX and qY with q: XS = [(XT – XTO) * cos q – (YT – YTO) * sin q ] / [k * MX ] YS = [(XT – XTO) * sin q + (YT – YTO) * cos q] / [k * MY ] In the EPSG dataset this orthogonal case (code 9622) has been deprecated. The formulas for the general case should be used, inserting q for both qX and qY. The case has been documented here as part of the progression through increasing constraints on the degrees of freedom between the general case and the Similarity Transformation.<span class="nt">&lt;/gml:formula&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8621&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8622&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8612&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8613&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8663&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8615&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;gml:generalOperationParameter</span> <span class="na">xlink:href=</span><span class="s">&quot;urn:ogc:def:parameter:EPSG::8616&quot;</span> <span class="nt">/&gt;</span> <span class="nt">&lt;/gml:OperationMethod&gt;</span> </pre></div>
<?xml version="1.0" encoding="UTF-8"?>
 <gml:OperationMethod xmlns:epsg="urn:x-ogp:spec:schema-xsd:EPSG:1.0:dataset" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" gml:id="epsg-method-9623">
   <gml:metaDataProperty>
      <epsg:CommonMetaData>
         <epsg:informationSource>EPSG guidance note #7-2, http://www.epsg.org</epsg:informationSource>
         <epsg:revisionDate>2005-08-26</epsg:revisionDate>
         <epsg:changes>
            <epsg:changeID xlink:href="urn:ogc:def:change-request:EPSG::2004.670" />
         </epsg:changes>
         <epsg:isDeprecated>false</epsg:isDeprecated>
      </epsg:CommonMetaData>
   </gml:metaDataProperty>
   <gml:metaDataProperty>
      <epsg:CoordinateOperationMethodMetaData>
         <epsg:isOperationReversible>true</epsg:isOperationReversible>
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8621" />
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8622" />
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8612" />
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8613" />
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8663" />
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8615" />
         <epsg:signReversal changeSign="false" xlink:href="urn:ogc:def:parameter:EPSG::8616" />
         <epsg:example>(none)</epsg:example>
      </epsg:CoordinateOperationMethodMetaData>
   </gml:metaDataProperty>
   <gml:identifier codeSpace="OGP">urn:ogc:def:method:EPSG::9623</gml:identifier>
   <gml:name>Affine geometric transformation</gml:name>
   <gml:formula>Note: These formulas have been transcribed from EPSG Guidance Note #7-2. Users are encouraged to use that document rather than the text which follows as reference because limitations in the transcription will be avoided.

General case.

The geometric representation of the affine transformation is:
XT = XT0   +  XS * k * MX * cos qX   +  YS * k * MY * sin qY
YT = YT0  –  XS * k * MX *  sin qX   +  YS * k * MY * cos qY 
where:

XT0 ,YT0  = the coordinates of the origin point of the source coordinate reference system, expressed in the target coordinate reference system;
MX , MY  = the length of one unit of the source axis, expressed in units of the target axis, for the first and second source and target axis pairs respectively;
qX , qY   = the angles about which the source coordinate reference system axes XS and YS must be rotated to coincide with the target coordinate reference system axes XT and YT respectively (counter-clockwise being positive).
k = point scale factor of the target coordinate reference system in a chosen reference point;
 
Comparing the algebraic representation with the parameters of the parameteric form (code 9624) it can be seen that the parametric and geometric forms of the affine transformation are related as follows:
A0  =  XT0
A1  = k * MX * cos qX  
A2  = k * MY * sin qY
B0  =  YT0
B1  =   – k * MX * sin qX
B2  =   k *MY * cos qY

Reversibility
For the Affine Geometric Transformation, the reverse operation can be described by a different formula, as shown below, in which the same parameter values as the forward transformation may be used:

XS = [( XT  – XT0) . cos qY  –  (YT – YT0) . sin qY ] / [k * MX  * cos (qX – qY)]
YS = [(XT   – XT0) . sin qX   +  (YT – YT0) . cos qX ] / [k * MY * cos (qX – qY)]


Orthogonal case

If the source coordinate reference system happens to have orthogonal axes, that is both axes are rotated through the same angle to bring them into the direction of the orthogonal target coordinate reference system axes, i.e. qX = qY = q, then the Affine Geometric Transformation can be simplified to:

XT = XT0   +   XS .  k . MX . cos q   +   YS .  k .  MY  . sin q
YT = YT0   –   XS .  k .  MX . sin q    +   YS .  k .  MY  . cos q

where:
q  = the angle through which the source coordinate reference system axes must be rotated to coincide with the target coordinate refderence system axes (counter-clockwise is positive). Alternatively, the bearing (clockwise positive) of the source coordinate reference system Y-axis measured relative to target coordinate reference system north.

The reverse formulas of the general case can also be simplified by replacing qX and qY with q:

XS = [(XT  – XTO) * cos q   –  (YT – YTO) * sin q ] / [k * MX ]
YS = [(XT   – XTO) * sin q   +  (YT – YTO) * cos q] / [k * MY ]

In the EPSG dataset this orthogonal case (code 9622) has been deprecated. The formulas for the general case should be used, inserting q for both qX  and qY. The case has been documented here as part of the progression through increasing constraints on the degrees of freedom between the general case and the Similarity Transformation.</gml:formula>
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8621" />
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8622" />
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8612" />
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8613" />
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8663" />
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8615" />
   <gml:generalOperationParameter xlink:href="urn:ogc:def:parameter:EPSG::8616" />
</gml:OperationMethod>