Skip to main content

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

hypatie-1.0.3.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

hypatie-1.0.3-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for hypatie-1.0.3.tar.gz
Algorithm Hash digest
SHA256 10d890b1be45496ddb7d40c74776aa3a848667adeea74fcdd1306889383d4564
MD5 4046aa6dac92a4a3e9b4aa68654230f3
BLAKE2b-256 a94b83c9d704afb90737edd4d1bf9942f3a714ddd0469114a2b9fd9266a33c3b

See more details on using hashes here.

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

Hashes for hypatie-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1172dfee354ac2912b935e8e52d08f35940820c3fbafb3b636ab0a2abe665e0b
MD5 2210f6d9e9ece75cb0689f65090ffba0
BLAKE2b-256 2db9c60dbc1ebb1df02a81c72243486775cf8ac3582ed44d145d43660ba7c3c4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page