Skip to main content

"A Python wrapper for Apex coordinates"

Project description

Documentation Status PyPI Package latest release doi

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]). The geodetic system used here is WGS84. MLT calculations are also included. The package is free software (MIT license).

Quick start

Install from PyPI using pip:

pip install apexpy

This assumes that the same version of libgfortran is installed in the same location as when the pip wheel was built (if a wheel was used). If not, you may have trouble importing apexpy. If you run into trouble, try the command:

pip install --no-binary :apexpy: apexpy

which requires both libgfortran and gfortran to be installed on your system.

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.477310180664, 93.590156555176
>>> # 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.103820800781, -84.526657104492', '-74.388252258301, 125.736274719238']
>>> # 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.598316192627, 19.107861709595
>>> # can also convert magnetic longitude to mlt
>>> mlt = A.mlon2mlt(120, dt.datetime(2015, 2, 10, 18, 0, 0))
>>> print("{:.2f}".format(mlt))
20.90

If you don’t know or use Python, you can also use the command line. See details in the full documentation.

References

[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.

Badges

docs Documentation Status
tests
Travis-CI Build Status AppVeyor Build Status
Coverage Status Requirements Status
CodeClimate Quality Status Scrutinizer Status Codacy Badge
package
PyPI Package latest release Supported versions
PyPI Wheel Supported implementations

Changelog

1.1.0 (2021-03-05)

  • Adapted Fortran to read IRGF coefficients from a file (updated to IGRF-13)
  • Improved the subsol routine to allow array input
  • Improved PEP8 compliance
  • Added some missing docstrings to unit tests
  • Fixed AppVeyor test environment
  • Updated python test versions
  • Updated community and package documentation
  • Fixed bug where NaNs caused array input to crash
  • Fixed bug in quasi-dipole to apex conversion at equator
  • Removed duplicate CI services

1.0.4 (2019-04-05)

  • Updated installation instructions
  • Simplified warning tests
  • Made some PEP8 changes

1.0.3 (2018-04-05)

  • Updated badges and added DOI
  • Added tests for python 3.6
  • Removed tests for python 3.3
  • Made some PEP8 changes

1.0.2 (2018-02-27)

  • Extend character limit for allowable data file path, and update documentation to reflect a change in maintainers. Also updated testing implimentation, reduced fortran compiler warnings, and improved PEP8 compliance.

1.0.1 (2016-03-10)

  • Remove geocentric to geodetic conversion of subsolar point based on feedback from Art Richmond. (The subsolar point is the same in geocentric and geodetic coordinates.) The helper function gc2gdlat have been kept to preserve backwards compatibility.

1.0.0 (2015-11-30)

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for apexpy, version 1.1.0
Filename, size File type Python version Upload date Hashes
Filename, size apexpy-1.1.0.tar.gz (5.9 MB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page