# The Helmert transformation¶

In this set of exercises we investigate the Helmert Transformation and some of its properties. The Helmert transformation covers a wide range of configurations, from simple translations of coordinates to the fully-fledged spatiotemporal transformation. Consult Wikipedia and Helmert transform for in-depth technical details on the transformation.

The Helmert transformation works on geocentric, cartesian coordinates. See the Coordinate conversions exercise for more info. In this exercise all coordinates are already given as cartesian coordinates, so you only need to focus on the actual transformation setup.

Download the gie file for the exercise: `helmert.gie`

.

## 1. Simple coordinate translation¶

The most basic application of the Helmert transformation is a translation of the x-, y- and z-components of the coordinate. This is rarely a good fit for large areas but locally a 3 parameter Helmert shift can be very effective. Even though the 3 parameter translation doesn't fit particularly well in large areas of use it is still commonly used between legacy and modern systems. In this exercise we will use a transformation between ED50 in Italy (Sardinia) and WGS84.

Hint

You can find the transformations parameters by running the following command:

```
projinfo -o WKT2_2019 -k operation EPSG:1142
```

which returns the WKT2 definition of the transformation.

Hint

Remember that the input to the Helmert transform is cartesian geocentric coordinates (x, y z).

Hint

See Helmert transform to find out how to set up the transformation

```
operation <your answer here>
tolerance 1 m
accept 4826177.7574 4049643.9762 991162.2529 # Sardinia (40N, 9E)
expect 4826080.7574 4049540.9762 991042.2529
```

## 2. Translation and rotation¶

For larger areas it is not enough to just rely on translation of coordinates. In that case the solution is to include rotations of the axes and a scale adjustment. The rotational aspect of the transformation is handled by a set of three rotation matrices. Two conventions for the application of the rotations are in common use: Position Vector and Coordinate Frame. In this exercise we will using Position Vector. See the PROJ documentation on the Helmert transformation for further detail.

Hint

You can find the transformations parameters by running the following command:

```
projinfo -o WKT2_2019 -k operation EPSG:1626
```

Hint

Remember to specify the rotation convention with +convention

```
operation <your answer here>
tolerance 1 m
accept 3496723.5936 743251.5442 5264442.2361
expect 3496639.7297 743156.3657 5264324.9341
```

## 3. Position vector/Coordinate frame¶

Effectively, the difference between the two rotation conventions is the sign of the rotation parameters. In this exercise we will examine this property by looking at a transformation between the German DHDN reference system and ETRS89.

First find the parameters for the EPSG:1309 transformation. In 3a below, enter the parameters as reported by projinfo (using the coordinate frame convention). Adapt the parameters to the position vector convention in 3b.

Hint

You can find the transformations parameters by running the following command:

```
projinfo -o WKT2_2019 -k operation EPSG:1309
```

```
* 3a:
operation <your answer here> +convention=coordinate_frame
accept 4067886.6403 571704.1839 4862789.0376
expect 4068519.1921 571728.6671 4863239.3787
* 3b:
operation <your answer here> +convention=position_vector
tolerance 1 m
accept 4067886.6403 571704.1839 4862789.0376
expect 4068519.1921 571728.6671 4863239.3787
```

## 4. Kinematic transformation between ITRF2008 and ITRF2014¶

The Helmert transformation also exists in a kinematic, or spatiotemporal, version. This takes the evolution of a coordinate reference system over time into account as well. This is done by pivoting about a reference epoch. The 14-parameter spatiotemporal Helmert is used when super high accuracy transformations are needed. A good example of such a use case is transformations between various realizations of ITRS and ETRS89. In this exercise we look at the transformation from ITRF2008 to ITRF2014.

Hint

You can find the transformations parameters by running the following command:

```
projinfo -o WKT2_2019 -s ITRF2008 -t ITRF2014
```

which returns the WKT2 definition of the transformation.

Hint

Not all parameters need to be set.

Hint

Pay attention to the units of the parameters output by projinfo, you may have to convert them to standard units (e.g. mm -> m).

Hint

Note that the coordinates in the test now also includes a time tag in the form of a decimalyear - This is always needed when doing spatiotemporal transformations in PROJ. The time tag is the observation time of the coordinate. Note that the time component of the coordinate is never affected by the transformation.

```
operation <your answer here>
tolerance 1 mm
accept 2952736.3768 1360917.6894 5468849.5615 2019.5
expect 2952736.3744 1360917.6871 5468849.5586 2019.5
```