Python bindings for ERFA
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file pyerfa-2.0.1.5.tar.gz
.
File metadata
- Download URL: pyerfa-2.0.1.5.tar.gz
- Upload date:
- Size: 818.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17d6b24fe4846c65d5e7d8c362dcb08199dc63b30a236aedd73875cc83e1f6c0 |
|
MD5 | 6cb13d45fb4e391b70e2456760a9add8 |
|
BLAKE2b-256 | 713963cc8291b0cf324ae710df41527faf7d331bce573899199d926b3e492260 |
File details
Details for the file pyerfa-2.0.1.5-pp39-pypy39_pp73-win_amd64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-pp39-pypy39_pp73-win_amd64.whl
- Upload date:
- Size: 349.5 kB
- Tags: PyPy, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 171ce9676a448a7eb555f03aa19ad5c749dbced1ce4f9923e4d93443c4a9c612 |
|
MD5 | e053de89211f235b1f31082d5dca5793 |
|
BLAKE2b-256 | 5189278ac94f86b6850f0ccee99839103375b665ccf99cb5085515deed4ab2d6 |
File details
Details for the file pyerfa-2.0.1.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 343.9 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 690e258294202c86f479e78e80fd235cd27bd717f7f60062fccc3dbd6ef0b1a9 |
|
MD5 | f85040e722cc0462f4382a16b5c6806b |
|
BLAKE2b-256 | 119eee706b5fc5b5a72e31283f66e68730abf802469bbc373ff0d05e68d7e2df |
File details
Details for the file pyerfa-2.0.1.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
- Upload date:
- Size: 321.1 kB
- Tags: PyPy, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4991dee680ff36c87911d8faa4c7d1aa6278ad9b5e0d16158cf22fa7d74ba25c |
|
MD5 | 4720bd985d010f46344515e5d72b3b87 |
|
BLAKE2b-256 | 983202fe8bf940d8ce2cc482c48056ccc6b64628f622a56fa773810199637fa8 |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 349.4 kB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66292d437dcf75925b694977aa06eb697126e7b86553e620371ed3e48b5e0ad0 |
|
MD5 | 272ccd5c0eea6d6b9332cc61d45601f2 |
|
BLAKE2b-256 | b41197233cf23ad5411ac6f13b1d6ee3888f90ace4f974d9bf9db887aa428912 |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-win32.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-win32.whl
- Upload date:
- Size: 340.0 kB
- Tags: CPython 3.9+, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d30b9b0df588ed5467e529d851ea324a67239096dd44703125072fd11b351ea2 |
|
MD5 | 18c34b4edc1096948650aabea2ad1ca1 |
|
BLAKE2b-256 | 2c56b22b35c8551d2228ff8d445e63787112927ca13f6dc9e2c04f69d742c95b |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 723.0 kB
- Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07b80cd70701f5d066b1ac8cce406682cfcd667a1186ec7d7ade597239a6021d |
|
MD5 | fee2cfe552fb0e3292f4b9015c9ca551 |
|
BLAKE2b-256 | b9f5ff91ee77308793ae32fa1e1de95e9edd4551456dd888b4e87c5938657ca5 |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 738.7 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e43c7194e3242083f2350b46c09fd4bf8ba1bcc0ebd1460b98fc47fe2389906 |
|
MD5 | 9165a1d6f1538d2a3c2ecb2045a41665 |
|
BLAKE2b-256 | e5e0050018d855d26d3c0b4a7d1b2ed692be758ce276d8289e2a2b44ba1014a5 |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 692.8 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0603e8e1b839327d586c8a627cdc634b795e18b007d84f0cda5500a0908254e |
|
MD5 | 6fd2dff6167a8824685a4d328d6dce4c |
|
BLAKE2b-256 | cb96b6210fc624123c8ae13e1eecb68fb75e3f3adff216d95eee1c7b05843e3e |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 329.4 kB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be1aeb70390dd03a34faf96749d5cabc58437410b4aab7213c512323932427df |
|
MD5 | f09efe991b5afd7fadec635eff31f851 |
|
BLAKE2b-256 | 114a31a363370478b63c6289a34743f2ba2d3ae1bd8223e004d18ab28fb92385 |
File details
Details for the file pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl
- Upload date:
- Size: 341.8 kB
- Tags: CPython 3.9+, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b282d7c60c4c47cf629c484c17ac504fcb04abd7b3f4dfcf53ee042afc3a5944 |
|
MD5 | f32c2a62cd67169b73061cad15d018d5 |
|
BLAKE2b-256 | 7dd93448a57cb5bd19950de6d6ab08bd8fbb3df60baa71726de91d73d76c481b |