A python package for querying NASA's JPL HORIZONS API
Project description
Author: Behrouz Safari
License: MIT
hypatie
A python package for querying NASA's JPL HORIZONS API
Installation
You can install the latest version of hypatie from PyPI:
pip install hypatie
The only requirement is numpy.
Quick start
Let's get the positions of the sun between two times:
import hypatie as hp
t1 = '2021-03-20 08:00:00'
t2 = '2021-03-20 10:00:00'
If you want the apparent RA and DEC of the Sun with respect to Earth's center (geocentric):
obs = hp.Observer('sun', t1, t2, step=5)
Now you can access the time intervals with .time attribute:
print(obs.time)
[datetime.datetime(2021, 3, 20, 8, 0)
datetime.datetime(2021, 3, 20, 8, 24)
datetime.datetime(2021, 3, 20, 8, 48)
datetime.datetime(2021, 3, 20, 9, 12)
datetime.datetime(2021, 3, 20, 9, 36)
datetime.datetime(2021, 3, 20, 10, 0)]
To acces the position you can use obs.pos, obs.ra, or obs.dec:
print(obs.pos)
[[ 3.59938235e+02 -2.66803120e-02]
[ 3.59953431e+02 -2.00920520e-02]
[ 3.59968627e+02 -1.35038600e-02]
[ 3.59983823e+02 -6.91573600e-03]
[ 3.59999018e+02 -3.27680000e-04]
[ 1.42132560e-02 6.26030600e-03]]
The first column in the above array is RA and the second column is DEC.
It is possible to get the apparent RA & DEC of a targer with respect to a specified location on the surface of a body. For example, if you want to get the apparent RA & DEC of the Sun for the Eiffel Tower :
obs = hp.Observer('sun', t1, t2, step=5, center='2.2945,48.8584,300@399')
Note that 2.2945 is the longtitude, 48.8584 is the latitude and 300 (meters) is the elevation of the Eiffel Tower. We have specified '@399' at the end which means that this coordinates is situated on the Earth (399 is the Earth's code).
You can request the cartesian positions (x,y,z) of a target with Vector class.
vec = hp.Vector('sun', t1, t2, step=5)
As with the Observer class, there are two attributes .time and .pos for Vector class. Note that when creating a Vector class, you have .x, .y and .z attributes instead of .ra and .des.
For both Vector and Observer classes you can pass a single time to get position/state of a body at a single time:
vec = hp.Vector('sun', t1)
Example: animating James Webb Space Telescope
import hypatie as hp
import matplotlib.pyplot as plt
t1 = '2018-10-01 14:18:00'
t2 = '2024-12-31 12:18:00'
# get positions with respect to the barycenter of earth-moon
earth = hp.Vector('399', t1, t2, center='500@3', step=1000)
moon = hp.Vector('301', t1, t2, center='500@3', step=1000)
jwst = hp.Vector('-170', t1, t2, center='500@3', step=1000)
bodies = [earth, moon, jwst]
names = ['Earth', 'Moon', 'James Webb']
colors = ['b','g','r']
sizes = [20, 8, 3]
# play the animation
anim = hp.play(bodies, names, colors, sizes)
plt.show()
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 Distribution
File details
Details for the file hypatie-1.0.3.tar.gz
.
File metadata
- Download URL: hypatie-1.0.3.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10d890b1be45496ddb7d40c74776aa3a848667adeea74fcdd1306889383d4564 |
|
MD5 | 4046aa6dac92a4a3e9b4aa68654230f3 |
|
BLAKE2b-256 | a94b83c9d704afb90737edd4d1bf9942f3a714ddd0469114a2b9fd9266a33c3b |
File details
Details for the file hypatie-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: hypatie-1.0.3-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1172dfee354ac2912b935e8e52d08f35940820c3fbafb3b636ab0a2abe665e0b |
|
MD5 | 2210f6d9e9ece75cb0689f65090ffba0 |
|
BLAKE2b-256 | 2db9c60dbc1ebb1df02a81c72243486775cf8ac3582ed44d145d43660ba7c3c4 |