[Math] Lat/Lon Coordinates of a Circle on a Sphere

circlesspheresspherical coordinates

I've a similar problem as talked about in this question: Circle On Sphere

I also need a set of formulas which give me the coordinates of a circle on a sphere (something like $x = \sin(t)$, $y = \cos(t)$ for $t \in [0, 2\pi )$). But I do not need Cartesian coordinates (x, y) but latitude and longitude.

I could, of course, use the answer from the question linked above and then convert the x,y,z points I get back into latitude and longitude values (using arctan(), etc). This sounds complex and I've got the feeling that there might be a more clever way of avoiding the Cartesian coordinates, i. e. I guess there are formulas which directly spit out latitudes and longitudes for $t \in [0, 2\pi)$.

Is there such a "shortcut" available?

Best Answer

A handy formula for the great-circle distance between two points in spherical coordinates, one at latitude $\theta$ and longitude $\phi$ and the other at latitude $\theta_0$ and longitude $\phi_0,$ measuring latitude from $-\frac\pi2$ to $\frac\pi2,$ is $$ d=2\sin^{-1}\sqrt{\sin^2\frac{\theta-\theta_0}2 + \cos\theta\cos\theta_0 \sin^2\frac{\phi-\phi_0}2}, $$ where $d$ is the great-circle distance measured in units such that the sphere's radius is $1$ (adapted from Aviation Formulary V1.46 by Ed Williams with some renaming of variables).

The range of latitudes used in this formula is due to the fact that it is intended for navigation in conventional geodetic coordinates on the Earth, converting the degrees of latitude and longitude to radians but not doing the extra transformations that would be required to make latitude range from $0$ to $\pi.$ If you prefer a latitude that ranges from $0$ to $\pi$ the formula would need some adjustment (specifically, change $\cos\theta\cos\theta_0$ to $\sin\theta\sin\theta_0$).

Take $(\theta_0,\phi_0)$ as the center of a small circle, $d$ as the radius (measured along the surface of the sphere) of the circle, and $(\theta,\phi)$ as any point on the circumference. For simplicity of the mathematics, let's assume angles are measured in radians. Assuming the radius of the small circle is less than the distance from the center to a pole, we can easily see that the minimum and maximum values of $\theta$ occur when $\phi = \phi_0$: $\theta_\min = \theta_0 - d$ and $\theta_\max = \theta_0 + d.$ If the small circle is closer to a pole, however, we need to do some further operations to get minimum and maximum latitudes that are in the correct range. For example, assuming that one pole of the sphere is at latitude $\frac\pi2,$ if $\theta_0 + d > \frac\pi2$ we take $\theta_\max = \pi - (\theta_0 + d).$

Once we have established the correct interval of values of $\theta$ that can be the latitudes of points on the small circle, we can choose any $\theta$ in that interval and solve for $\phi$: $$ \phi = \phi_0 \pm 2\sin^{-1}\sqrt{\frac {\sin^2\frac d2 - sin^2\frac{\theta-\theta_0}2} {\cos\theta\cos\theta_0}}, $$

It's up to you to decide whether that's preferable to finding Cartesian coordinates $(x,y,z)$ for points on the circle and then converting them to spherical coordinates. (For one thing, the solution above is parameterized by latitude and not by direction from the center of the circle as is done in Circle On Sphere.)