Matlab 3D coordinate conversions for geospace ecef enu eci
Clone or download
scivision handle ecef2aer singularity
enu2aer OK

enu2aer OK

fix enu2aer singularity

enu2ecef OK

patch matlab precision cos(90)

more tests OK

arg consistency
Latest commit 6cb38e2 Jan 8, 2019

DOI Build status


Matlab / GNU Octave coordinate conversions for geospace ecef enu eci. Similar to Python PyMap3D.


Simply use addpath to this directory to use from your program for free, instead of paying $1000 for Matlab Mapping Toolbox.


then use like:

[x,y,z] = geodetic2ecef([],lat,lon,alt)

[az,el,range] = geodetic2aer(lat, lon, alt, observer_lat, observer_lon, observer_alt)

Optionally, verify functionality:

cd tests


Popular mapping & aerospace toolbox functions ported to Matlab include the following, where the source coordinate system (before the "2") is converted to the desired coordinate system:

aer2ecef  aer2enu  aer2geodetic  aer2ned
ecef2aer  ecef2enu  ecef2enuv  ecef2geodetic  ecef2ned  ecef2nedv
enu2aer  enu2ecef   enu2geodetic
geodetic2aer  geodetic2ecef  geodetic2enu  geodetic2ned
ned2aer  ned2ecef   ned2geodetic



  • Atmospheric effects neglected in all functions not invoking AstroPy. Would need to update code to add these input parameters (just start a GitHub Issue to request).
  • Planetary perturbations and nutation etc. not fully considered.

Mathworks currently charges $1000 for the Matlab Mapping Toolbox that provides these functions.

  • The full set of Python conversions are accessed from Matlab ≥ R2014b by commands like:
    lla = py.pymap3d.geodetic2ecef(x,y,z)