geoc2geod

Convert geocentric latitude to geodetic latitude

Syntax

geodeticLatitude = geoc2geod(geocentricLatitude, radii)
geodeticLatitude = geoc2geod(geocentricLatitude, radii, model)
geodeticLatitude = geoc2geod(geocentricLatitude, radii, flattening, equatorialRadius)

Description

geodeticLatitude = geoc2geod(geocentricLatitude, radii) converts an array of m-by-1 geocentric latitudes and an array of radii from the center of the planet into an array of m-by-1 geodetic latitudes.

geodeticLatitude = geoc2geod(geocentricLatitude, radii, model) converts for a specific ellipsoid planet.

geodeticLatitude = geoc2geod(geocentricLatitude, radii, flattening, equatorialRadius) converts for a custom ellipsoid planet defined by flattening and the equatorial radius.

The function uses geometric relationships to calculate the geodetic latitude in this noniterative method.

This function has the limitation that this implementation generates a geodetic latitude that lies between ±90 degrees.

Input Arguments

geocentricLatitude

Array of m-by-1 geocentric latitudes, in degrees. Latitude values can be any value. However, values of +90 and -90 may return unexpected values because of singularity at the poles.

radii

Array of radii from the center of the planet, in meters.

model

Specific ellipsoid planet. This function supports only 'WGS84'.

flattening

Custom ellipsoid planet defined by flattening.

equatorialRadius

Equatorial radius, in meters.

Output Arguments

geodeticLatitude

Array of m-by-1 geodetic latitudes, in degrees.

Examples

Determine geodetic latitude given a geocentric latitude and radius:

gd = geoc2geod(45, 6379136)


gd =

   45.1921

Determine geodetic latitude at multiple geocentric latitudes, given a radius, and specifying WGS84 ellipsoid model:

gd = geoc2geod([0 45 90], 6379136, 'WGS84')


gd =

         0   45.1921   90.0000

Determine geodetic latitude at multiple geocentric latitudes, given a radius, and specifying custom ellipsoid model:

f = 1/196.877360;
Re = 3397000;
gd = geoc2geod([0 45 90], 6379136, f, Re)


gd =

         0   45.1550   90.0000

Algorithms

The geoc2geod function converts a geocentric latitude (λ) into geodetic latitude (μ), where:

  • λ — Geocentric latitude

  • μ — Geodetic latitude

  • r — Radius from the center of the planet (radii)

  • f — Flattening

  • a — Equatorial radius of the plant (semi-major axis) (equatorialRadius)

Given geocentric latitude (λ) and the radius (r) from the center of the planet, this function first converts the desired points into the distance from the polar axis (ρ) and the distance from the equatorial axis (z).

ρ=r(cos(λ))z=r(sin(λ)).

It then calculates the geometric properties of the planet:

b=a(1f)e2=f(2f)e'2=e2(1e2).

And then uses the fixed-point iteration of Bowring's formula to calculate μ. This formula typically converges in three iterations.

β=tan1((1f)sin(μ)cos(μ))μ=tan1(z+be'2sin(β)3ρae2cos(β)3).

References

Jackson, E.B., Manual for a Workstation-based Generic Flight Simulation Program (LaRCsim) Version 1.4, NASA TM 110164, April 1995

Hedgley, D. R., Jr., An Exact Transformation from Geocentric to Geodetic Coordinates for Nonzero Altitudes, NASA TR R-458, March, 1976

Clynch, J. R.. "Radius of the Earth - Radii Used in Geodesy." Naval Postgraduate School, Monterey, California, 2002.

Stevens, B. L., and F. L. Lewis, Aircraft Control and Simulation, John Wiley & Sons, New York, NY, 1992

Edwards, C. H., and D. E. Penny, Calculus and Analytical Geometry, 2nd Edition, Prentice-Hall, Englewood Cliffs, NJ, 1986

Introduced in R2006b