geoprimsField-grade geospatial math

Point to local ENU, NED, and AER

Expresses a target point in a local tangent plane at an origin: east-north-up, north-east-down, and azimuth-elevation-range, with the rotation matrix on request.

Go the other way: Local ENU, NED, or AER to point →

The target is at azimuth 0°, elevation 90°, range 1,000 m. It is straight up or down, so the azimuth is shown as 0.

  • The target is straight above or below the origin, so azimuth is undefined; 0 is returned.
Elevation
Slant range
East
North
Up
Down
Provenance
Computed by
geodesy.frame.to-local 1.0.0, core 0.1.0
Model
Local east-north-up frame, WGS 84
Accuracy
Round trips within 1e-8 m for targets within 1,000 km
Notes
1 shown with the answer
Cites
Karney, C. F. F., GeographicLib, GeographicLib Geocentric and LocalCartesian classes

Something look off?

Your values

Showing an example. Change anything.
More options 5
Run many at once from a CSV

Loading…

30°60°NESWAz 0°, El 90°
How we got thisFormula, worked example, sources, and proof

Model: ECEF difference rotated into the origin's east-north-up frame (GeographicLib LocalCartesian)

Accuracy: Round trips within 1e-8 m for targets within 1,000 km

When to use this: Use this when you want a target described the way an observer at a station sees it: east, north and up, north, east and down, or an azimuth, elevation and range. It is the tool behind sky plots, antenna and camera aiming, and any check of where one point lies relative to another.

Limitations: The plane is tangent at the origin, so it is a local description rather than a map projection, and it takes no account of refraction, which bends both light and radio near the horizon, or of obstacles between the two points. The azimuth is true, and heights are above the ellipsoid rather than above sea level.

Worked example: A point 1,000 m overhead. Source: add-geodesy-suite scenario: elevation 90°, range 1,000 m, azimuth 0 with AZIMUTH_UNDEFINED. It is golden test vector v001, and every build checks the tool still gives its answer within its tolerance.

You enter

Origin height
300 m
Target height
1300 m
Target latitude
40.446111 deg
Origin latitude
40.446111 deg
Target longitude
-79.982222 deg
Origin longitude
-79.982222 deg

You get

Azimuth
Elevation
90°
Slant range
1,000 m
East
0 m
North
0 m
Up
1,000 m
Down
-1,000 m
Horizontal distance
0 m

Review: Not yet independently reviewed by a geodesist.

Last verified: 2026-09-18, when a maintainer last confirmed this tool's sources at the issuer. See the sources ledger.

Status: version 1.0.0, core 0.1.0. See this tool in the verification report.

Changes

Checked against: 21 golden test vectors (download the test vectors, each with its source and tolerance). See how results are checked and every source.

Sources

Terms

AER: azimuth, elevation, range
Direction and distance from a point: azimuth from north, elevation above the horizontal, and straight-line range. Source: GeographicLib
ECEF: Earth-centered, Earth-fixed
Cartesian X, Y, Z coordinates in meters from Earth's center, turning with the Earth. X points to 0° longitude on the equator and Z to the North Pole. Source: Department of Defense World Geodetic System 1984
ENU: east, north, up
Local Cartesian coordinates centered on a chosen point, with axes toward east, north, and up. Source: GeographicLib
NED: north, east, down
Local Cartesian axes toward north, east, and down, as aircraft navigation uses them. Source: GeographicLib