pymap3d
pure Python (no prereqs) coordinate conversions, following convention of several popular Matlab routines.
Decision gist · record as of 2026-08-14
Yes, if you need coordinate conversions and prefer pure Python with minimal dependencies. The permissive license, low install friction, and Matlab-compatible API make it a solid choice for embedded systems, HPC, and scientific workflows. The aging maintenance status is a minor concern for a stable, narrowly-scoped library, but verify that version 3.2.0 addresses your specific use case before relying on it for production work.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- NumPy and AstroPy are optional; without them, only scalar data is supported (use list comprehension for vectors).
- Low friction: pure Python with no mandatory dependencies, distributed as a wheel.
License · maintenance · safety
permissive license (permissive) — Permissive BSD license allows commercial and private use with minimal restrictions, making it suitable for embedded systems and HPC environments where license flexibility matters.
last release 2025-07-08 (402 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 702,079 downloads/mo, #5,287 on PyPI
Alternatives
Verify before relying
import pymap3d as pm
# Convert geodetic coordinates to ECEF
x, y, z = pm.geodetic2ecef(lat, lon, alt)
# Convert to azimuth, elevation, range from observer
az, el, rng = pm.geodetic2aer(lat, lon, alt, observer_lat, observer_lon, observer_alt)- Whether the 402-day gap since last release indicates active maintenance or dormancy beyond the 'aging' classification.
- Performance characteristics on embedded systems or HPC clusters compared to compiled alternatives.
- Accuracy of astronomical conversions when AstroPy is not installed (algorithms from Vallado and Meeus mentioned but not detailed).
What it is and what it does
PyMap3D is a pure-Python library for converting between geographic and 3-D coordinate systems commonly used in geospatial, aerospace, and remote-sensing applications. It implements functions like geodetic2ecef, aer2geodetic, and enu2ned, mirroring the API of Matlab's Mapping Toolbox. The library requires only Python itself for basic use; NumPy and AstroPy are optional and enable vector operations and astronomical conversions respectively.
Designed for non-interactive, data-streaming scenarios on embedded systems and HPC clusters, pymap3d handles both scalar and array inputs seamlessly. It supports multiple ellipsoid models (defaulting to WGS84) and includes specialized functions for Vincenty distance calculations, loxodrome navigation, and latitude transformations. Atmospheric effects and full planetary perturbations are not modeled, but the library is well-suited for applications where coordinate transformations are the primary computational need.
Use it for
- Convert GPS coordinates (lat/lon/alt) to Earth-centered Cartesian (ECEF) for satellite or aircraft tracking systems.
- Calculate azimuth, elevation, and range from an observer to a target for antenna pointing or radar applications.
- Transform between local coordinate frames (ENU, NED) for autonomous vehicle navigation and sensor fusion.
- Compute great-circle and rhumb-line distances and bearings between geographic points for route planning.
- Embed coordinate conversions in embedded or HPC applications where minimal dependencies and pure Python are required.
- Verify geospatial calculations against Matlab Mapping Toolbox reference implementations using the test suite.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need coordinate conversions and prefer pure Python with minimal dependencies.
The permissive license, low install friction, and Matlab-compatible API make it a solid choice for embedded systems, HPC, and scientific workflows. The aging maintenance status is a minor concern for a stable, narrowly-scoped library, but verify that version 3.2.0 addresses your specific use case before relying on it for production work.
Install
pymap3d on PyPI
Before you install
Low friction: pure Python with no mandatory dependencies, distributed as a wheel. Maintenance status is aging (402 days since last release), but the package reached Production/Stable and supports current Python versions (3.9+).
Requires Python 3.9 or later. NumPy and AstroPy are optional; without them, only scalar data is supported (use list comprehension for vectors).
License in practice
Permissive BSD license allows commercial and private use with minimal restrictions, making it suitable for embedded systems and HPC environments where license flexibility matters.
Quickstart
import pymap3d as pm
# Convert geodetic coordinates to ECEF
x, y, z = pm.geodetic2ecef(lat, lon, alt)
# Convert to azimuth, elevation, range from observer
az, el, rng = pm.geodetic2aer(lat, lon, alt, observer_lat, observer_lon, observer_alt)
Verify before relying
- Whether the 402-day gap since last release indicates active maintenance or dormancy beyond the 'aging' classification.
- Performance characteristics on embedded systems or HPC clusters compared to compiled alternatives.
- Accuracy of astronomical conversions when AstroPy is not installed (algorithms from Vallado and Meeus mentioned but not detailed).
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 402 days since the last release |
| First released | |
| Downloads | 702,079 / month, #5,287 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: GIS |
Evidence: pymap3d-3.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “coordinate conversion geodetic ecef”
- pymap3dConverts between geographic and 3-D coordinate systems (geodetic,…
- pygeodesyPyGeodesy provides pure Python implementations of geodetic…
- pyprojpyproj provides a Python interface to PROJ, enabling cartographic…
Give your agent the search over MCP, or paste the wish link into any chat.
More GIS packages
Shapely provides Python tools for creating, manipulating, and analyzing 2D geometric objects (points, lines, polygons) using the GEOS library, with both scalar and vectorized NumPy-based operations.
pyproj provides a Python interface to PROJ, enabling cartographic projections and coordinate system transformations for geospatial applications.
GeoPandas extends pandas DataFrames to handle geographic data, combining pandas operations with shapely geometry and spatial analysis capabilities that would otherwise require a spatial database.
Install it if you work with geographic data in Python and want to avoid setting up a spatial database or learning a separate GIS tool.
geopy is a Python client for geocoding and distance calculation that converts addresses to coordinates and vice versa using multiple web-based geocoding services, and computes geodesic and great-circle distances between geographic points.
Install it if you need geocoding or distance calculations in your application.
Pyogrio provides fast, bulk-oriented read and write access to vector spatial data formats (Shapefile, GeoPackage, GeoJSON, etc.) via GDAL/OGR bindings, typically for use with GeoPandas GeoDataFrames.
h3 provides Python bindings to Uber's H3 geospatial indexing library, converting geographic coordinates into hierarchical hexagonal grid cells and performing spatial operations on them.
See also pygeodesy · gsw · utm · pyGeoTile · mgrs · utide · gps3 · geoarrow-types · gwcs