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)
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:
- AER: Azimuth, Elevation, Range
- ECEF: Earth-centered, Earth-fixed
- ENU: East North Up
- NED: North East Down
- Atmospheric effects neglected in all functions.
- Planetary perturbations and nutation etc. not fully considered.