https://zenodo.org/badge/DOI/10.5281/zenodo.213676.svg http://img.shields.io/badge/powered%20by-AstroPy-orange.svg?style=flat https://travis-ci.org/scivision/pymap3d.svg?branch=master https://coveralls.io/repos/github/scivision/pymap3d/badge.svg?branch=master Maintainability

Python 3-D coordinate conversions

Python coordinate conversions, following convention of several popular Matlab routines. Tested from Python 2.7 through Python 3.7+

For those not having AstroPy, lower accuracy fallback functions are included for some functions.

prereqs:AstroPy, Numpy, Python 3 or Python 2.7

Install

python -m pip install -e .

Usage

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)

Functions

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

Caveats

  • 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.