Version 18.104.22.168 (2015 August 19)¶
- The new
ephem.cities.lookup()function runs a Google geocoding search and returns an
Observerobject for the top result.
- When an Earth satellite position cannot be computed, PyEphem now raises an exception instead of freezing and locking up Python.
- Upgraded to the
libastrofrom XEphem 3.7.6, bringing improvements to Earth satellite transit calculations.
- GitHub issue #76: Earth satellite velocity is now calculated with greater accuracy.
- GitHub issue #64: rising and setting routines are now careful to
Observer.dateeven if they die with an exception.
- GitHub issue #56: Earth satellites now raise an exception for dates a
year or more from their TLE epoch, because
libastrorefuses to process old elements and would return nonsense coordinates.
- GitHub issue #44: a segmentation fault would eventually kill Python 3
if a script called
Body.copy()either directly or via the Standard Library
Version 22.214.171.124 (2014 May 29)¶
- Gave all bodies a
.parallactic_angle()method that computes the same angle as the
PAcolumn in XEphem itself (GitHub #24).
- Added a
.longalias for the
.lonlongitude attribute on ecliptic and galactic coordinates (GitHub #41).
- Combined the Python 2 and Python 3 code bases using the magic of
#ifdefand a barrel full of
print()parentheses, which should prevent either version from ever falling behind the other again.
- Fixed GitHub issues #35, #37, #40.
Version 126.96.36.199 (2013 December 21)¶
separation()function will no longer allow hardware floating point rounding errors to produce a non-zero result when a position is compared to itself, nor return a
NaNresult (which one user reports seeing as the angle
1389660529:33:00.8degrees). (GitHub #31)
- PyEphem routines no longer ignore the microseconds of
datetimeobjects provided as input. (GitHub #29)
- PyEphem is now more careful to raise an exception if angles are specified using strings that contain invalid characters.
- The Earth-satellite attributes
decare now correctly referenced to the epoch-of-date, instead of being expressed in J2000 like the astrometric attributes.
Version 188.8.131.52 (2011 November 24)¶
- Upgraded the underlying astronomy library to 3.7.5.
- Incompatible Change: the transit functions are now symmetric with
the rising and setting functions: while they still return the date and
time of the event, they do not alter the
.dateattribute of the Observer which gets passed to them. This brings their behavior into line with the documentation. (Launchpad #861526)
Date('1986-2-9')now means February 9th instead of meaning “the beginning of 1986, minus two months, minus nine days.” (Launchpad #792321)
- Earth satellite positions are now computed to six additional digits, in an attempt to eliminate small jumps in position that some users were observing in their figures. (Launchpad #812906)
- Coordinate pair creation no longer leaks memory. (Launchpad #798155)
Version 184.108.40.206 (2011 January 5)¶
- Renamed the
lonafter realizing that the official syllabification of “longitude” is “lon·gi·tude.” Also changed
Bodyobjects so that
hloninstead. The old names will always be supported for compatibility with older programs.
- Upgraded the underlying astronomy library to 3.7.4.
- Bugfix: repaired the
separation()function so that it no longer leaks memory; thanks to Enno Middelburg for the bug report!
- Bugfix: completely rebuilt the geographic data used by
city()after Giacomo Boffi pointed out several errors.
Version 220.127.116.11 (2009 April 30)¶
- Added a new
Observerthat searches for when a satellite next rises, culminates, and sets.
- Added a
Observerwhich computes the standard atmospheric pressure at the observer’s current elevation. This function now gets called automatically on new
city()objects before they are returned to the user.
- Corrected the altitude of San Francisco as returned by
- Improved the copyright message so that two more authors are credited.
Version 18.104.22.168 (2008 October 3)¶
Jupiterto provide the central meridian longitude in both System I and System II.
- Bugfix: Saturn was returning the wrong values for its earthward and sunward angle tilt.
Version 22.214.171.124 (2008 July 2)¶
- Bugfix: the rising and setting functions, if called repeatedly, would sometimes get hung up on a single answer which they would return over and over again instead of progressing to the next rising or setting. They should now always progress instead of getting stuck.
Version 126.96.36.199 (2008 July 1)¶
- Bugfix: the rising and setting functions were attempting to achieve such high precision that users sometimes found circumstances under which they would not complete at all! They now stop and return an answer once they are withing a half-second of the real time of rising, transit, or setting, which solves the problem without damaging the quality of the results when tested against the Naval Observatory.
- Upgraded to the libastro from XEphem 3.7.3.
Version 188.8.131.52 (2008 June 12)¶
Incompatible Change: After feedback from users, I have changed the
Observermethods which find risings, settings, and transits, so that they do not change their Observer’s
.dateattribute. So the sequence:
r1 = boston.next_rising(mars) r2 = boston.next_rising(mars)
now computes the same value twice! If you want a series of calls to each begin when the other left off, you can use the
start=parameter described in the next item:
r1 = boston.next_rising(mars) r2 = boston.next_rising(mars, start=r1)
Added an optional
start=argument to the rising, setting, and transit
Observerfunctions, that tells them from which date and time to begin their search.
Bugfix: Rewrote planetary moon routines so that moons of Mars, Jupiter, Saturn, and Uranus now return appropriate data for years 1999-2020. (Each moon had been returning the unmodified position of its planet, because I was unsure whether I could distribute the moon data with PyEphem.)
You can no longer create arbitrary attributes on an
Observer, to prevent users from accidentially saying things like
here.lonwhen they mean
here.long. Create your own subclass of
Observerif you need the power to set your own attributes.
The ephem module now provides a
Added test suite that tests planet and planet moon positions against JPL ephemeris data (needs more work).
Version 184.108.40.206 (2008 January 8)¶
Three new classes
Galacticallow coordinates to be transformed between the three systems (ability to transform coordinates was requested by Aaron Parsons).
Added constants for popular epochs
Added named functions for every solstice and equinox (before, only the vernal equinox could be asked for specifically).
Product tests have been moved inside of the
ephemmodule itself, and can now be invoked simply by running:
$ python setup.py test
Angle()can no longer be directly instantiated.
Bugfix: San Francisco had the wrong coordinates in the cities database (pointed out by Randolph Bentson).
Version 220.127.116.11 (2007 December 9)¶
The phases of the moon can now be determined through the functions
previous_new_moon(), et cetera.
Added a modest database of world cities; the
city()function returns a new Observer on each call:
observer = ephem.city('Boston')
Using the old
Bodyobjects now causes a deprecation warning.
Bugfix: the last release of PyEphem omitted the constants
sun_radius; the constant
c(the speed of light) is also now available.
Version 18.104.22.168 (2007 October 1)¶
- Functions now exist to find equinoxes and solstices.
- Bodies now cleanly offer three different versions of their
position, rather than making the user remember obscure rules for
having each of these three values computed:
- Astrometric geocetric right ascension and declination
- Apparent geocentric right ascension and declination
- Apparent topocentric right ascension and declination
- Bodies can now find their next or previous times of transit, anti-transit, rising, and setting.
localtime()function can convert PyEphem
Dateobjects to local time.
ephem.angleinstances can survive unary
-without getting changed into plain floats.
elevObserver attribute has been renamed to
- Observers now display useful information when printed.
- Added a much more extensive test suite, which, among other things, now compares results with the United States Naval Observatory, insisting upon arcsecond agreement.
- Bugfix: When a fixed body is repeatedly precessed to different dates, its original position will no longer accumulate error.
Version 3.7.2a (2007 June)¶
- Upgraded to the libastro from XEphem 3.7.2.
- Should now compile under Windows!
- Bugfix: rewrote date-and-time parsing to avoid the use of
sscanf(), which was breaking under Windows and requiring the insertion of a leading space to succeed.
- Improved the error returned when a date string cannot be parsed, so that it now quotes the objectionable string (so you can tell which of several date strings on the same line gave an error!).
Version 3.7b (2005 August 25)¶
- Bugfix: in the underlying library, earth satellite objects do
EarthSatellitemust inherit from
Planet(and lose several attributes, which were returning nonsense values).
Version 3.7a (2005 August 22)¶
- Upgraded to the libastro from XEphem 3.7.
- Bugfix: after creating an earth satellite and calling
compute(), some attributes (including
sublong) would always equal zero until you had accessed a more mainstream attribute (like
dec); now, all attributes should return correct values on their first access.
- Bugfix: the
sidereal_time()function of an
Observernow returns a correct floating-point number that measures in radians, rather than a number in the range [0,1).
Observernow has an
radec_of(az=, alt=)function that returns the right ascension and declination of a point in the sky.
- You can normalize an
Angleinto the range [0,2pi) by requesting the attribute
- Earth satellite objects read in from TLE files now retain their
TLE catalog number as an attribute
- Uninitialized bodies now start off with
Nonefor their name, rather than the string
Version 3.6.4a (2005 July 18)¶
Upgraded to the libastro from XEphem 3.6.4, which:
- No longer incorrectly applies relativistic deflection to objects on this side of the Sun, whose light will obviously not go past the sun and be deflected.
- Now correctly handles earth satellites with a negative
Added several functions to the module:
moon_phases()computes a new and full moon following a date.
delta_t()computes the difference between Terrestrial Time and Universal Time.
julian_date()computes the Julian Date for a
uranometria2000()determine the star atlas page on which a given location falls, given as right ascension and declination.
Added a function to the Observer class, which takes no arguments:
sidereal_time()computes the sidereal time for the Observer
Observernow has a
horizonattribute, with which you can specify the degrees altitude at which you define an object to be rising or setting. Normally, all rising and setting times are computed for when the object appears to be exactly at the horizon (at zero degrees altitude).
Version 3.6.1a (2004 November 25)¶
- All major moons in the solar system are now supported.
copy()method to bodies, that returns a new instance of the body which should be identical in all properties.
- Improved the definitions of body attributes, both in their docstrings and in the PyEphem Manual.
- Improved access to the orbital parameters by which the user
defines bodies in ellipical, parabolic, and hyperbolic orbits, as
well as artificial Earth satellites; users can now create such
objects entirely through setting their parameters, without having
to use the
readdb()function to parse a definition of the object in Ephem database format.
- Source distribution now includes test suites, one of which actually checks to see whether your version of PyEphem produces the same output as the examples from the PyEphem Manual (two of which will fail).
- Following the same adjustment in the XEphem application, PyEphem now uses a default atmospheric pressure of 1010 millibar, rather than the old value of 1013, when computing the altitude of a body near the horizon.
constellation()function now correctly forces the computation of a body’s
decbefore determining the constellation in which the body lies.
- Code should produce cleaner compiles on many platforms.