[PROJ] Proj transformation for arbitrary (quaternion/Euler) spatial rotation

Duncan Agnew dagnew at ucsd.edu
Wed Nov 9 07:05:55 PST 2022


My reading of the documentation is that the    lat_c long_c alpha   are the
parameters of a 2-d rotation applied to the
projected values, not a rotation of the sphere. The only way to do a
spherical rotation would be to find out
where the N Pole rotates to, and use lat_p and long_p (and alpha).

An affine transformation is a 2d operation (I think all the transformations
are)--though now 3-d, as changes in x y and
z (local grid and elevation).

It would be good to move the General Oblique Transformation into the
Transformations  section of the documentation--or
at least repeat the entry there. I scanned the projections list a couple of
times and missed it--maybe just call it
Oblique so it fits into the (mostly) alphabetical order.

Duncan Agnew

On Wed, Nov 9, 2022 at 4:00 AM DAVEN P QUINN via PROJ <proj at lists.osgeo.org>
wrote:

> Hello all,
>
> I’m a geologist who is working with paleogeographic reconstructions (see
> example here
> <https://urldefense.com/v3/__https://davenquinn.com/viz/corelle-demo-pbdb/?time=295__;!!Mih3wA!Ek22jIRdqHNmPv2JHH5Y30sEuUXdoVxt0Fk-QFHtEMBBTuqsZd3R2iiv778TR-mZY_w_JHtLfllItIU$>).
> These require composite reproductions where different parts of a feature
> dataset (continents) are rotated with different axis-angle transformations.
> I’ve had good luck doing these rotations with quaternion math in the
> browser/Python environments, but I am now trying to use Proj
> transformations in order to apply rotations directly within PostGIS queries.
>
> This linked image
> <https://urldefense.com/v3/__https://pbs.twimg.com/media/Fgpx4UGXEAQmPOt?format=jpg&name=4096x4096__;!!Mih3wA!Ek22jIRdqHNmPv2JHH5Y30sEuUXdoVxt0Fk-QFHtEMBBTuqsZd3R2iiv778TR-mZY_w_JHtLewKG3Gg$>
>  shows the desired result, a plate reconstruction to 250 Ma with a
> different rotation applied to each plate. This was produced by applying the
> desired quaternions through pl/pgsql math. Moving this math to Proj
> internals would result in a ~50-100x speedup.
>
> The tool that seems most fitting is the `ob_trans` family of projections,
> but I have been unable to define a rotation that can handle my preferred
> representation (a pole defined in Lon-lat coordinates and an associated
> angle of rotation around it). From my reading of the docs, I believe the
> `o_lon_c`, `o_lat_c` and `o_alpha` parameters should do this, but I cannot
> get them to work reliably. In fact, I can’t even reliably define a ’no-op’
> transformation that leaves coordinates unchanged. Perhaps I have the
> angular coordinate system wrong, or the rotation is being done in Cartesian
> space even though `proj=lonlat` is used.
>
> Is it possible to define an arbitrary spherical spatial rotation in Proj
> transformations? Maybe I need to use pipelines instead? I’d appreciate any
> guidance! More details below the fold...
>
> Regards,
>
> *Daven P. Quinn*
> Research scientist II · *U of Wisconsin Madison*
> PhD · structural geology · *Caltech* ‘18
> https://davenquinn.com
> <https://urldefense.com/v3/__https://davenquinn.com__;!!Mih3wA!Ek22jIRdqHNmPv2JHH5Y30sEuUXdoVxt0Fk-QFHtEMBBTuqsZd3R2iiv778TR-mZY_w_JHtL9qsbApE$>
> +1 704 920 8487
>
> -------------
>
> Here is an example of the pl/pgsql I am currently using to assemble a
> projection (I have gone through many iterations testing different offsets
> and the different ways to specify the transformation):
> ```
> RETURN '+proj=ob_tran +o_proj=longlat +o_alpha=' || pi()/2+angle || 'r
> +o_lon_c=' || pi()/2+lon || 'r +o_lat_c=' || lat || 'r' proj
> ```
> where (lat, lon, angle) defines a rotation pole.
>
> This results in some geometries (with a fortuitous set of poles, I guess)
> attaining ballpark-correct transformations while other features are shifted
> far outside of their origin tiles.
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
>
> https://urldefense.com/v3/__https://lists.osgeo.org/mailman/listinfo/proj__;!!Mih3wA!Ek22jIRdqHNmPv2JHH5Y30sEuUXdoVxt0Fk-QFHtEMBBTuqsZd3R2iiv778TR-mZY_w_JHtLGSbNb0U$
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20221109/1b2febd3/attachment-0001.htm>


More information about the PROJ mailing list