Main Content

Work with Reference Spheroids

Reference spheroids are needed in three main contexts: map projections, curves and areas on the surface of a spheroid, and 3-D computations involving geodetic coordinates.

Map Projections

You can set the value of the Geoid property of a new axesm-based map (which is actually a Spheroid property) using any type of reference spheroid representation. Except in the case of UTM and UPS, the default value is an ellipsoid vector representing the unit sphere: [1 0]. It is also the default value when using the worldmap and usamap functions.

You can reset the Geoid property of an existing axesm-based map to any type of reference spheroid representation by using setm. For example, worldmap always sets up a projection based on the unit sphere but you can subsequently use setm to switch to the spheroid of your choice. To set up a map of North America for use with Geodetic Reference System 1980, for instance, follow worldmap with a call to setm, like this:

ax = worldmap('North America');
setm(ax,'geoid',referenceEllipsoid('grs80'))

When projecting or unprojecting data without an axesm-based map, you can set the geoid field of a map projection structure (mstruct) to any type of reference spheroid representation. Remember to follow all mstruct updates with a second call to defaultm to ensure that all properties are set to legitimate values. For example, to use the Miller projection with WGS 84 in kilometers, start with:

mstruct = defaultm('miller');
mstruct.geoid = wgs84Ellipsoid('km');
mstruct = defaultm(mstruct);

You can inspect the mstruct to ensure that you are indeed using the WGS 84 ellipsoid:

mstruct.geoid
ans = 

referenceEllipsoid with defining properties:

                 Code: 7030
                 Name: 'World Geodetic System 1984'
           LengthUnit: 'kilometer'
        SemimajorAxis: 6378.137
        SemiminorAxis: 6356.75231424518
    InverseFlattening: 298.257223563
         Eccentricity: 0.0818191908426215

  and additional properties:

    Flattening
    ThirdFlattening
    MeanRadius
    SurfaceArea
    Volume

See axesm-Based Map Properties for definitions of the fields found in mstructs.

Curves and Areas

Another important context in which reference spheroids appear is the computation of curves and areas on the surface of a sphere or oblate spheroid. The distance function, for example, assumes a sphere by default, but accepts a reference spheroid as an optional input. distance is used to compute the length of the geodesic or rhumb line arc between a pair of points with given latitudes and longitudes. If a reference spheroid is provided through the ellipsoid argument, then the unit used for the arc length output matches the LengthUnit property of the spheroid.

Other functions for working with curves and areas that accept reference spheroids include reckon, scircle1, scircle2, ellipse1, track1, track2, and areaquad, to name just a few. When using such functions without their ellipsoid argument, be sure to check the individual function help if you are unsure about which reference spheroid is assumed by default.

3-D Coordinate Transformations

The third context in which reference spheroids frequently appear is the transformation of geodetic coordinates (latitude, longitude, and height above the ellipsoid) to other coordinate systems. For example, the geodetic2ecef function, which converts point locations from a geodetic system to a geocentric (Earth-Centered Earth-Fixed) Cartesian system, requires a reference spheroid object (or an ellipsoid vector) as input.