This is a Python wrapper for the Apex fortran library by Emmert et al. [2010] [1], which allows converting between geodetic, modified apex, and quasi-dipole coordinates as well as getting modified apex and quasi-dipole base vectors (Richmond [1995] [2]). MLT calculations are also included. The package is free software (MIT license).
Install (requires NumPy):
pip install apexpy
Conversion is done by creating an Apex
object and using its methods to perform the desired calculations. Some simple examples:
>>> from apexpy import Apex >>> from __future__ import print_function >>> A = Apex(date=2015.3) # datetime objects are also supported >>> # geo to apex, scalar input >>> mlat, mlon = A.convert(60, 15, 'geo', 'apex', height=300) >>> print("{:.12f}, {:.12f}".format(mlat, mlon)) 57.469573974609, 93.633583068848 >>> # apex to geo, array input >>> glat, glon = A.convert([90, -90], 0, 'apex', 'geo', height=0) >>> print(["{:.12f}, {:.12f}".format(ll, glon[i]) for i,ll in enumerate(glat)]) ['83.099594116211, -84.594589233398', '-74.388267517090, 125.714927673340'] >>> # geo to MLT >>> import datetime as dt >>> mlat, mlt = A.convert(60, 15, 'geo', 'mlt', datetime=dt.datetime(2015, 2, 10, 18, 0, 0)) >>> print("{:.12f}, {:.12f}".format(mlat, mlt)) 56.590423583984, 19.108103879293 >>> # can also convert magnetic longitude to mlt >>> mlt = A.mlon2mlt(120, dt.datetime(2015, 2, 10, 18, 0, 0)) >>> print("{:.2f}".format(mlt)) 20.89
If you don't know or use Python, you can also use the command line. See details in the full documentation.
https://apexpy.readthedocs.org/
[1] | Emmert, J. T., A. D. Richmond, and D. P. Drob (2010), A computationally compact representation of Magnetic-Apex and Quasi-Dipole coordinates with smooth base vectors, J. Geophys. Res., 115(A8), A08322, doi:10.1029/2010JA015326. |
[2] | Richmond, A. D. (1995), Ionospheric Electrodynamics Using Magnetic Apex Coordinates, Journal of geomagnetism and geoelectricity, 47(2), 191–212, doi:10.5636/jgg.47.191. |
docs | |
---|---|
tests | |
package |