I have a set of points on the surface of a sphere specified in one coordinate system (specifically, the equatorial coordinate system), and for each point I need to work on all its neighbouring points as if it were on the equator (i.e. as if its elevation were zero).

Specifically, each point is specified by a longitude $\alpha\in[0,2\pi]$ around the system's equator and latitude $\delta\in[-\frac{\pi}{2},\frac{\pi}{2}]$ along a meridian. What I want to do is rotate the equator such that it intersects the point under consideration $(\alpha_0,\delta_0)$ while preserving its longitude; i.e. the point's position becomes $(\alpha_0,0)$.

How should I go about calculating the coordinates of the neighbouring points in the new coordinate system?

P.S. My reason for doing this is to allow me to approximate the space as Euclidean in the vicinity of each point, which only works close to the equator.

  • $\begingroup$ If the longitude's fixed, then you just add/subtract an appropriate amount on the latitude, no? $\endgroup$ Dec 17, 2011 at 17:49
  • $\begingroup$ @J.M. I thought this at first, but what happens when the point is on one of the poles, and you want to know the transformed coordinates of those around it? Longitude becomes singular at the poles; some of the points might have large longitudinal separations simply by virtue of being on opposite sides of the pole, but when translated down to the equator, they'd be longitudinally "closer"... $\endgroup$ Dec 17, 2011 at 17:55
  • $\begingroup$ I would probably convert everything to position vectors with Cartesian coordinates and do an orthogonal projection onto a suitable orthogonal basis of a plane tangent to the sphere at coordinates $(\alpha_0,\delta_0)$. That will give you your Euclidean approximation, and you can convert each point in the neighborhood by just a couple of dot products. $\endgroup$
    – David K
    Jul 26, 2018 at 3:00

1 Answer 1


To make things simpler I assume $\alpha_0=0$ (the desired value of $\alpha_0$ can always be added/subtracted at the end); furthermore I take the equator at $\delta=0$, so the range of the latitude $\delta$ is the interval $[-\pi/2,\pi/2]$. Your change of coordinates amounts to changing the standard basis $(e_1,e_, e_3)$ of ${\mathbb R}^3$ to the new basis

$$\bar e_1=(\cos\delta_0,0,\sin\delta_0), \quad \bar e_2=(0,1,0),\quad \bar e_3=(-\sin\delta_0,0,\cos\delta_0)\ .$$

It follows that the new coordinates $\bar x_k$ are given in terms of the old ones $x_i$ by the formulas

$$\bar x_1=\cos\delta_0 x_1 +\sin\delta_0 x_3, \quad \bar x_2=x_2,\quad \bar x_3=-\sin\delta_0 x_1+\cos\delta_0 x_3\ .$$

Now we have to express this in terms of the "geographical" quantities $\alpha$, $\delta$, resp. $\bar\alpha$, $\bar\delta$. On the one hand we have

$$x_1=\cos\delta\cos\alpha,\quad x_2=\cos\delta\sin\alpha, \quad x_3=\sin\delta\ ,$$

and on the other hand

$$\bar\alpha=\arg\Bigl({\bar x_1\over\rho},{\bar x_2\over\rho}\Bigr), \quad \bar\delta=\arcsin(\bar x_3)\ ,$$

where $\rho:=\sqrt{\bar x_1^2+\bar x_2^2}$. Putting it all together some simplifications will result.

  • $\begingroup$ Perfect, thanks! However, $rho$ doesn't really come into it, does it? It just cancels out in $\arg$. $\endgroup$ Dec 18, 2011 at 10:12
  • $\begingroup$ @Will Vousden: I put in the $\rho$ in case your $\arg$ function only accepts input of absolute value $1$. $\endgroup$ Dec 18, 2011 at 11:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .