({{, (RefLink[GeodesyData, paclet:ref/GeodesyData])["name","property"] 
gives the value of the specified property for a named geodetic datum or reference ellipsoid.}, {, (RefLink[GeodesyData, paclet:ref/GeodesyData])[{a,b},"property"]
gives the value of the property for the ellipsoid with semimajor axis a and semiminor axis b.}, {, (RefLink[GeodesyData, paclet:ref/GeodesyData])[obj,{"property",coords}]
gives the value of the property at the specified coordinates.}})

OpenersNotesSection(Spacer1)Details

(RefLink[GeodesyData, paclet:ref/GeodesyData])[] gives a list of all available named geodetic datums and reference ellipsoids.

Geodetic datums are specified by standard names such as "NAD27" and "ITRF00".

Reference ellipsoids are given standard names such as "Clarke1866" and "GRS80".

(RefLink[GeodesyData, paclet:ref/GeodesyData])["Datum"] gives the names of all available named geodetic datums; (RefLink[GeodesyData, paclet:ref/GeodesyData])["ReferenceEllipsoid"] gives those of all available named reference ellipsoids.

(RefLink[GeodesyData, paclet:ref/GeodesyData])["datum","ReferenceEllipsoid"] gives the name of the reference ellipsoid associated with the specified datum.

Basic geometrical properties include:

Additional geometrical properties include:

Coordinate-dependent properties include:

Properties converting from geodetic latitude to alternative forms of latitude include:

Properties converting from alternative forms of latitude to geodetic latitude include:

Other properties include:

Reference ellipsoids can be specified by semiaxes {a,b} or by semimajor axis and inverse flattening {a,{invf}}.

Input latitudes can be given as numbers in degrees or as (RefLink[Quantity, paclet:ref/Quantity]) angles. Semiaxis lengths in input can be given as numbers in meters or as (RefLink[Quantity, paclet:ref/Quantity]) lengths.

Angular results are given as (RefLink[Quantity, paclet:ref/Quantity]) angles in degrees. Distance results are given as (RefLink[Quantity, paclet:ref/Quantity]) lengths in meters.

(RefLink[GeodesyData, paclet:ref/GeodesyData]) gives symbolic results if the parameters of a reference ellipsoid are given symbolically.

(RefLink[GeodesyData, paclet:ref/GeodesyData])[{(Subscript[datum, 1]),(Subscript[datum, 2])}] gives rules for the parameters used to transform (Subscript[datum, 1]) to (Subscript[datum, 2]).

(RefLink[GeodesyData, paclet:ref/GeodesyData])[{(Subscript[datum, 1]),(Subscript[datum, 2])},"param"] gives the specified parameter for transforming from (Subscript[datum, 1]) to (Subscript[datum, 2]).

Transformation parameters for datums include:

OpenersPrimaryExamplesSection(Spacer1)Examples  (24)

OpenersExampleSection0(Spacer1)Basic Examples  (4)

Semiaxes of Clarke1866:

GeodesyData["Clarke1866","EllipsoidParameters"]

Semimajor axis and inverse flattening of GRS80:

GeodesyData["GRS80","EllipsoidParameters"]

Eccentricity of the GRS80 reference ellipsoid:

GeodesyData["GRS80","Eccentricity"]

The 14 parameters required to transform from ITRF00 to NAD83CORS96:

GeodesyData[{"ITRF00","NAD83CORS96"}] // Column

OpenersExampleSection1(Spacer1)Scope  (17)

OpenersExampleSubsection0(Spacer1)Names and Classes  (3)

List of all available named datums and reference ellipsoids:

GeodesyData[]

Length[%]

Standard name of a datum in the Wolfram Language:

GeodesyData["ITRF00","StandardName"]

English name of a datum:

GeodesyData["ITRF00","Name"]

Alternate names:

GeodesyData["ITRF00","AlternateNames"]

List of available classes:

GeodesyData["Classes"]

List of available named datums:

GeodesyData["Datum"]

List of available reference ellipsoids:

GeodesyData["ReferenceEllipsoid"]

List of direct datum transformations with available data:

GeodesyData["DatumTransformation"]

Graph of those direct transformations:

Graph[UndirectedEdge@@@Union[Sort/@%],VertexLabels->Placed["Name",Center],VertexSize->0]

OpenersExampleSubsection1(Spacer1)Properties and Values for Reference Ellipsoids  (8)

List of available properties:

GeodesyData["Properties"]

An ellipsoid of revolution is characterized by the semiaxes lengths {a,b} of a vertical section:

GeodesyData["Bessel1841","EllipsoidParameters"]

%==={GeodesyData["Bessel1841","SemimajorAxis"],GeodesyData["Bessel1841","SemiminorAxis"]}

Or by the semimajor axis a and the inverse flattening (1/f)=(a/(a-b)):

GeodesyData["GRS80","EllipsoidParameters"]

%==={GeodesyData["GRS80","SemimajorAxis"],{GeodesyData["GRS80","InverseFlattening"]}}

The shape of an ellipse of semiaxes {a,b} can be described by the eccentricity e=(Sqrt[1-((b^2)/(a^2))]):

GeodesyData["Clarke1866","Eccentricity"]

The second eccentricity e=(Sqrt[((a^2)/(b^2))-1]):

GeodesyData["Clarke1866","SecondEccentricity"]

The flattening f=1-(b/a):

GeodesyData["Clarke1866","Flattening"]

Or its inverse 1/f:

GeodesyData["Clarke1866","InverseFlattening"]

Specify an arbitrary oblate ellipsoid by giving the semiaxis lengths:

GeodesyData[{a,b},"Eccentricity"]

GeodesyData[{a,b},"SecondEccentricity"]

GeodesyData[{a,b},"Flattening"]

GeodesyData[{a,b},"InverseFlattening"]

Specify the semimajor axis and the inverse flattening:

Simplify[GeodesyData[{a,{if}},"Eccentricity"],{a>0,if>0}]

Simplify[GeodesyData[{a,{if}},"SecondEccentricity"],{a>0,if>0}]

Simplify[GeodesyData[{a,{if}},"Flattening"]]

Simplify[GeodesyData[{a,{if}},"InverseFlattening"]]

The Earth is nearly spherical:

GeodesyData["WGS84","SemimajorAxis"]

GeodesyData["WGS84","SemiminorAxis"]

Therefore, the various concepts of radius have similar values and are also similar to the semiaxes lengths:

GeodesyData["WGS84","AuthalicRadius"]

GeodesyData["WGS84","MeanRadius"]

GeodesyData["WGS84","MeanMassRadius"]

GeodesyData["WGS84","VolumetricRadius"]

With symbolic input:

GeodesyData[{a,b},"AuthalicRadius"]

GeodesyData[{a,b},"MeanRadius"]

GeodesyData[{a,b},"MeanMassRadius"]

GeodesyData[{a,b},"VolumetricRadius"]

On an ellipsoid, the curvature radius of a meridian varies with latitude, specified as a number in degrees:

GeodesyData["WGS72",{"MeridionalCurvatureRadius",25}]

Latitude can also be given as a (RefLink[Quantity, paclet:ref/Quantity]) angle:

GeodesyData["WGS72",{"MeridionalCurvatureRadius",Quantity[1,"Radians"]}]

Curvature radius of the normal section perpendicular to the meridian:

GeodesyData["WGS72",{"PrimeVerticalCurvatureRadius",25}]

Curvature radius of a normal section of a given azimuth, measured clockwise from north:

GeodesyData["WGS72",{"NormalSectionCurvatureRadius",25,45}]

Plot all possible values of the curvature radius of normal sections of the ellipsoid:

Plot3D[QuantityMagnitude@GeodesyData["WGS72",{"NormalSectionCurvatureRadius",ϕ,a}],{ϕ,0,90},{a,0,90}]

Convert from geodetic latitude to other types of latitude, and back to geodetic latitude:

GeodesyData["Krassovsky",{"AuthalicLatitude",40}]

GeodesyData["Krassovsky",{"FromAuthalicLatitude",%}]

GeodesyData["Krassovsky",{"ConformalLatitude",40}]

GeodesyData["Krassovsky",{"FromConformalLatitude",%}]

GeodesyData["Krassovsky",{"GeocentricLatitude",40}]

GeodesyData["Krassovsky",{"FromGeocentricLatitude",%}]

GeodesyData["Krassovsky",{"IsometricLatitude",40}]

GeodesyData["Krassovsky",{"FromIsometricLatitude",%}]

GeodesyData["Krassovsky",{"ReducedLatitude",40}]

GeodesyData["Krassovsky",{"FromReducedLatitude",%}]

GeodesyData["Krassovsky",{"RectifyingLatitude",40}]

GeodesyData["Krassovsky",{"FromRectifyingLatitude",%}]

Compute lengths along meridians. This is a quadrant (equator to pole):

GeodesyData["Airy1830","MeridianQuadrant"]

%==GeodesyData["Airy1830",{"MeridionalArc",0,90}]

Distance is not proportional to difference in geodetic latitude:

GeodesyData["Airy1830",{"MeridionalArc",0,45}]

GeodesyData["Airy1830",{"MeridionalArc",45,90}]

OpenersExampleSubsection2(Spacer1)Properties and Values for Datums and Datum Transformations  (6)

Each datum has an associated reference ellipsoid:

GeodesyData["ITRF00","ReferenceEllipsoid"]

Different datums may have the same reference ellipsoid but differ in position or orientation:

GeodesyData[#,"ReferenceEllipsoid"]&/@{"BTS84","ETRS89","GDA94","ITRF00","NAD83HARN","SIRGAS"}

Most properties of a datum are just properties of its ellipsoid:

GeodesyData["ITRF00","MeridianQuadrant"]

%===GeodesyData["GRS80","MeridianQuadrant"]

The WGS 84 datum has been updated but the ellipsoid parameters have been kept:

GeodesyData[#,"ReferenceEllipsoid"]&/@{"WGS84Original","WGS84G730","WGS84G873"}

A transformation between datums is represented as a pair:

GeodesyData[{"NAD83CORS96","ITRF97"},"Properties"]

The relation between two datums is encoded in the seven parameters of a Helmert transformation:

GeodesyData[{"ITRF90","WGS84Original"},"Translation"]

GeodesyData[{"ITRF90","WGS84Original"},"Rotation"]

GeodesyData[{"ITRF90","WGS84Original"},"Scale"]

The relation between some datums changes in time. These are the parameters at definition time:

GeodesyData[{"ITRF96","ITRF97"},"Translation"]

GeodesyData[{"ITRF96","ITRF97"},"Rotation"]

GeodesyData[{"ITRF96","ITRF97"},"Scale"]

GeodesyData[{"ITRF96","ITRF97"},"ParameterDefinitionYear"]

These are their variations per year:

GeodesyData[{"ITRF96","ITRF97"},"TranslationDerivative"]

GeodesyData[{"ITRF96","ITRF97"},"RotationDerivative"]

GeodesyData[{"ITRF96","ITRF97"},"ScaleDerivative"]

OpenersExampleSection3(Spacer1)Applications  (1)

Perform a change of datum using (RefLink[GeoPositionXYZ, paclet:ref/GeoPositionXYZ]). Take the {0,0} point in the "NAD27" datum:

pNAD27=GeoPositionXYZ[GeoPosition[{0,0},"NAD27"]]

Transform it to the "WGS72" datum:

pWGS72=GeoPositionXYZ[pNAD27,"WGS72"]

In the new datum, the same point has different latitude and longitude values and nonzero height:

GeoPosition[pWGS72]

The origins of the datums are related by a translation, in meters:

t=GeodesyData[{"NAD27","WGS72"},"Translation"]

There is also a change of length, in units of (10^(-8)):

s=GeodesyData[{"NAD27","WGS72"},"Scale"](10^(-8))//N

And a small rotation, encoded as a vector in milliarcseconds:

{rx,ry,rz}=GeodesyData[{"NAD27","WGS72"},"Rotation"]Degree/1000/3600//N

m=IdentityMatrix[3]+{{0,rz,-ry},{-rz,0,rx},{ry,-rx,0}}

This is the seven-parameter Helmert transformation of the original coordinates:

(1+s)m.First[pNAD27]+t

%==pWGS72[[1]]

OpenersExampleSection4(Spacer1)Properties & Relations  (2)

Distance computations along meridians can also be performed with (RefLink[GeoDistance, paclet:ref/GeoDistance]):

GeodesyData["ITRF90",{"MeridionalArc",20,65}]

%==GeoDistance[GeoPosition[{20,0},"ITRF90"],GeoPosition[{65,0},"ITRF90"]]

The result is independent of longitude:

%%==GeoDistance[GeoPosition[{20,-55},"ITRF90"],GeoPosition[{65,-55},"ITRF90"]]

Meridians are normal sections of zero azimuth:

GeodesyData[{a,b},{"MeridionalCurvatureRadius",50}]

%===GeodesyData[{a,b},{"NormalSectionCurvatureRadius",50,0}]

The prime vertical curvature is that of the meridian-perpendicular normal section:

GeodesyData[{a,b},{"PrimeVerticalCurvatureRadius",50}]

%===GeodesyData[{a,b},{"NormalSectionCurvatureRadius",50,90}]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[GeoPosition, paclet:ref/GeoPosition])  ▪  (RefLink[GeoPositionXYZ, paclet:ref/GeoPositionXYZ])  ▪  (RefLink[GeoGridPosition, paclet:ref/GeoGridPosition])  ▪  (RefLink[GeoProjectionData, paclet:ref/GeoProjectionData])  ▪  (RefLink[PlanetData, paclet:ref/PlanetData])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[GeoGraphics, paclet:tutorial/GeoGraphics])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Geodesy, paclet:guide/Geodesy])}, {▪(RefLinkPlain[Earth Sciences: Data & Computation, paclet:guide/EarthSciencesDataAndComputation])}})}})