Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robotic Tooling
  3. pymap3d

pymap3d

BSD-2-ClausePythonv3.2.0

Pure Python 3-D geographic coordinate conversions for geospace applications, with optional NumPy acceleration.

Visit WebsiteGitHubGitHub
438 stars88 forks0 contributors

What is pymap3d?

PyMap3D is a Python library for 3-D geographic coordinate conversions and geodesy calculations. It provides functions to convert between various coordinate systems like ECEF, ENU, ECI, and geodetic coordinates, solving the need for accurate spatial transformations in geospace applications. The library is designed to be lightweight and portable, with optional dependencies for enhanced performance.

Target Audience

Geospatial engineers, aerospace developers, and researchers working with satellite data, remote sensing, or embedded systems requiring coordinate transformations. It's also suitable for those transitioning from Matlab who need a similar API in Python.

Value Proposition

Developers choose PyMap3D for its pure Python core, which eliminates heavy dependencies, and its Matlab-like syntax that reduces the learning curve. It excels in environments where performance on embedded or HPC systems is critical, and it handles points both on and above the Earth's surface more comprehensively than some alternatives.

Overview

pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef enu eci

Use Cases

Best For

  • Converting between ECEF and geodetic coordinates for satellite tracking
  • Performing azimuth-elevation-range (AER) calculations for radar systems
  • Handling local coordinate systems like ENU and NED in autonomous vehicles
  • Astronomical coordinate conversions using right ascension and declination
  • Geodesy calculations on embedded systems without heavy dependencies
  • Transitioning from Matlab Mapping Toolbox to a Python workflow

Not Ideal For

  • Projects requiring real-time atmospheric corrections for high-accuracy optics or radar
  • Aerospace simulations that need full planetary perturbation and nutation models
  • Interactive GIS applications with graphical user interfaces and real-time visualization
  • Developers who rely on AstroPy.Units.Quantity for strict unit handling in scientific workflows

Pros & Cons

Pros

Lightweight and Portable

Pure Python core with no prerequisites beyond Python itself; it seamlessly falls back to Python's math module if NumPy is not installed, making it ideal for embedded systems.

Familiar Matlab Syntax

Function syntax is similar to Matlab Mapping Toolbox, easing the transition for users already familiar with Matlab, as noted in the README for compatibility.

Wide Coordinate System Support

Comprehensive conversions between AER, ECEF, ECI, ENU, NED, and geodetic systems, handling points on or above Earth's surface, which is broader than some alternatives like PyProj for airborne use.

Flexible Earth Models

Includes multiple ellipsoid models via the Ellipsoid class, such as WGS84 and GRS80, allowing customization for different geodetic standards without external dependencies.

Cons

No Atmospheric Corrections

Atmospheric effects are neglected in functions not invoking AstroPy, limiting accuracy for applications like satellite tracking or remote sensing that require refraction modeling.

Incomplete AstroPy Integration

AstroPy.Units.Quantity is not supported, forcing users to work around with .value attributes, which can be cumbersome and impact performance considerations as admitted in the README.

Batch-Oriented Design

Designed for non-interactive use on HPC and embedded systems, so it lacks features for real-time, interactive applications, such as GUI integration or streaming data optimizations.

Open Source Alternative To

pymap3d is an open-source alternative to the following products:

M
Matlab Mapping Toolbox

MATLAB Mapping Toolbox is a MathWorks toolbox that provides algorithms and functions for analyzing geographic data, creating maps, and performing geospatial computations.

Frequently Asked Questions

Quick Stats

Stars438
Forks88
Contributors0
Open Issues5
Last commit2 months ago
CreatedSince 2014

Tags

#scientific-computing#embedded-systems#geospatial#astronomy#python#geodesy#hpc#coordinate-transformation#coordinate-conversion

Built With

P
Python
N
NumPy

Links & Resources

Website

Included in

Robotic Tooling3.8k
Auto-fetched 8 hours ago

Related Projects

Kalman-and-Bayesian-Filters-in-PythonKalman-and-Bayesian-Filters-in-Python

Kalman Filter book using Jupyter Notebook. Focuses on building intuition and experience, not formal proofs. Includes Kalman filters,extended Kalman filters, unscented Kalman filters, particle filters, and more. All exercises include solutions.

Stars18,968
Forks4,491
Last commit1 year ago
evoevo

Python package for the evaluation of odometry and SLAM

Stars4,217
Forks792
Last commit7 days ago
PROJPROJ

PROJ - Cartographic Projections and Coordinate Transformations Library

Stars1,980
Forks887
Last commit3 days ago
robot_localizationrobot_localization

robot_localization is a package of nonlinear state estimation nodes. The package was developed by Charles River Analytics, Inc. Please ask questions on answers.ros.org.

Stars1,886
Forks1,017
Last commit17 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub