Gnomonic projection

From David's Wiki
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

The Gnomonic projection is projecting from the center of a sphere to a tangent plane. Node that this projection can not visualize more than the surface of a hemisphere. Visualizing a hemisphere would require an infinitely large plane.

Equations

Gnomonic Projection

Copied from Mathworld

Inputs:

  • \(\displaystyle (\lambda, \phi)\) Current spherical coordinate with longitude \(\displaystyle \lambda\) and latitude \(\displaystyle \phi\)
  • \(\displaystyle (\lambda_0, \phi_1)\) Spherical coordinate of tangent plane.

Outputs:

  • \(\displaystyle (x,y) \in (-\infty, \infty) \times (-\infty, \infty)\) Cartesian coordinates.

\(\displaystyle x = \frac{\cos(\theta)\sin(\lambda - \lambda_0)}{\cos(c)}\)
\(\displaystyle y = \frac{\cos(\phi_1)\sin(\phi)-\sin(\phi_1)\cos(\phi)\cos(\lambda - \lambda_0)}{\cos(c)}\)
where \(\displaystyle c\) is the angular distance of the point \(\displaystyle (x,y)\) from the center of the projection, given by
\(\displaystyle \cos(c) = \sin(\phi_1)\sin(\phi) + \cos(\phi_1)\cos(\phi)\cos(\lambda-\lambda_0)\)

Inverse Gnomonic Projection

Copied from Mathworld
\(\displaystyle \phi = \sin^{-1}\left(\cos(c)\sin(\phi_1) + \frac{y\sin(c)\cos(\phi_1)}{\rho}\right)\)
\(\displaystyle \lambda = \lambda_0 + \tan^{-1}\left(\frac{x \sin(c)}{\rho \cos(\phi_1) \cos(c) - y\sin(\phi_1)\sin(c)}\right)\)
where
\(\displaystyle \rho=\sqrt{x^2 + y^2}\)
\(\displaystyle c = \tan^{-1}(\rho)\)

References