# n-vector

n-vector is a three parameter non-singular horizontal position representation well-suited for replacing latitude and longitude in mathematical calculations and computer algorithms. Geometrically, it is a unit vector that is normal to the reference ellipsoid. The vector is decomposed in an Earth centered earth fixed coordinate system. It behaves the same at all Earth positions, and it holds the mathematical one-to-one property.

## General properties

A normal vector to a strictly convex surface can be used to uniquely define a surface position. n-vector is an outward-pointing normal vector with unit length used as a position representation. 

For most applications the surface is the reference ellipsoid of the Earth, and thus n-vector is used to represent a horizontal position. Hence, the angle between n-vector and the equatorial plane corresponds to geodetic latitude, as shown in the figure.

A surface position has two degrees of freedom, and thus two parameters are sufficient to represent any position on the surface. On the reference ellipsoid, latitude and longitude are common parameters for this purpose, but as all two-parameter representations, they have singularities. This is similar to orientation, which has three degrees of freedom, but all three-parameter representations have singularities. In both cases the singularities are avoided by adding an extra parameter, i.e. to use n-vector (three parameters) to represent horizontal position and a unit quaternion (four parameters) to represent orientation.

n-vector is a one-to-one representation, meaning that any surface position corresponds to one unique n-vector, and any n-vector corresponds to one unique surface position.

As a Euclidean 3D vector, standard 3D vector algebra can be used for the position calculations, and this makes n-vector well-suited for most horizontal position calculations.

## Converting latitude/longitude to n-vector

Based on the definition of the ECEF coordinate system, it is clear that going from latitude/longitude to n-vector, is achieved by: $\mathbf n^e=\left[ \begin{matrix} \cos (\mathrm{latitude})\cos (\mathrm{longitude}) \\ \cos (\mathrm{latitude})\sin (\mathrm{longitude}) \\ \sin (\mathrm{latitude}) \\ \end{matrix} \right]$

The superscript e means that n-vector is decomposed in the coordinate system e (i.e. the first component is the scalar projection of n-vector onto the x-axis of e, the second onto the y-axis of e etc.). Note that the equation is exact both for spherical and ellipsoidal Earth model.

## Converting n-vector to latitude/longitude

From the three components of n-vector, $n_x^e$, $n_y^e$, and $n_z^e$, latitude can be found by using: $\mathrm{latitude}=\arcsin\left( n_z^e \right)=\arctan\left( \frac{n_z^e}{\sqrt{{n_x^e}^2+{n_y^e}^2}} \right)$

The rightmost expression is best suited for computer program implementation.

Longitude is found using: $\mathrm{longitude}=\arctan\left(\frac{n_y^e}{n_x^e} \right)$

In these expressions $\arctan(y/x)$ should be implemented using a call to atan2(y,x). The Pole singularity of longitude is evident as atan2(0,0) is undefined. Note that the equations are exact both for spherical and ellipsoidal Earth model.

## Example: Great circle distance

Finding the great circle distance between two horizontal positions (assuming spherical Earth) is usually done by means of latitude and longitude. Three different expressions for this distance are common; the first is based on arccos, the second is based on arcsin, and the final is based on arctan. The expressions, which are successively more complex to avoid numerical instabilities, are not easy to find, and since they are based on latitude and longitude, the Pole singularities may become a problem. They also contain deltas of latitude and longitude, which in general should be used with care near the ±180° meridian and the Poles.

Solving the same problem using n-vector is simpler due to the possibility of using vector algebra. The arccos expression is achieved from the dot product, while the magnitude of the cross product gives the arcsin expression. Combining the two gives the arctan expression: \begin{align} & \Delta \sigma=\arccos\left( \mathbf n_a\cdot \mathbf n_b \right) \\ & \Delta \sigma=\arcsin\left( \left| \mathbf n_a\times \mathbf n_b \right| \right) \\ & \Delta \sigma=\arctan\left( \frac{\left| \mathbf n_a\times \mathbf n_b \right|}{\mathbf n_a\cdot \mathbf n_b} \right) \\ \end{align}

where $\mathbf n_a$ and $\mathbf n_b$ are the n-vectors representing the two positions a and b. $\Delta\sigma$ is the angular difference, and thus the great-circle distance is achieved by multiplying with the Earth radius. This expression also works at the poles and at the ±180° meridian. Note that arctan must be replaced by atan2 in computer program implementation.

There are several other examples where the use of vector algebra simplifies standard problems. For a general comparison of the various representations, see the horizontal position representations page.