Skip to content

Modern Fortran 3D coordinate conversions for geospace ecef enu eci

License

Notifications You must be signed in to change notification settings

geospace-code/maptran3d

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.