Vector transform: Spherical coordinates in one frame to another, staying in spherical

3.7k Views Asked by At

I have several vectors in spherical co-ordinates, i.e: $[v_r, v_\theta, v_\phi]$. My issue arises when because they are in different reference frames.

One is about the geographic pole of the earth, whilst the others are about the geomagnetic pole. These vectors are at the same position geomagnetically, just that their components point in different directions (the north/south $v_\theta$ component of the vectors point towards different poles.

I'm aware I need some rotational matrix to convert one to the other, such that:

$v'=[T]v$

where v' is the reference frame I want to rotate to, but can't seem to find one for a spherical basis. How do I convert my spherical component vector in geographic co-ordinates to a spherical component vector in geomagnetic?

1

There are 1 best solutions below

0
On

Pole_change

Let's work in geographical spherical coordinates with $ - \pi < \text{longitude}\;\phi \leqslant \pi ,\quad - \pi /2 \leqslant \text{latitude}\;\theta \leqslant \pi /2$.
We take $\rho =1$.
We need to pass to a new reference where the North Pole is shifted in position $(\phi,\theta)$, that is from $z$ to $z'$ in the draw above.
Let's choice and fix the new cartesian reference system (axes $x',y',z'$) with $z'$ to be the new polar axis, $x'$ to be along the meridian of the new pole, $y'$ to remain in the equatorial plane. That is, the new system is obtained by rotating the old around $z$ by $\phi$, and then around $y'$ by $\pi/2 -\theta$.
Other choices would be possible, but this should fit to your needs.
Let us call $\mathbf{i},\;\mathbf{j},\;\mathbf{k}$ the unitary vectors along the axes, then we have $$ \left( {\begin{array}{*{20}c} {\mathbf{i'}} \\ {\mathbf{j'}} \\ {\mathbf{k'}} \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {\sin \theta \cos \phi } & {\sin \theta \sin \phi } & { - \cos \theta } \\ { - \sin \phi } & {\cos \phi } & 0 \\ {\cos \theta \cos \phi } & {\cos \theta \sin \phi } & {\sin \theta } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} \mathbf{i} \\ \mathbf{j} \\ \mathbf{k} \\ \end{array} } \right) $$ where $$ {\bf T}(\phi ,\theta ) = \left( {\matrix{ {\sin \theta \cos \phi } & {\sin \theta \sin \phi } & { - \cos \theta } \cr { - \sin \phi } & {\cos \phi } & 0 \cr {\cos \theta \cos \phi } & {\cos \theta \sin \phi } & {\sin \theta } \cr } } \right)\quad \left\{ \matrix{ {\bf e'} = {\bf T}\;{\bf e}\quad {\bf e} = \overline {\bf T} \;{\bf e'} \hfill \cr \overline {\bf T} = {\rm transposed}({\bf T}) \hfill \cr {\bf T}\;\overline {\bf T} = {\bf T}\;{\bf T}^{\, - \,1} = {\bf I} \hfill \cr} \right. $$

Now, if we have a vector $\mathbf u =(\rho, \phi = \alpha, \theta = \beta)$ expressed in the original spherical coordinates,

  • we can first tranform it into cartesian coordinates, in the same original system: $$ \mathbf{u} = \left( {\begin{array}{*{20}c} \rho \\ \alpha \\ \beta \\ \end{array} } \right)\quad \to \quad \mathbf{v} = \left( {\begin{array}{*{20}c} x \\ y \\ z \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {\rho \cos \beta \cos \alpha } \\ {\rho \cos \beta \sin \alpha } \\ {\rho \sin \beta } \\ \end{array} } \right) $$
  • Then apply the change of reference $$ \eqalign{ & {\bf v} = \left( {\matrix{ x \cr y \cr z \cr } } \right) = \left( {x,y,z} \right)\;\left( {\matrix{ {\bf i} \cr {\bf j} \cr {\bf k} \cr } } \right) = \left( {x,y,z} \right)\;\overline {\bf T} (\phi ,\theta )\;\left( {\matrix{ {{\bf i'}} \cr {{\bf j'}} \cr {{\bf k'}} \cr } } \right) = \cr & = \overline {{\bf T}(\phi ,\theta )\;\left( {\matrix{ x \cr y \cr z \cr } } \right)} \;\;\left( {\matrix{ {{\bf i'}} \cr {{\bf j'}} \cr {{\bf k'}} \cr } } \right)\quad \Rightarrow \quad {\bf v}' = \left( {\matrix{ {x'} \cr {y'} \cr {z'} \cr } } \right) = {\bf T}(\phi ,\theta )\;\left( {\matrix{ x \cr y \cr z \cr } } \right) \cr} $$
  • and finally revert to spherical coordinates $$ \mathbf{v}' = \left( {\begin{array}{*{20}c} {x'} \\ {y'} \\ {z'} \\ \end{array} } \right)\quad \to \quad \mathbf{u}' = \left( {\begin{array}{*{20}c} {\rho '} \\ {\alpha '} \\ {\beta '} \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {\sqrt {x'^2 + y'^2 + z'^2 } } \\ {\arctan _4 \left( {y'/x'} \right)} \\ {\arctan \left( {z'/\sqrt {x'^2 + y'^2 + z'^2 } } \right)} \\ \end{array} } \right) $$ Of course we will have that $\rho=\rho'$