Main Content

lla2enu

Transform geodetic coordinates to local east-north-up coordinates

    Description

    example

    xyzENU = lla2enu(lla,lla0,method) transforms the geodetic coordinates lla to local east-north-up (ENU) Cartesian coordinates xyzENU. Specify the origin of the local ENU system as the geodetic coordinates lla0.

    Note

    • The latitude and longitude values in the geodetic coordinate system use the World Geodetic System of 1984 (WGS84) standard.

    • Specify altitude as height in meters above the WGS84 reference ellipsoid.

    Examples

    collapse all

    This example shows how to convert geodetic coordinates to local east-north-up (ENU) Cartesian coordinates.

    Specify the geodetic coordinates of the local origin. In this example, the local origin is Zermatt, Switzerland.

    lla0 = [46.017 7.750 1673]; % [lat0 lon0 alt0]

    Specify the geodetic coordinates of the point of interest. lat and lon specify the latitude and longitude respectively in degrees. alt specifies the altitude in meters. In this example, the point of interest is the Matterhorn.

    lla = [45.976 7.658 4531]; % [lat lon alt]

    Transform from geodetic coordinates to local ENU using flat earth approximation.

    xyzENU = lla2enu(lla, lla0, 'flat')
    xyzENU = 1×3
    103 ×
    
       -7.1244   -4.5572    2.8580
    
    

    Input Arguments

    collapse all

    Geodetic coordinates, specified as a three-element row vector or an n-by-3 matrix. n is the number of points to transform. Specify each point in the form [lat lon alt]. lat and lon specify the latitude and longitude respectively in degrees. alt specifies the altitude in meters.

    Data Types: double

    Origin of the local ENU system in the geodetic coordinates, specified as a three-element row vector or an n-by-3 matrix. n is the number of origin points. Specify each point in the form [lat0 lon0 alt0]. lat0 and lon0 specify the latitude and longitude of the origin, respectively, in degrees. alt0 specifies the altitude of the origin in meters.

    Data Types: double

    Transformation method, specified as 'flat' or 'ellipsoid'. This argument specifies whether the function assumes the planet is flat or ellipsoidal.

    The flat Earth approximation has these limitations:

    • This transformation method assumes that the flight path and bank angle are zero.

    • This transformation method assumes that the flat Earth z-axis is normal to the Earth at only the initial geodetic latitude and longitude. This method has higher accuracy over small distances from the initial geodetic latitude and longitude, and closer to the equator. The method calculates a longitude with higher accuracy when the variation in latitude is smaller.

    • Latitude values of +90 and -90 may return unexpected values because of singularity at the poles.

    Data Types: char | string

    Output Arguments

    collapse all

    Local ENU Cartesian coordinates, returned as a three-element row vector or an n-by-3 matrix. n is the number of transformed points. Each point is in the form [xEast yNorth zUp]. xEast, yNorth, and zUp are the respective x-, y-, and z-coordinates, in meters, of the point in the local ENU system.

    Data Types: double

    Extended Capabilities

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    See Also

    | |

    Introduced in R2020b