from skyfield.api import Star, load
from skyfield.data import hipparcos
import math

with load.open(hipparcos.URL) as f:
    df = hipparcos.load_dataframe(f)

planets = load('de421.bsp')
earth = planets['earth']
ts = load.timescale()
t = ts.now()
astrometric = earth.at(t).observe(achernar_star)
ra, dec, distance = astrometric.radec()
f = float(ra._degrees)
f1= float(dec.degrees)
print('Dec', round(f1,2))
Sha 335.57
Dec -57.24

From Nautical Almanac

Sha 335.36
Dec -57.13
  • $\begingroup$ Did you use another Epoche? My guess : Almanac will use current while hipparcos is meanwhile a bit dated $\endgroup$ Dec 3, 2021 at 7:17
  • $\begingroup$ Thanks. I didn't quite understand the 'epoch', isn't that determined by the timescale import? It put me on rereading the doc's and the difference between 'astrometric and 'apparent' radec. Although I don't quite understand the difference, changing to 'apparent' radec seems to have worked. If you agree i'll close out this question. Thanks n Rgds Sybe $\endgroup$
    – sybe
    Dec 3, 2021 at 13:14
  • $\begingroup$ The “epoch” is the moment for which the positions are valid. Most times, positions are referred to the “J2000.0” epoch, which is January 0, 2000 (or December 31, 1999, if you prefer, but in order to keep it “year 2000,” astronomers have created this fictitious date of January 0). Stars will have some proper motion between J2000.0 and now, and there will also be the effects of precession, aberration, and nutation, for which you need to correct. Only then will you be able to compare apples with apples. $\endgroup$ Dec 3, 2021 at 23:05

1 Answer 1


Astronomical positions always come with a date on which they are accurate, the epoch.

If you compare data with a different reference frame (like from different catalogues), you have to compensate for the peculiar motion of the objects as well as changes in Earth's rotation (like nutation, precession etc) and other influences. These changes are not big, even when combined, but they are in the order of arc seconds up to arc minutes per year.

Ignoring the peculiar motion of the individual objects, and only taking into account changes to the earth's orbit and rotation, there are conversion formula or programmes one can apply to data at large to allow comparison of data with different reference epoch.

In particular the Hipparcos catalogue has a very unusual epoch of J1991.25" (8.75 Julian years before January 1.5, 2000 TT, e.g., April 2.5625, 1991 TT). The usual epoch right now is J2000 or maybe J2025 - but a Nautical Almanach might want to use data corrected for that particular year it is valid for.

  • 1
    $\begingroup$ The Nautical Almanac for 2021 has Achernar's SHA starting the year at 355.38, increasing to 355.39 in April, then decreasing to 355.36 in October, and ending the year at 355.37. Its south declination, similarly, varies from 57.14 to 57.12. Wikipedia has a good article "Astronomical Nutation" and a good illustration in the article "nutation." The variations are significant for celestial navigation: on the order of a mile over the course of a year. $\endgroup$
    – stretch
    Dec 4, 2021 at 13:03
  • $\begingroup$ Thanks for the information! I hadn't have such almanach in my hands so far - but indeed from navigation I know that an arc minute equals a mile difference - critical for navigation (that's how the nautical mile was defined at one point: one arc minute of the Earth's equatorial circumference). $\endgroup$ Dec 4, 2021 at 13:13
  • $\begingroup$ The website thenauticalalmanac.com has .pdf almanacs for the current year, many back years, a few future years and much more. $\endgroup$
    – stretch
    Dec 5, 2021 at 14:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .