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

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
hp.play(bodies, names, colors, sizes)

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.2.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file hypatie-1.0.2.tar.gz.

File metadata

  • Download URL: hypatie-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 adf26ddac2e444b8232ce833d1278cee9dfb8663051d5c34017be3befeb219c0
MD5 0cd9262c6c2c90b4e8f9da295f006134
BLAKE2b-256 ceb48ee6cff91443cc08c992e15dfe0bafceb4a5b6c47e23f08511ced3d30e9e

See more details on using hashes here.

File details

Details for the file hypatie-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: hypatie-1.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ae05e531ddd72591a3d55f503e79c5e92b0779b166fb8c0d6ef0b859af382a90
MD5 2646f77cddf2103694923423a4edcf16
BLAKE2b-256 840160c60fbdcfe3725856fdc859f1248f7814c660e083d54f0b30dad875c287

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