Skip to main content

PyERFA

PyPI Status DOI 10.5281/zenodo.3940699 GitHub Actions CI Status Documentation Status

PyERFA is the Python wrapper for the ERFA library (Essential Routines for Fundamental Astronomy), a C library containing key algorithms for astronomy, which is based on the SOFA library published by the International Astronomical Union (IAU). All C routines are wrapped as Numpy universal functions, so that they can be called with scalar or array inputs.

The project is a split of astropy._erfa module, developed in the context of Astropy project, into a standalone package. It contains the ERFA C source code as a git submodule. The wrapping is done with help of the Jinja2 template engine.

If you use this package in your research, please cita it via DOI 10.5281/zenodo.3940699.

Installation instructions

The package can be installed from the package directory using a simple:

$ pip install .

and similarly a wheel can be created with:

$ pip wheel .

The package can be obtained from PyPI or directly from the git repository:

$ git clone --recursive https://github.com/liberfa/pyerfa/

The package also has nightly wheel that can be obtained as follows:

$ pip install --upgrade --index-url https://pypi.anaconda.org/liberfa/simple pyerfa --pre

Testing

For testing, one can install the packages together with its testing dependencies and then test it with:

$ pip install .[test]
$ pytest

Alternatively, one can use tox, which will set up a separate testing environment for you, with:

$ tox -e test

Usage

The package can be imported as erfa which has all ERFA ufuncs wrapped with python code that tallies errors and warnings. Also exposed are the constants defined by ERFA in erfam.h, as well as numpy.dtype corresponding to structures used by ERFA. Examples:

>>> import erfa
>>> erfa.jd2cal(2460000., [0, 1, 2, 3])
(array([2023, 2023, 2023, 2023], dtype=int32),
 array([2, 2, 2, 2], dtype=int32),
 array([24, 25, 26, 27], dtype=int32),
 array([0.5, 0.5, 0.5, 0.5]))
>>> erfa.plan94(2460000., [0, 1, 2, 3], 1)
array([([ 0.09083713, -0.39041392, -0.21797389], [0.02192341, 0.00705449, 0.00149618]),
       ([ 0.11260694, -0.38275202, -0.21613731], [0.02160375, 0.00826891, 0.00217806]),
       ([ 0.13401992, -0.37387798, -0.21361622], [0.0212094 , 0.00947838, 0.00286503]),
       ([ 0.15500031, -0.36379788, -0.21040601], [0.02073822, 0.01068061, 0.0035561 ])],
      dtype={'names': ['p', 'v'], 'formats': [('<f8', (3,)), ('<f8', (3,))], 'offsets': [0, 24], 'itemsize': 48, 'aligned': True})
>>> erfa.dt_pv
dtype([('p', '<f8', (3,)), ('v', '<f8', (3,))], align=True)
>>> erfa.dt_eraLDBODY
dtype([('bm', '<f8'), ('dl', '<f8'), ('pv', [('p', '<f8', (3,)), ('v', '<f8', (3,))])], align=True)
>>> erfa.DAYSEC
86400.0

It is also possible to use the ufuncs directly, though then one has to deal with the warning and error states explicitly. For instance, compare:

>>> erfa.jd2cal(-600000., [0, 1, 2, 3])
Traceback (most recent call last):
...
ErfaError: ERFA function "jd2cal" yielded 4 of "unacceptable date (Note 1)"
>>> erfa.ufunc.jd2cal(-600000., [0, 1, 2, 3])
(array([-1, -1, -1, -1], dtype=int32),
 ...,
 array([-1, -1, -1, -1], dtype=int32))

License

PyERFA is licensed under a 3-clause BSD style license - see the LICENSE.rst file.

Metadata

Release files for pyerfa 2.0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyerfa 2.0.1.5
File Size Uploaded
pyerfa-2.0.1.5.tar.gz 818.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyerfa 2.0.1.5
File
pyerfa-2.0.1.5-pp39-pypy39_pp73-win_amd64.whl PyPy 3.9 PyPy 3.9 7.3 Windows x86-64 Details
pyerfa-2.0.1.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.17+ x86-64 Details
pyerfa-2.0.1.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 macOS 10.15+ x86-64 Details
pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
pyerfa-2.0.1.5-cp39-abi3-win32.whl CPython 3.9 abi3 Windows x86-32 Details
pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl CPython 3.9 abi3 macOS 10.9+ x86-64 Details

Total release size: 5.3 MB

Release files / pyerfa-2.0.1.5.tar.gz

Download URL pyerfa-2.0.1.5.tar.gz
Size 818.4 kB
Tags Source
SHA-256 checksum
How to use checksums
17d6b24fe4846c65d5e7d8c362dcb08199dc63b30a236aedd73875cc83e1f6c0
BLAKE2b-256 checksum
How to use checksums
713963cc8291b0cf324ae710df41527faf7d331bce573899199d926b3e492260
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-pp39-pypy39_pp73-win_amd64.whl

Download URL pyerfa-2.0.1.5-pp39-pypy39_pp73-win_amd64.whl
Size 349.5 kB
Tags PyPy 3.9 PyPy 3.9 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
171ce9676a448a7eb555f03aa19ad5c749dbced1ce4f9923e4d93443c4a9c612
BLAKE2b-256 checksum
How to use checksums
5189278ac94f86b6850f0ccee99839103375b665ccf99cb5085515deed4ab2d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyerfa-2.0.1.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 343.9 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
690e258294202c86f479e78e80fd235cd27bd717f7f60062fccc3dbd6ef0b1a9
BLAKE2b-256 checksum
How to use checksums
119eee706b5fc5b5a72e31283f66e68730abf802469bbc373ff0d05e68d7e2df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl

Download URL pyerfa-2.0.1.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Size 321.1 kB
Tags PyPy 3.9 PyPy 3.9 7.3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
4991dee680ff36c87911d8faa4c7d1aa6278ad9b5e0d16158cf22fa7d74ba25c
BLAKE2b-256 checksum
How to use checksums
983202fe8bf940d8ce2cc482c48056ccc6b64628f622a56fa773810199637fa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl
Size 349.4 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
66292d437dcf75925b694977aa06eb697126e7b86553e620371ed3e48b5e0ad0
BLAKE2b-256 checksum
How to use checksums
b41197233cf23ad5411ac6f13b1d6ee3888f90ace4f974d9bf9db887aa428912
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-win32.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-win32.whl
Size 340.0 kB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
d30b9b0df588ed5467e529d851ea324a67239096dd44703125072fd11b351ea2
BLAKE2b-256 checksum
How to use checksums
2c56b22b35c8551d2228ff8d445e63787112927ca13f6dc9e2c04f69d742c95b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl
Size 723.0 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
07b80cd70701f5d066b1ac8cce406682cfcd667a1186ec7d7ade597239a6021d
BLAKE2b-256 checksum
How to use checksums
b9f5ff91ee77308793ae32fa1e1de95e9edd4551456dd888b4e87c5938657ca5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 738.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
0e43c7194e3242083f2350b46c09fd4bf8ba1bcc0ebd1460b98fc47fe2389906
BLAKE2b-256 checksum
How to use checksums
e5e0050018d855d26d3c0b4a7d1b2ed692be758ce276d8289e2a2b44ba1014a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 692.8 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
b0603e8e1b839327d586c8a627cdc634b795e18b007d84f0cda5500a0908254e
BLAKE2b-256 checksum
How to use checksums
cb96b6210fc624123c8ae13e1eecb68fb75e3f3adff216d95eee1c7b05843e3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl
Size 329.4 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
be1aeb70390dd03a34faf96749d5cabc58437410b4aab7213c512323932427df
BLAKE2b-256 checksum
How to use checksums
114a31a363370478b63c6289a34743f2ba2d3ae1bd8223e004d18ab28fb92385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl

Download URL pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl
Size 341.8 kB
Tags CPython 3.9 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b282d7c60c4c47cf629c484c17ac504fcb04abd7b3f4dfcf53ee042afc3a5944
BLAKE2b-256 checksum
How to use checksums
7dd93448a57cb5bd19950de6d6ab08bd8fbb3df60baa71726de91d73d76c481b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

2.0.1.5 This release

11 release files

2.0.1

8 release files

2.0.0

22 release files

1.7.3

29 release files

1.7.1

29 release files

1.7.0

22 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page