DatumIn surveying and geodesy, a datum is a reference point or surface against which position measurements are made, and an associated model of the shape of the earth for computing positions. Horizontal datums are used for describing a point on the earth's surface, in latitude and longitude or another coordinate system. Vertical datums are used to measure elevations or underwater depths. Horizontal datumsThe horizontal datum is the model used to measure positions on the earth. A specific point on the earth can have substantially different coordinates, depending on the datum used to make the measurement. There are hundreds of locally-developed horizontal datums around the world, usually referenced to some convenient local reference point. Contemporary datums, based on increasingly accurate measurements of the shape of the earth, are intended to cover larger areas. The WGS84 datum, which is almost identical to the NAD83 datum used in North America, is a common standard datum. Vertical datumA vertical datum is used for measuring the elevations of points on the earth's surface. Vertical data are either tidal, based on sea levels, gravimetric, based on a geoid, or geodetic, based on the same ellipsoid models of the earth used for computing horizontal datums. In common usage, elevations are often cited in height above sea level; this is a widely used tidal datum. Because ocean tides cause water levels to change constantly, the sea level is generally taken to be some average of the tide heights. Mean lower low water — the average of the lowest points the tide reached on each day during a measuring period of several years — is the datum used for measuring water depths on some nautical charts, for example; this is called the chart datum. Whilst the use of sea-level as a datum is useful for geologically recent topographic features, sea level has not stayed constant throughout geological time, so is less useful when measuring very long-term processes. A geodetic vertical datum takes some specific zero point, and computes elevations based on the geodetic model being used, without further reference to sea levels. Usually, the starting reference point is a tide gauge, so at that point the geodetic and tidal datums might match, but due to sea level variations, the two scales may not match elsewhere. One example of a geoid datum is NAVD88, used in North America, which is referenced to a point in Quebec, Canada. Geodetic coordinates
The same position on a spheroid has a different angle for latitude depending on whether the angle is measured from the normal (angle α) or around the center (angle β). Note that the "flatness" of the spheroid (orange) in the image is greater than that of the Earth; as a result, the corresponding difference between the "geodetic" and "geocentric" latitudes is also exaggerated.
In geodetic coordinates the Earth's surface is approximated by an ellipsoid and locations near the surface are described in terms of latitude (φ), longitude (λ) and height (h). The ellipsoid is completely parameterised by the semi-major axis a and the flattening f. Geodetic versus geocentric latitudeIt is important to note that geodetic latitude (φ) is different than geocentric latitude (φ'). Geodetic latitude is determined by the angle between the normal of the spheroid and the plane of the equator, whereas geocentric latitude is determined around the centre (see figure). Unless otherwise specified latitude is geodetic latitude. Geodetic defining parameters
Geodetic derived geometric constantsFrom a and f it is possible to derive the semi-minor axis b, first eccentricity e and second eccentricity e′ of the ellipsoid
Parameters for some geodetic systemsA more comprehensive list of geodetic systems can be found here Australian Geodetic Datum 1966 [AGD66] and Australian Geodetic Datum 1984 (GDA84)AGD66 and AGD84 both use the parameters defined by Australian National Spheroid (see below) Australian National Spheroid (ANS)
Geocentric Datum of Australia 1994 (GDA94) and Geocentric Datum of Australia 2000 (GDA2000)Both GDA94 and GDA2000 use the parameters defined by GRS80 (see below) Geodetic Reference System 1980 (GRS80)
see GDA Technical Manual document for more details. World Geodetic System 1984 (WGS84)The global positioning system (GPS) uses the world geodetic system 1984 (WGS84) to determine the location of a point near the surface of the Earth.
see The official World Geodetic System 1984 document for more details. Other Earth based coordinate systemsEarth Centred Earth Fixed (ECEF) coordinatesThe Earth-centred Earth-fixed (ECEF) or conventional terrestrial coordinate system rotates with the Earth and has its origin at the centre of the Earth. The X axis passes through the equator at the prime meridian. The Z axis passes through the north pole. The Y axis can be determined by the right-hand rule to be passing through the equator at 90o longitude. Local east, north, up (ENU) coordinatesIn many targeting and tracking applications the local East, North, Up (ENU) Cartesian coordinate system is far more intuitive and practical than ECEF or Geodetic coordinates. The local ENU coordinates are formed from a plane tangent to the Earth's surface fixed to a specific location and hence it is sometimes known as a "Local Tangent" or "local geodetic" plane. By convention the east axis is labeled x, the north y and the up z. Local north, east, down (NED) coordinatesIn an aeroplane most objects of interest are below you, it is therefore sensible to define down as a positive number, the NED coordinates allow you to do this as an alternative the ENU local tangent plane. By convention the north axis is labeled x', the east y' and the down z'. To avoid confusion between x and x', etc in this web page we will restrict the local coordinate frame to ENU. ConversionFrom geodetic coordinates to local ENU coordinatesTo convert from geodetic coordinates to local ENU up coordinates is a two stage process
From geodetic to ECEF coordinatesGeodetic coordinates (latitude φ, longitude λ, height h) can be converted into ECEF coordinates using the following formulae:
Where From ECEF to ENU CoordinatesTo transform from ECEF coordinates to the local coordinates we need a local reference point, typically this might be the location of the radar. If a radar is located at {Xr,Yr,Zr} and an aircraft at {Xp,Yp,Zp} then the vector pointing from the radar to the aircraft in the ENU frame is
Note: φ is the geodetic latitude. A prior version of this page showed use of the geocentric latitude (φ'). The geocentric latitude is not the appropriate up direction for the local tangent plane. If the original geodetic latitude is available it should be used, otherwise, the relationship between geodetic and geocentric latitude has an altitude dependency, and is captured by:
Note that Obtaining geodetic latitude from geocentric coordinates from this relationship requires an iterative solution approach, otherwise the geodetic coordinates may be computed via the approach in the section below labeled "From ECEF to geodetic coordinates." Reference http://psas.pdx.edu/CoordinateSystem/Latitude_to_LocalTangent.pdf for another example of computing ENU coordinates. The geocentric and geodetic longitude have the same value. This is true for the Earth and other similar shaped planets because their latitude lines (parallels) can be considered in much more degree perfect circles when compared to their longitude lines (meridians).
Note: Unambiguous determination of φ and λ requires knowledge of which quadrant the coordinates lie in. From local ENU coordinates to geodetic coordinatesAs before it is done in two stages
From ENU to ECEFThis is just the inversion of the ECEF to ENU transformation so
From ECEF to geodetic coordinatesThe conversion of ECEF coordinates to geodetic coordinates (such WGS84) is a much harder problem. A number of techniques are available but the most accurate according to Zhu (Ref 6), is the following 15 step procedure summarised by Kaplan. It is assumed that geodetic parameters {a,b,e,e'} are known
Note: arctan2[Y,X] is the four quadrant inverse tangent function From WGS-84 to ENU: sample codeThis code was written in MATLAB. This would be useful for converting GPS measurements into the local ENU coordinate system. Step 1: Convert WGS-84 to ECEFfunction X,Y,Z = llh2xyzTest(lat,long, h) % Convert lat, long, height in WGS84 to ECEF X,Y,Z % lat and long given in decimal degrees. % altitude should be given in meters lat = lat/180*pi; %converting to radians long = long/180*pi; %converting to radians a = 6378137.0; % earth semimajor axis in meters f = 1/298.257223563; % reciprocal flattening e2 = 2*f -f^2; % eccentricity squared chi = sqrt(1-e2*(sin(lat)).^2); X = (a./chi +h).*cos(lat).*cos(long); Y = (a./chi +h).*cos(lat).*sin(long); Z = (a*(1-e2)./chi + h).*sin(lat); Step 2: Convert ECEF to ENUfunction e,n,u = xyz2enuTest(Xr, Yr, Zr, X, Y, Z) % convert ECEF coordinates to local east, north, up phiP = atan2(Zr,sqrt(Xr^2 + Yr^2)); lambda = atan2(Yr,Xr); e = -sin(lambda).*(X-Xr) + cos(lambda).*(Y-Yr); n = -sin(phiP).*cos(lambda).*(X-Xr) - sin(phiP).*sin(lambda).*(Y-Yr) + cos(phiP).*(Z-Zr); u = cos(phiP).*cos(lambda).*(X-Xr) + cos(phiP).*sin(lambda).*(Y-Yr) + sin(phiP).*(Z-Zr); From ENU to WGS-84: sample codeThis code was written in MATLAB. This would be useful for converting from the local ENU coordinate system into the coordinate system that GPS uses. Step 1: Convert ENU to ECEFfunction X, Y, Z = enu2xyz(refLat, refLong, refH, e, n, u) % Convert east, north, up coordinates (labelled e, n, u) to ECEF % coordinates. The reference point (phi, lambda, h) must be given. All distances are in metres Xr,Yr,Zr = llh2XYZ(refLat,refLong, refH); % location of reference point phiP = atan2(Zr,sqrt(Xr^2+Yr^2)); % Geocentric latitude X = -sin(refLong)*e - cos(refLong)*sin(phiP)*n + cos(refLong)*cos(phiP)*u + Xr; Y = cos(refLong)*e - sin(refLong)*sin(phiP)*n + cos(phiP)*sin(refLong)*u + Yr; Z = cos(phiP)*n + sin(phiP)*u + Zr; Step 2: Convert ECEF to WGS-84function phi, lambda, h = xyz2llh(X,Y,Z) a = 6378137.0; % earth semimajor axis in meters f = 1/298.257223563; % reciprocal flattening b = a*(1-f);% semi-minor axis e2 = 2*f-f^2;% first eccentricity squared ep2 = f*(2-f)/((1-f)^2); % second eccentricity squared r2 = X.^2+Y.^2; r = sqrt(r2); E2 = a^2 - b^2; F = 54*b^2*Z.^2; G = r2 + (1-e2)*Z.^2 - e2*E2; c = (e2*e2*F.*r2)./(G.*G.*G); s = ( 1 + c + sqrt(c.*c + 2*c) ).^(1/3); P = F./(3*(s+1./s+1).^2.*G.*G); Q = sqrt(1+2*e2*e2*P); ro = -(e2*P.*r)./(1+Q) + sqrt((a*a/2)*(1+1./Q) - ((1-e2)*P.*Z.^2)./(Q.*(1+Q)) - P.*r2/2); tmp = (r - e2*ro).^2; U = sqrt( tmp + Z.^2 ); V = sqrt( tmp + (1-e2)*Z.^2 ); zo = (b^2*Z)./(a*V); h = U.*( 1 - b^2./(a*V)); phi = atan( (Z + ep2*zo)./r ); lambda = atan2(Y,X); Note: atan2(Y,X) uses quadrant information to return a value of lambda between − π and π. Sample Implementation Codeclear all close all clc %% reference point refLat = 39*pi/180; refLong = -132*pi/180; refH = 0; %% Points of interest lat = 39.5*pi/180; 39.5*pi/180;39.5*pi/180; long = -132*pi/180;-131.5*pi/180;-131.5*pi/180; h = 0;0;1000; disp('lat long height') for i = 1:length(lat) disp(num2str(lat(i)*180/pi),' ', num2str(long(i)*180/pi), ' ',num2str(h(i))) end % lat = [39.5*pi/180]; % long = [-132*pi/180]; % h = [0]; %% convering llh to enu Xr,Yr,Zr = llh2xyz(refLat,refLong,refH); X,Y,Z = llh2xyz(lat,long,h); disp('X Y Z') for i = 1:length(X) disp(num2str(X(i)),' ', num2str(Y(i)), ' ',num2str(Z(i))) end e,n,u = xyz2enu(Xr, Yr, Zr, X, Y, Z); disp('e n u') for i = 1:length(e) disp(num2str(e(i)),' ', num2str(n(i)), ' ',num2str(u(i))) end %% Converting enu to llh X, Y, Z = enu2xyz(refLat, refLong, refH, e, n, u); disp('X Y Z') for i = 1:length(X) disp(num2str(X(i)),' ', num2str(Y(i)), ' ',num2str(Z(i))) end phi, lambda, h = xyz2llh(X,Y,Z); disp('\phi \lambda h') for i = 1:length(X) disp(num2str(phi(i)*180/pi),' ', num2str(lambda(i)*180/pi), ' ',num2str(h(i))) end Reference material
See also
| |