Awesome
MatMap3d
Matlab coordinate conversions for geospace ecef enu eci. Similar to Python PyMap3D.
Usage
MatMap3D is setup as a
Matlab package,
which means import matmap3d
statements allow scoped use of this code.
[x,y,z] = matmap3d.geodetic2ecef([],lat,lon,alt)
[az,el,range] = matmap3d.geodetic2aer(lat, lon, alt, observer_lat, observer_lon, observer_alt)
Optionally, run self-tests:
buildtool
Functions
Popular mapping & aerospace toolbox functions ported to Matlab, where the source coordinate system (before the "2") is converted to the desired coordinate system:
Abbreviations:
- AER: Azimuth, Elevation, Range
- ECEF: Earth-centered, Earth-fixed
- ECI: Earth-centered Inertial
- ENU: East North Up
- NED: North East Down
- radec: right ascension, declination
Caveats
- Atmospheric effects neglected in all functions not invoking AstroPy. Would need to update code to add these input parameters (just start a GitHub Issue to request).
- Planetary perturbations and nutation etc. not fully considered.
These functions present a similar API of a subset of functions in the Mathworks Matlab:
Notes
Python PyMap3d has more conversions. PyMap3d can be accessed from Matlab by commands like:
lla = py.pymap3d.geodetic2ecef(x,y,z)
In particular, since PyMap3D uses Astropy for ECI transformations the accuracy will generally be better for eci2*
or *2eci
functions.
All other functions should have equivalent accuracy with Matlab vs. Python.
GNU Octave
GNU Octave users should consider the Octave Mapping Toolbox, which added similar functions in version 1.4.2.