Python coordinate conversions, following convention of several popular Matlab routines. Tested from Python 2.7 through Python 3.7+
API docs: | https://www.scivision.co/pymap3d |
---|
For those not having AstroPy, lower accuracy fallback functions are included for some functions.
prereqs: | AstroPy, Numpy, Python 3 or Python 2.7 |
---|
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 eci2ecef 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.
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.