GitHunt
GE

geospace-code/maptran3d

Modern Fortran 3D coordinate conversions for geospace ecef enu eci

Maptran 3D

DOI
Actions Status

Modern Fortran 3D coordinate conversions for geospace ecef enu eci.
Similar to Python
PyMap3D
and Matlab
Matmap3d.

Default real precision is double precision (64 bit).

cmake -B build
cmake --build build

Set 32-bit real by:

cmake -B build -Drealbits=32
cmake --build build

which produces build/libmaptran.a or similar.

The modern Fortran API is simple like PyMap3D and Matlab Mapping Toolbox.
elemental procedures are used throughout to enable seamless support of scalar or array coordinate inputs.

use maptran

call geodetic2ecef(lat,lon,alt, x,y,z)
call geodetic2aer(lat,lon,alt, observer_lat, observer_lon, observer_alt)

Functions

Popular mapping toolbox functions ported to Fortran include the
following, where the source coordinate system (before the "2") is
converted to the desired coordinate system:

aer2ecef  aer2enu  aer2geodetic  aer2ned
ecef2aer  ecef2enu  ecef2enuv  ecef2geodetic  ecef2ned  ecef2nedv
enu2aer  enu2ecef   enu2geodetic
geodetic2aer  geodetic2ecef  geodetic2enu  geodetic2ned
ned2aer  ned2ecef   ned2geodetic
azel2radec radec2azel
lookAtSpheroid

Abbreviations:

Caveats

  • Atmospheric effects neglected in all functions.
  • Planetary perturbations and nutation etc. not fully considered.

Languages

Fortran91.9%CMake7.1%Meson1.0%

Contributors

BSD 2-Clause "Simplified" License
Created August 9, 2018
Updated January 10, 2026