Algorithms from Practical Astronomy with your Calculator or Spreadsheet by Peter Duffett-Smith, implemented in Python 3. API documentation is published here.
If you're interested in this topic, please buy the book! It provides far more detail and context.
Install:
pip install practical-astronomyCreate easter.py:
import practical_astronomy.pa_datetime as pd
print(pd.get_date_of_easter(2024))Run it:
python easter.pyResult:
(3, 31, 2024)
If you clone the repo locally, you can run unit tests with the Make utility:
make all-tests
Documentation here.
| Type | Description |
|---|---|
| Calculate | Date of Easter |
| Convert | Civil Date to Day Number |
| Convert | Greenwich Date <-> Julian Date |
| Convert | Julian Date to Day-of-Week |
| Extract | Day, Month, and Year parts of Julian Date |
| Convert | Civil Time <-> Decimal Hours |
| Extract | Hour, Minutes, and Seconds parts of Decimal Hours |
| Convert | Local Civil Time <-> Universal Time |
| Convert | Universal Time <-> Greenwich Sidereal Time |
| Convert | Greenwich Sidereal Time <-> Local Sidereal Time |
| Type | Description |
|---|---|
| Convert | Angle <-> Decimal Degrees |
| Convert | Right Ascension <-> Hour Angle |
| Convert | Equatorial Coordinates <-> Horizon Coordinates |
| Calculate | Obliquity of the Ecliptic |
| Convert | Ecliptic Coordinates <-> Equatorial Coordinates |
| Convert | Equatorial Coordinates <-> Galactic Coordinates |
| Calculate | Angle between two objects |
| Calculate | Rising and Setting times for an object |
| Calculate | Precession (corrected coordinates between two epochs) |
| Calculate | Nutation (in ecliptic longitude and obliquity) for a Greenwich date |
| Calculate | Effects of aberration for ecliptic coordinates |
| Calculate | RA and Declination values, corrected for atmospheric refraction and geocentric parallax |
| Calculate | Heliographic coordinates |
| Calculate | Carrington rotation number |
| Calculate | Selenographic (lunar) coordinates (sub-Earth and sub-Solar) |
| Type | Description |
|---|---|
| Calculate | Approximate and precise positions of the Sun |
| Calculate | Sun's distance and angular size |
| Calculate | Local sunrise and sunset |
| Calculate | Morning and evening twilight |
| Calculate | Equation of time |
| Calculate | Solar elongation |
| Type | Description |
|---|---|
| Calculate | Approximate and precise position of planet |
| Calculate | Visual aspects of planet (distance, angular diameter, phase, light time, position angle of bright limb, and apparent magnitude) |
| Calculate | Position of comet (elliptical and parabolic) |
| Calculate | Binary star orbit data |
| Type | Description |
|---|---|
| Calculate | Approximate and precise position of Moon |
| Calculate | Moon phase and position angle of bright limb |
| Calculate | Times of new Moon and full Moon |
| Calculate | Moon's distance, angular diameter, and horizontal parallax |
| Calculate | Local moonrise and moonset |
| Type | Description |
|---|---|
| Calculate | Lunar eclipse occurrence and circumstances |
| Calculate | Solar eclipse occurrence and circumstances |