Giter Site home page Giter Site logo

eph's Introduction

https://travis-ci.org/bluephlavio/eph.svg?branch=master https://coveralls.io/repos/github/bluephlavio/eph/badge.svg?branch=master

Readme

The eph package provides some useful functions, classes and tools to retrieve, parse and manipulate ephemerides in an astropy-compatible way.

See eph-howto (jupyter notebook) for more info.

Basic Usage

import eph

req = eph.JplReq() # create the request
req.read('eph.ini', section='jplparams') # read parameters from 'jplparams' section in 'eph.ini'
req.set({
    'COMMAND': 'venus',
    'START_TIME': '2007-11-17',
    'STOP_TIME': '2017-4-22'
    'STEP_SIZE': '10d'
    }) # set parameters from dictionary
req['OBJ_DATA'] = False # set parameter dict-like
req.csv = True # set parameter as attributes
req.set(
    TABLE_TYPE='V',
    VEC_LABELS=False,
    VEC_TABLE=1
) # set position vectors output

res = req.query() # perform the request obtaining a response from Jpl Horizons service
e = res.parse() # parse the ephemeris in an astropy QTable

from astropy.io import ascii

ascii.write(e, format='csv') # write output data

The content of eph.ini can be something like this (see ftp://ssd.jpl_process.nasa.gov/pub/ssd/horizons_batch_example.long for a complete description of JPL parameters)

[jplparams]
MAKE_EPHEM=YES
REFERENCE_PLANE=ECLIPTIC
REF_SYSTEM=J2000
OUT_UNITS=AU-D

Shortcuts

eph package defines also some useful shortcut functions to easily access Jpl Horizons data. Instead of building a JplReq and get back a JplRes to parse, you can get an astropy QTable with

from eph import *
from datetime import datetime

e = get('venus', dates=['2000-1-1', datetime.now()])

Shortcut functions accept also one-date queries (non-interval) and multiple target objects. Behind the scenes eph makes multiple calls to JPL Horizons system and merge the results in one table. In this case non-key (used to join) columns are renamed with a prefix referring to the object (e.g. column X for object venus becomes venus_X). Meta info are listified and collapsed in a single value only if they take the same value for all objects.

from eph import *

e = get(['venus', 'mars'], dates='2017-04-22')

Dates has datetime.now() as default value so it can be omitted if you want present data.

from eph import *

e = get(['venus', 'mars'], table_type='V', vec_table=1) # present vector positional data for Venus and Mars

There are other shortcut functions like vec, pos, vel, elem, obs, radec, altaz, etc.. to simplify parameter settings.

For example, if you want vectors, type

e = vec('venus', dates=['2018-1-1', '2020-1-1']).

Command line tool

eph package also provides a command line tool:

$ eph venus --dates 2007-11-07 2017-04-22

This command gives you an ephemeris table of Venus starting from 2007-11-17 to 2017-4-22. You can also change the reference frame, the time-step size, the output etc.. through the options provided or setting up a config file. Check available options typing

$ eph --help

eph's People

Contributors

bluephlavio avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.