represents a position with local Cartesian coordinates {east,north,up} in a reference system centered at the position p.


represents an array of positions.


returns the Cartesian position with respect to p of the specified geographical entity.


  • In GeoPositionENU[{e,n,u},p], coordinate numeric values e,n,u are assumed to be in meters.
  • In GeoPositionENU[enu,p], the origin position p can be given as a geo Entity object or any form of geodetic position with head GeoPosition, GeoPositionXYZ, GeoPositionENU or GeoGridPosition.
  • GeoPositionENU[{e,n,u,t},p] includes a time t measured in seconds since the beginning of January 1, 1900 in the GMT time zone.
  • A GeoPositionENU object with no explicit time assumes the current date.
  • The datum of GeoPosition[enu,p] is the datum of its origin p. Typical values for datum specifications include "ITRF00", "NAD83CORS96" and "WGS84".
  • GeoPositionENU[GeoPositionENU[enu,p1],p2] converts between two different ENU systems.
  • GeoPositionENU[pos,p] converts any geodetic position pos to an ENU position with origin p.
  • GeoPositionENU[][prop] gives the specified property of a Cartesian geo position.
  • Possible properties include:
  • "AbsoluteTime"date as number of seconds since Jan 1, 1900, 00:00 GMT
    "Count"number of positions in the GeoPositionENU object
    "Data"first argument of the GeoPositionENU object
    "DateList"date list {y,m,d,h,m,s} in GMT time
    "DateObject"full date object
    "Datum"datum of the GeoPositionENU object
    "Depth"point depth: 0 for a single position, 1 for a list of them,
    "Dimension"number of coordinates for each position
    "Origin"origin position of the GeoPositionENU object
    "PackingType"Integer or Real if data is packed; None otherwise
    "E"numeric coordinate e in meters
    "N"numeric coordinate n in meters
    "U"numeric coordinate u in meters
    "ENU"numeric {e,n,u} triple in meters
    "NEU"numeric {n,e,u} triple in meters
    "EN"numeric {e,n} pair in meters
    "NE"numeric {n,e} pair in meters
    "EU"numeric {e,u} pair in meters
    "NU"numeric {n,u} pair in meters


open allclose all

Basic Examples  (3)

Cartesian coordinates of a location with respect to the ENU frame at another one:

Move 100 kilometers north along the tangent plane at a position:

Convert to a geodetic position, now with nonzero height:

Move 10 kilometers vertically from New York:

Scope  (11)

Position Specification  (5)

A Cartesian position from another one, with coordinates given in meters:

Specify time in seconds since January 1, 1900:

Provide Cartesian coordinates as Quantity lengths with any unit:

Give one or both positions as entities:

Specify the origin as any type of geodetic position:

Specify a datum in the origin:

Changing the datum of the origin affects the coordinate values:

Change back to the original datum:

Geo Position Arrays  (4)

To speed up computations, use an array of positions in the first argument:

All points are transformed at once:

Here each point is transformed individually:

Results coincide up to numerical error:

Changes of datum are also faster using an array of points as the first argument:

GeoPositionENU can contain nested lists of points, as long as all points have the same length and depth:

Manipulations will preserve the nesting structure:

However, this is not allowed, because the first point has a time specification, but not the second:

This is not allowed because the second point is deeper than the first:

Convert a list of geo positions into a single geo position array:

Convert back to a list of geo positions:

Coordinate Extraction  (2)

Use properties to extract information from a GeoPositionENU object:

Use properties to extract information from a GeoPositionENU array:

There are 200 points:

It is a matrix of points, so it has point depth 2:

Each point has dimension 3, namely the e,n,u coordinates:

The array of coordinates is packed with type Real:

Any other property will return an array of values corresponding to the points of the array:

Properties & Relations  (3)

Move 1000 kilometers from p in NW direction in several forms:

Move along a geodesic on the Earth's surface:

Move on the tangent plane at p, arriving at a point above the surface:

The antipodal coordinates change sign only in the north component:

GeoPositionENU[{},p] represents an empty array of geo positions:

It contains zero positions:

Interactive Examples  (1)

The ENU Cartesian system (respective red, green, blue axes) at a point {lat,lon} on a sphere:

Wolfram Research (2008), GeoPositionENU, Wolfram Language function, (updated 2019).


Wolfram Research (2008), GeoPositionENU, Wolfram Language function, (updated 2019).


@misc{reference.wolfram_2020_geopositionenu, author="Wolfram Research", title="{GeoPositionENU}", year="2019", howpublished="\url{}", note=[Accessed: 26-January-2021 ]}


@online{reference.wolfram_2020_geopositionenu, organization={Wolfram Research}, title={GeoPositionENU}, year={2019}, url={}, note=[Accessed: 26-January-2021 ]}


Wolfram Language. 2008. "GeoPositionENU." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019.


Wolfram Language. (2008). GeoPositionENU. Wolfram Language & System Documentation Center. Retrieved from