This post applies if your grid to ground conversion requires needing to apply a horizontal rotation about an origin point and is defined by:

- Horizontal Translation North (t
_{N}) - Horizontal Translation East (t
_{E}) - Horizontal Rotation (R
_{z}) - Horizontal Origin Northing (N
_{0}) - Horizontal Origin Easting (E
_{0}) - Horizontal Scale Factor

Then, if the horizontal scale factor is one, luckily, the horizontal rotation simplifies things a little as it becomes a translation to the origin, a rotation about the Z axis, translation back, and then apply the easting and northing translations, if applicable. This can be done in four applications of the Affine Transform LAS PCT, but it can also be simplified with a little re-factor work ahead of time as the Affine Transform Point Cloud Tasks in LP360 will do for you.

### Background Math

We start with the origin point of rotation:

And horizontal translations:

Consider the translation and rotation(z) matrices in figure 1. Then the output, out_{1}, of a point, P_{1}, with an origin of rotation at P_{0}, is given by:

Re-factor the above so a single offset can be used. Where:

then,

and the constant offset portion is then

then the single translation values become,

T_{x}= E_{0}* ( 1 – cos(R_{z}) ) + N_{0}* sin(R_{z}) + t_{E}

T_{y}= N_{0}* ( 1 – cos(R_{z}) ) - E_{0}* sin(R_{z}) + t_{N}

### Using the Affine Transform PCTs:

Create the LP360 Affine Transform LAS PCT and/or **LP360 Affine Transform Raster PCT**. Then, from your inputs:

Compute the value for the **horizontal rotation (R _{z})**, if the rotation is given in D°M'SS.SSSS", then R

_{z}= D + M/60 + SS.SSSS/3600

- Enable Rotate
- Enter the value for the Horizontal Rotation (R
_{z}) in decimal degrees - Default and typical rotation order is using the axis order of Z,Y,X, but X,Y,Z is also supported.

- Enter the value for the Horizontal Rotation (R
- Enable Translate
- Enter the value Horizontal Translation East (t
_{E}) for Translate X - Enter the value Horizontal Translation North (t
_{N}) for Translate Y

- Enter the value Horizontal Translation East (t
- Enable Origin
- Enter the value E
_{0}for Origin X - Enter the value N
_{0}for Origin Y

- Enter the value E

Then, select the units for your local CRS and the Output folder. We typically recommend "Maintain Source File Structure" and to "GeoTag as Local SRS".

Then, execute the Point Cloud Task on the desired input dataset to generate a new dataset with the horizontal rotation about the origin point applied.

## Comments

0 comments

Please sign in to leave a comment.