Page Contents

Previous Page
ephem.Angle

Next Page
Newton’s Method

Example Scripts

Here are a few samples scripts that show how to use PyEphem to perform simple tasks.

hale_bopp_ephemeris.py

The following script prints out an ephemeris.

from ephem import *

hb = readdb("C/1995 O1 (Hale-Bopp),e,89.4245,282.4515,130.5641,183.6816," +
            "0.0003959,0.995026,0.1825,07/06.0/1998,2000,g -2.0,4.0")

here = Observer()
here.lat, here.lon, here.elev = '33:45:10', '-84:23:37', 320.0

print "Hale-Bopp: date, right ascension, declination, and magnitude:"

here.date = date('1997/2/15')
end = date('1997/5/15')
while here.date < end:
    hb.compute(me)
    print here.date, hb.ra, hb.dec, hb.mag
    here.date += 5

jovian_moon_chart.py

This script prints out where the Jovian moons are around Jupiter for the next few days.

import ephem

moons = ((ephem.Io(), 'i'),
         (ephem.Europa(), 'e'),
         (ephem.Ganymede(), 'g'),
         (ephem.Callisto(), 'c'))

# How to place discrete characters on a line that actually represents
# the real numbers -maxradii to +maxradii.

linelen = 65
maxradii = 30.

def put(line, character, radii):
    if abs(radii) > maxradii:
        return
    offset = radii / maxradii * (linelen - 1) / 2
    i = int(linelen / 2 + offset)
    line[i] = character

interval = ephem.hour * 3
now = ephem.now()
now -= now % interval

t = now
while t < now + 2:
    line = [' '] * linelen
    put(line, 'J', 0)
    for moon, character in moons:
        moon.compute(t)
        put(line, character, moon.x)
    print str(ephem.date(t))[5:], ''.join(line)
    t += interval

print 'East is to the right;',
print ', '.join([ '%s = %s' % (c, m.name) for m, c in moons ])