Skip to main content

pure Python coordinate conversions, following convention of several popular Matlab routines.

Project description Maintainability

Python 3-D coordinate conversions

Python coordinate conversions, following convention of several popular Matlab routines.

API docs:

For those not having:

  • AstroPy: lower accuracy fallback functions are included for some functions.
  • Numpy: without numpy, scalar inputs are handled with pure Python builtins.

Why not PyProj? PyMap3D does not require anything beyond pure Python. PyProj is very powerful and comprehensive, but requires a learning curve to use, particularly for Python users accustomed to Matlab.

prereqs:any of Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6, 3.7, …
OPTIONAL prereqs:
 Numpy, AstroPy (for full functionality)


python -m pip install -e .


a few quick examples

import pymap3d as pm

lat,lon,alt = pm.eci2geodetic(eci, t)

az,el,range = pm.geodetic2aer(lat, lon, alt, 42, -82, 0)


Popular mapping toolbox functions ported to Python include:

aer2ecef  aer2enu  aer2geodetic  aer2ned
ecef2aer  ecef2enu  ecef2enuv  ecef2geodetic  ecef2ned  ecef2nedv  ecef2eci
enu2aer  enu2ecef  enu2ecefv  enu2geodetic
geodetic2aer  geodetic2ecef  geodetic2enu  geodetic2ned
ned2aer  ned2ecef  ned2ecefv  ned2geodetic
vreckon vdist
azel2radec radec2azel


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

Matlab / Octave

The matlab/ directory contains a subset of the Python conversion functions, usable from Matlab or GNU Octave. Mathworks currently charges $1000 for the Matlab Mapping Toolbox that provides these functions.

  • The full set of Python conversions can be accessed from Matlab >= R2014b by commands like:

    lla = py.pymap3d.geodetic2ecef(x,y,z)
  • Matlab documentation generated by m2html.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pymap3d, version 1.5.1
Filename, size File type Python version Upload date Hashes
Filename, size pymap3d-1.5.1-py3-none-any.whl (23.8 kB) File type Wheel Python version 3.6 Upload date Hashes View hashes
Filename, size pymap3d-1.5.1.tar.gz (17.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page