skyfielders / python-skyfield

Elegant astronomy for Python
MIT License
1.41k stars 212 forks source link

12 hour discrepancy in match to old US almanac? #733

Closed EHofbeck closed 2 years ago

EHofbeck commented 2 years ago

The American Ephemeris and Nautical Almanac for the year 1920 lists the moon's right ascension and declination as follows (for a few selected dates and times): Jan 1st, 1920 00:00 GMT RA= 2h 25m 31.43s DEC=15 deg 48’ 47.8’’ Jan 1st, 1920 12:00 GMT RA= 2h 55m 2.10s DEC= 17 deg 24’ 3.5’’ Jan 2nd, 1920 00:00 GMT RA= 3h 25m 21.53s DEC= 18 deg 43’ 37.6’’

I’ve attempted to reproduce the almanac data with the following

from skyfield.api import load
import dateutil.parser
ts = load.timescale()
planets = load('de421.bsp')
earth=planets['earth']
moon=planets['moon']
epoch=2422324.5 # julian date for Jan 1st 1920 00:00 GMT
t_string = ["1920-01-01 12:00:00+00:00","1920-01-02 00:00:00+00:00","1920-01-02 12:00:00+00:00"]
for td_element in t_string:
print(td_element)
    t = ts.utc(dateutil.parser.parse(td_element))
    ra, dec, distance = earth.at(t).observe(moon).apparent().radec(epoch=2422324.5)
    print (ra, dec,"\n")

the output is:

1920-01-01 12:00:00+00:00
02h 25m 33.19s +15deg 48' 55.9" 

1920-01-02 00:00:00+00:00
02h 55m 03.90s +17deg 24' 10.8" 

1920-01-02 12:00:00+00:00
03h 25m 23.38s +18deg 43' 43.9" 

in each case, the output almost exactly reproduces the almanac data, but for 12 hours early than the sought time. What coding changes do I need to make?

brandon-rhodes commented 2 years ago

When two astronomy sources disagree, it's helpful to bring in a third to break the tie. Here's the HORIZONS service from the JPL:

https://ssd.jpl.nasa.gov/horizons/app.html#/

Putting in the circumstances of your script, I get this back:

 Revised: July 31, 2013             Moon / (Earth)                          301

 GEOPHYSICAL DATA (updated 2018-Aug-15):
  Vol. mean radius, km  = 1737.53+-0.03    Mass, x10^22 kg       =    7.349
  Radius (gravity), km  = 1738.0           Surface emissivity    =    0.92
  Radius (IAU), km      = 1737.4           GM, km^3/s^2          = 4902.800066
  Density, g/cm^3       =    3.3437        GM 1-sigma, km^3/s^2  =  +-0.0001  
  V(1,0)                =   +0.21          Surface accel., m/s^2 =    1.62
  Earth/Moon mass ratio = 81.3005690769    Farside crust. thick. = ~80 - 90 km
  Mean crustal density  = 2.97+-.07 g/cm^3 Nearside crust. thick.= 58+-8 km 
  Heat flow, Apollo 15  = 3.1+-.6 mW/m^2   Mean angular diameter = 31'05.2"
  Heat flow, Apollo 17  = 2.2+-.5 mW/m^2   Sid. rot. rate, rad/s = 0.0000026617
  Geometric Albedo      = 0.12             Mean solar day        = 29.5306 d
  Obliquity to orbit    = 6.67 deg         Orbit period          = 27.321582 d
  Semi-major axis, a    = 384400 km        Eccentricity          = 0.05490
  Mean motion, rad/s    = 2.6616995x10^-6  Inclination           = 5.145 deg
  Apsidal period        = 3231.50 d        Nodal period          = 6798.38 d
                                 Perihelion  Aphelion    Mean
  Solar Constant (W/m^2)         1414+-7     1323+-7     1368+-7
  Maximum Planetary IR (W/m^2)   1314        1226        1268
  Minimum Planetary IR (W/m^2)      5.2         5.2         5.2
********************************************************************************

*******************************************************************************
Ephemeris / WWW_USER Sun Apr  3 20:20:44 2022 Pasadena, USA      / Horizons    
*******************************************************************************
Target body name: Moon (301)                      {source: DE441}
Center body name: Earth (399)                     {source: DE441}
Center-site name: GEOCENTRIC
*******************************************************************************
Start time      : A.D. 1920-Jan-01 00:00:00.0000 UT      
Stop  time      : A.D. 1920-Jan-03 00:00:00.0000 UT      
Step-size       : 720 minutes
*******************************************************************************
Target pole/equ : MOON_ME                         {East-longitude positive}
Target radii    : 1737.4 x 1737.4 x 1737.4 km     {Equator, meridian, pole}    
Center geodetic : 0.00000000,0.00000000,0.0000000 {E-lon(deg),Lat(deg),Alt(km)}
Center cylindric: 0.00000000,0.00000000,0.0000000 {E-lon(deg),Dxy(km),Dz(km)}
Center pole/equ : ITRF93                          {East-longitude positive}
Center radii    : 6378.1 x 6378.1 x 6356.8 km     {Equator, meridian, pole}    
Target primary  : Earth
Vis. interferer : MOON (R_eq= 1737.400) km        {source: DE441}
Rel. light bend : Sun, EARTH                      {source: DE441}
Rel. lght bnd GM: 1.3271E+11, 3.9860E+05 km^3/s^2                              
Atmos refraction: NO (AIRLESS)
RA format       : HMS
Time format     : CAL 
EOP file        : eop.220331.p220624                                           
EOP coverage    : DATA-BASED 1962-JAN-20 TO 2022-MAR-31. PREDICTS-> 2022-JUN-23
Units conversion: 1 au= 149597870.700 km, c= 299792.458 km/s, 1 day= 86400.0 s 
Table cut-offs 1: Elevation (-90.0deg=NO ),Airmass (>38.000=NO), Daylight (NO )
Table cut-offs 2: Solar elongation (  0.0,180.0=NO ),Local Hour Angle( 0.0=NO )
Table cut-offs 3: RA/DEC angular rate (     0.0=NO )                           
******************************************************************************************************************************************************************************
 Date__(UT)__HR:MN     R.A._____(ICRF)_____DEC    APmag   S-brt             delta      deldot     S-O-T /r     S-T-O  Sky_motion  Sky_mot_PA  RelVel-ANG  Lun_Sky_Brt  sky_SNR
******************************************************************************************************************************************************************************
$$SOE
 1920-Jan-01 00:00     02 01 10.30 +14 23 30.8  -11.018   4.765  0.00246765439775  -0.0531506  112.7865 /T   67.0810   35.549496   74.463976   -2.867256         n.a.     n.a.
 1920-Jan-01 12:00     02 29 55.02 +16 10 10.4  -11.230   4.644  0.00245283756825  -0.0492540  119.4153 /T   60.4603   36.006521   76.307414   -2.638729         n.a.     n.a.
 1920-Jan-02 00:00     02 59 30.77 +17 43 12.2  -11.436   4.519  0.00243932478970  -0.0441181  126.1296 /T   53.7556   36.436697   78.415421   -2.348077         n.a.     n.a.
 1920-Jan-02 12:00     03 29 55.17 +19 00 09.0  -11.636   4.390  0.00242747346736  -0.0377550  132.9212 /T   46.9752   36.825767   80.765241   -1.997167         n.a.     n.a.
 1920-Jan-03 00:00     04 01 02.73 +19 58 44.2  -11.832   4.255  0.00241762969461  -0.0302318  139.7778 /T   40.1312   37.159124   83.322183   -1.590267         n.a.     n.a.
$$EOE
******************************************************************************************************************************************************************************
Column meaning:

TIME

  Times PRIOR to 1962 are UT1, a mean-solar time closely related to the
prior but now-deprecated GMT. Times AFTER 1962 are in UTC, the current
civil or "wall-clock" time-scale. UTC is kept within 0.9 seconds of UT1
using integer leap-seconds for 1972 and later years.

  Conversion from the internal Barycentric Dynamical Time (TDB) of solar
system dynamics to the non-uniform civil UT time-scale requested for output
has not been determined for UTC times after the next July or January 1st.
Therefore, the last known leap-second is used as a constant over future
intervals.

  Time tags refer to the UT time-scale conversion from TDB on Earth
regardless of observer location within the solar system, although clock
rates may differ due to the local gravity field and no analog to "UT"
may be defined for that location.

  Any 'b' symbol in the 1st-column denotes a B.C. date. First-column blank
(" ") denotes an A.D. date. Calendar dates prior to 1582-Oct-15 are in the
Julian calendar system. Later calendar dates are in the Gregorian system.

  NOTE: "n.a." in output means quantity "not available" at the print-time.

 'R.A._____(ICRF)_____DEC' =
  Astrometric right ascension and declination of the target center with
respect to the observing site (coordinate origin) in the reference frame of
the planetary ephemeris (ICRF). Compensated for down-leg light-time delay
aberration.

  Units: RA  in hours-minutes-seconds of time,    HH MM SS.ff{ffff}
         DEC in degrees-minutes-seconds of arc,  sDD MN SC.f{ffff}

 'APmag   S-brt' =
   Moon's approximate apparent visual magnitude and surface brightness. When
phase angle < 7 deg (within ~1 day of full Moon), computed magnitude tends to
be about 0.12 too small.

   For Earth-based observers, the estimated dimming due to atmospheric
absorption (extinction) is available as a separate, requestable quantity.

   Surface brightness is the average airless visual magnitude of a
square-arcsecond of the illuminated portion of the apparent disk.

   Units: MAGNITUDES & MAGNITUDES PER SQUARE ARCSECOND

 'delta      deldot' =
   Apparent range ("delta", light-time aberrated) and range-rate ("delta-dot")
of the target center relative to the observer. A positive "deldot" means the
target center is moving away from the observer, negative indicates movement
toward the observer.  Units: AU and KM/S

 'S-O-T /r' =
   Sun-Observer-Target apparent SOLAR ELONGATION ANGLE seen from the observers'
location at print-time.

   The '/r' column provides a code indicating the targets' apparent position
relative to the Sun in the observers' sky, as described below:

   Case A: For an observing location on the surface of a rotating body, that
body rotational sense is considered:

    /T indicates target TRAILS Sun   (evening sky: rises and sets AFTER Sun)
    /L indicates target LEADS Sun    (morning sky: rises and sets BEFORE Sun)

   Case B: For an observing point that does not have a rotational model (such
as a spacecraft), the "leading" and "trailing" condition is defined by the
observers' heliocentric ORBITAL motion:

    * If continuing in the observers' current direction of heliocentric
       motion would encounter the targets' apparent longitude first, followed
       by the Sun's, the target LEADS the Sun as seen by the observer.

    * If the Sun's apparent longitude would be encountered first, followed
       by the targets', the target TRAILS the Sun.

   Two other codes can be output:
    /* indicates observer is Sun-centered    (undefined)
    /? Target is aligned with Sun center     (no lead or trail)

   The S-O-T solar elongation angle is numerically the minimum separation
angle of the Sun and target in the sky in any direction. It does NOT indicate
the amount of separation in the leading or trailing directions, which would
be defined along the equator of a spherical coordinate system.

   Units: DEGREES

 'S-T-O' =
   The Sun-Target-Observer angle; the interior vertex angle at target center
formed by a vector from the target to the apparent center of the Sun (at
reflection time on the target) and the apparent vector from target to the
observer at print-time. Slightly different from true PHASE ANGLE (requestable
separately) at the few arcsecond level in that it includes stellar aberration
on the down-leg from target to observer.  Units: DEGREES

 'Sky_motion  Sky_mot_PA  RelVel-ANG' =
  Total apparent angular rate of the target in the plane-of-sky. "Sky_mot_PA"
is the position angle of the target's direction of motion in the plane-of-sky,
measured counter-clockwise from the apparent of-date north pole direction.
"RelVel-ANG" is the flight path angle of the target's relative motion with
respect to the observer's line-of-sight, in the range [-90,+90], where positive
values indicate motion away from the observer, negative values are toward the
observer:

  -90 = target is moving directly toward the observer
    0 = target is moving at right angles to the observer's line-of-sight
  +90 = target is moving directly away from the observer

UNITS:  ARCSECONDS/MINUTE, DEGREES, DEGREES

 'Lun_Sky_Brt  sky_SNR' =
  Sky brightness due to moonlight scattered by Earth's atmosphere at the
target's position in the sky. "sky_SNR" is the visual signal-to-noise ratio
(SNR) of the target's surface brightness relative to background sky. Output
only for topocentric Earth observers when both the Moon and target are above
the local horizon and the Sun is in astronomical twilight (or further) below
the horizon, and the target is not the Moon or Sun. If all conditions are
not met, "n.a." is output. Galactic brightness, local sky light-pollution
and weather are NOT considered. Lunar opposition surge is considered. The
value returned is accurate under ideal conditions at the approximately 8-23%
level, so is a useful but not definitive value.

  If the target-body radius is also known, "sky_SNR" is output. This is the
approximate visual signal-to-noise ratio of the target's brightness divided
by lunar sky brightness. When sky_SNR < 1, the target is dimmer than the
ideal moonlight-scattering background sky, so unlikely to be detectable at
visual wavelengths. In practice, visibility requires sky_SNR > 1 and a
detector sensitive enough to reach the target's magnitude, even if it isn't
washed out by moonlight. When relating magnitudes and brightness values,
keep in mind their logarithmic relationship m2-m1 = -2.5*log_10(b2/b1).

  UNITS: VISUAL MAGNITUDES / ARCSECOND^2, and unitless ratio

Computations by ...

    Solar System Dynamics Group, Horizons On-Line Ephemeris System
    4800 Oak Grove Drive, Jet Propulsion Laboratory
    Pasadena, CA  91109   USA

    General site: https://ssd.jpl.nasa.gov/
    Mailing list: https://ssd.jpl.nasa.gov/email_list.html
    System news : https://ssd.jpl.nasa.gov/horizons/news.html
    User Guide  : https://ssd.jpl.nasa.gov/horizons/manual.html
    Connect     : browser        https://ssd.jpl.nasa.gov/horizons/app.html#/x
                  API            https://ssd-api.jpl.nasa.gov/doc/horizons.html
                  command-line   telnet ssd.jpl.nasa.gov 6775
                  e-mail/batch   https://ssd.jpl.nasa.gov/ftp/ssd/hrzn_batch.txt
                  scripts        https://ssd.jpl.nasa.gov/ftp/ssd/SCRIPTS
    Author      : Jon.D.Giorgini@jpl.nasa.gov

(Yes, it's verbose, but I always quote it at length because sometimes even the extra information is valuable.)

If I take your script and adjust it so that it uses UT1 rather than UTC, like HORIZONS, and so that it uses the J2000 epoch, then I get near perfect agreement with HORIZONS:

from skyfield.api import load
ts = load.timescale()
planets = load('de421.bsp')
earth=planets['earth']
moon=planets['moon']
epoch=2422324.5 # julian date for Jan 1st 1920 00:00 GMT
t_string = ["1920-01-01 12:00:00+00:00","1920-01-02 00:00:00+00:00","1920-01-02 12:00:00+00:00"]
tlist = [(1920, 1, 1, 12), (1920, 1, 2, 0), (1920, 1, 2, 12)]
for tup in tlist:
    t = ts.ut1(*tup)
    print(t.utc_jpl())
    ra, dec, distance = earth.at(t).observe(moon).apparent().radec() #epoch=2422324.5)
    print (ra, dec,"\n")

Output:

A.D. 1920-Jan-01 11:59:39.4330 UTC
02h 29m 55.69s +16deg 10' 14.0" 

A.D. 1920-Jan-01 23:59:39.4338 UTC
02h 59m 31.59s +17deg 43' 15.8" 

A.D. 1920-Jan-02 11:59:39.4347 UTC
03h 29m 56.14s +19deg 00' 12.5" 

Given that NASA and Skyfield agree, my guess would be that your old 1920 ephemeris might be off by 12 hours? Could you share an image of the page you're looking at?

EHofbeck commented 2 years ago

Brandon,

thank you very much for your reply - and the time expended on this. I've attached two single page PDFs, covering early January 1920. One is from "The Nautical Almanac and Ephemeris for the Year 1920", while the second is from the much more condensed "The Nautical Almanac for the Year 1920". It shouldn't be a surprise that the almanac (without ephemeris) reproduces the Almanac and Ephemeris data, since doubtless they came from the same computational source.

---Eric Hofbeck

On Sun, Apr 3, 2022 at 8:29 PM Brandon Rhodes @.***> wrote:

When two astronomy sources disagree, it's helpful to bring in a third to break the tie. Here's the HORIZONS service from the JPL:

https://ssd.jpl.nasa.gov/horizons/app.html#/

Putting in the circumstances of your script, I get this back:

Revised: July 31, 2013 Moon / (Earth) 301

GEOPHYSICAL DATA (updated 2018-Aug-15): Vol. mean radius, km = 1737.53+-0.03 Mass, x10^22 kg = 7.349 Radius (gravity), km = 1738.0 Surface emissivity = 0.92 Radius (IAU), km = 1737.4 GM, km^3/s^2 = 4902.800066 Density, g/cm^3 = 3.3437 GM 1-sigma, km^3/s^2 = +-0.0001 V(1,0) = +0.21 Surface accel., m/s^2 = 1.62 Earth/Moon mass ratio = 81.3005690769 Farside crust. thick. = ~80 - 90 km Mean crustal density = 2.97+-.07 g/cm^3 Nearside crust. thick.= 58+-8 km Heat flow, Apollo 15 = 3.1+-.6 mW/m^2 Mean angular diameter = 31'05.2" Heat flow, Apollo 17 = 2.2+-.5 mW/m^2 Sid. rot. rate, rad/s = 0.0000026617 Geometric Albedo = 0.12 Mean solar day = 29.5306 d Obliquity to orbit = 6.67 deg Orbit period = 27.321582 d Semi-major axis, a = 384400 km Eccentricity = 0.05490 Mean motion, rad/s = 2.6616995x10^-6 Inclination = 5.145 deg Apsidal period = 3231.50 d Nodal period = 6798.38 d Perihelion Aphelion Mean Solar Constant (W/m^2) 1414+-7 1323+-7 1368+-7 Maximum Planetary IR (W/m^2) 1314 1226 1268 Minimum Planetary IR (W/m^2) 5.2 5.2 5.2



Ephemeris / WWW_USER Sun Apr 3 20:20:44 2022 Pasadena, USA / Horizons


Target body name: Moon (301) {source: DE441} Center body name: Earth (399) {source: DE441} Center-site name: GEOCENTRIC


Start time : A.D. 1920-Jan-01 00:00:00.0000 UT Stop time : A.D. 1920-Jan-03 00:00:00.0000 UT Step-size : 720 minutes


Target pole/equ : MOON_ME {East-longitude positive} Target radii : 1737.4 x 1737.4 x 1737.4 km {Equator, meridian, pole} Center geodetic : 0.00000000,0.00000000,0.0000000 {E-lon(deg),Lat(deg),Alt(km)} Center cylindric: 0.00000000,0.00000000,0.0000000 {E-lon(deg),Dxy(km),Dz(km)} Center pole/equ : ITRF93 {East-longitude positive} Center radii : 6378.1 x 6378.1 x 6356.8 km {Equator, meridian, pole} Target primary : Earth Vis. interferer : MOON (R_eq= 1737.400) km {source: DE441} Rel. light bend : Sun, EARTH {source: DE441} Rel. lght bnd GM: 1.3271E+11, 3.9860E+05 km^3/s^2 Atmos refraction: NO (AIRLESS) RA format : HMS Time format : CAL EOP file : eop.220331.p220624 EOP coverage : DATA-BASED 1962-JAN-20 TO 2022-MAR-31. PREDICTS-> 2022-JUN-23 Units conversion: 1 au= 149597870.700 km, c= 299792.458 km/s, 1 day= 86400.0 s Table cut-offs 1: Elevation (-90.0deg=NO ),Airmass (>38.000=NO), Daylight (NO ) Table cut-offs 2: Solar elongation ( 0.0,180.0=NO ),Local Hour Angle( 0.0=NO ) Table cut-offs 3: RA/DEC angular rate ( 0.0=NO )


Date(UT)HR:MN R.A.(ICRF)DEC APmag S-brt delta deldot S-O-T /r S-T-O Sky_motion Sky_mot_PA RelVel-ANG Lun_Sky_Brt sky_SNR


$$SOE 1920-Jan-01 00:00 02 01 10.30 +14 23 30.8 -11.018 4.765 0.00246765439775 -0.0531506 112.7865 /T 67.0810 35.549496 74.463976 -2.867256 n.a. n.a. 1920-Jan-01 12:00 02 29 55.02 +16 10 10.4 -11.230 4.644 0.00245283756825 -0.0492540 119.4153 /T 60.4603 36.006521 76.307414 -2.638729 n.a. n.a. 1920-Jan-02 00:00 02 59 30.77 +17 43 12.2 -11.436 4.519 0.00243932478970 -0.0441181 126.1296 /T 53.7556 36.436697 78.415421 -2.348077 n.a. n.a. 1920-Jan-02 12:00 03 29 55.17 +19 00 09.0 -11.636 4.390 0.00242747346736 -0.0377550 132.9212 /T 46.9752 36.825767 80.765241 -1.997167 n.a. n.a. 1920-Jan-03 00:00 04 01 02.73 +19 58 44.2 -11.832 4.255 0.00241762969461 -0.0302318 139.7778 /T 40.1312 37.159124 83.322183 -1.590267 n.a. n.a. $$EOE


Column meaning:

TIME

Times PRIOR to 1962 are UT1, a mean-solar time closely related to the prior but now-deprecated GMT. Times AFTER 1962 are in UTC, the current civil or "wall-clock" time-scale. UTC is kept within 0.9 seconds of UT1 using integer leap-seconds for 1972 and later years.

Conversion from the internal Barycentric Dynamical Time (TDB) of solar system dynamics to the non-uniform civil UT time-scale requested for output has not been determined for UTC times after the next July or January 1st. Therefore, the last known leap-second is used as a constant over future intervals.

Time tags refer to the UT time-scale conversion from TDB on Earth regardless of observer location within the solar system, although clock rates may differ due to the local gravity field and no analog to "UT" may be defined for that location.

Any 'b' symbol in the 1st-column denotes a B.C. date. First-column blank (" ") denotes an A.D. date. Calendar dates prior to 1582-Oct-15 are in the Julian calendar system. Later calendar dates are in the Gregorian system.

NOTE: "n.a." in output means quantity "not available" at the print-time.

'R.A.(ICRF)DEC' = Astrometric right ascension and declination of the target center with respect to the observing site (coordinate origin) in the reference frame of the planetary ephemeris (ICRF). Compensated for down-leg light-time delay aberration.

Units: RA in hours-minutes-seconds of time, HH MM SS.ff{ffff} DEC in degrees-minutes-seconds of arc, sDD MN SC.f{ffff}

'APmag S-brt' = Moon's approximate apparent visual magnitude and surface brightness. When phase angle < 7 deg (within ~1 day of full Moon), computed magnitude tends to be about 0.12 too small.

For Earth-based observers, the estimated dimming due to atmospheric absorption (extinction) is available as a separate, requestable quantity.

Surface brightness is the average airless visual magnitude of a square-arcsecond of the illuminated portion of the apparent disk.

Units: MAGNITUDES & MAGNITUDES PER SQUARE ARCSECOND

'delta deldot' = Apparent range ("delta", light-time aberrated) and range-rate ("delta-dot") of the target center relative to the observer. A positive "deldot" means the target center is moving away from the observer, negative indicates movement toward the observer. Units: AU and KM/S

'S-O-T /r' = Sun-Observer-Target apparent SOLAR ELONGATION ANGLE seen from the observers' location at print-time.

The '/r' column provides a code indicating the targets' apparent position relative to the Sun in the observers' sky, as described below:

Case A: For an observing location on the surface of a rotating body, that body rotational sense is considered:

/T indicates target TRAILS Sun   (evening sky: rises and sets AFTER Sun)
/L indicates target LEADS Sun    (morning sky: rises and sets BEFORE Sun)

Case B: For an observing point that does not have a rotational model (such as a spacecraft), the "leading" and "trailing" condition is defined by the observers' heliocentric ORBITAL motion:

* If continuing in the observers' current direction of heliocentric
   motion would encounter the targets' apparent longitude first, followed
   by the Sun's, the target LEADS the Sun as seen by the observer.

* If the Sun's apparent longitude would be encountered first, followed
   by the targets', the target TRAILS the Sun.

Two other codes can be output: /* indicates observer is Sun-centered (undefined) /? Target is aligned with Sun center (no lead or trail)

The S-O-T solar elongation angle is numerically the minimum separation angle of the Sun and target in the sky in any direction. It does NOT indicate the amount of separation in the leading or trailing directions, which would be defined along the equator of a spherical coordinate system.

Units: DEGREES

'S-T-O' = The Sun-Target-Observer angle; the interior vertex angle at target center formed by a vector from the target to the apparent center of the Sun (at reflection time on the target) and the apparent vector from target to the observer at print-time. Slightly different from true PHASE ANGLE (requestable separately) at the few arcsecond level in that it includes stellar aberration on the down-leg from target to observer. Units: DEGREES

'Sky_motion Sky_mot_PA RelVel-ANG' = Total apparent angular rate of the target in the plane-of-sky. "Sky_mot_PA" is the position angle of the target's direction of motion in the plane-of-sky, measured counter-clockwise from the apparent of-date north pole direction. "RelVel-ANG" is the flight path angle of the target's relative motion with respect to the observer's line-of-sight, in the range [-90,+90], where positive values indicate motion away from the observer, negative values are toward the observer:

-90 = target is moving directly toward the observer 0 = target is moving at right angles to the observer's line-of-sight +90 = target is moving directly away from the observer

UNITS: ARCSECONDS/MINUTE, DEGREES, DEGREES

'Lun_Sky_Brt sky_SNR' = Sky brightness due to moonlight scattered by Earth's atmosphere at the target's position in the sky. "sky_SNR" is the visual signal-to-noise ratio (SNR) of the target's surface brightness relative to background sky. Output only for topocentric Earth observers when both the Moon and target are above the local horizon and the Sun is in astronomical twilight (or further) below the horizon, and the target is not the Moon or Sun. If all conditions are not met, "n.a." is output. Galactic brightness, local sky light-pollution and weather are NOT considered. Lunar opposition surge is considered. The value returned is accurate under ideal conditions at the approximately 8-23% level, so is a useful but not definitive value.

If the target-body radius is also known, "sky_SNR" is output. This is the approximate visual signal-to-noise ratio of the target's brightness divided by lunar sky brightness. When sky_SNR < 1, the target is dimmer than the ideal moonlight-scattering background sky, so unlikely to be detectable at visual wavelengths. In practice, visibility requires sky_SNR > 1 and a detector sensitive enough to reach the target's magnitude, even if it isn't washed out by moonlight. When relating magnitudes and brightness values, keep in mind their logarithmic relationship m2-m1 = -2.5*log_10(b2/b1).

UNITS: VISUAL MAGNITUDES / ARCSECOND^2, and unitless ratio

Computations by ...

Solar System Dynamics Group, Horizons On-Line Ephemeris System
4800 Oak Grove Drive, Jet Propulsion Laboratory
Pasadena, CA  91109   USA

General site: https://ssd.jpl.nasa.gov/
Mailing list: https://ssd.jpl.nasa.gov/email_list.html
System news : https://ssd.jpl.nasa.gov/horizons/news.html
User Guide  : https://ssd.jpl.nasa.gov/horizons/manual.html
Connect     : browser        https://ssd.jpl.nasa.gov/horizons/app.html#/x
              API            https://ssd-api.jpl.nasa.gov/doc/horizons.html
              command-line   telnet ssd.jpl.nasa.gov 6775
              e-mail/batch   https://ssd.jpl.nasa.gov/ftp/ssd/hrzn_batch.txt
              scripts        https://ssd.jpl.nasa.gov/ftp/ssd/SCRIPTS
Author      : ***@***.***

(Yes, it's verbose, but I always quote it at length because sometimes even the extra information is valuable.)

If I take your script and adjust it so that it uses UT1 rather than UTC, like HORIZONS, and so that it uses the J2000 epoch, then I get near perfect agreement with HORIZONS:

from skyfield.api import load ts = load.timescale() planets = load('de421.bsp') earth=planets['earth'] moon=planets['moon'] epoch=2422324.5 # julian date for Jan 1st 1920 00:00 GMT t_string = ["1920-01-01 12:00:00+00:00","1920-01-02 00:00:00+00:00","1920-01-02 12:00:00+00:00"] tlist = [(1920, 1, 1, 12), (1920, 1, 2, 0), (1920, 1, 2, 12)] for tup in tlist: t = ts.ut1(*tup) print(t.utc_jpl()) ra, dec, distance = earth.at(t).observe(moon).apparent().radec() #epoch=2422324.5) print (ra, dec,"\n")

Output:

A.D. 1920-Jan-01 11:59:39.4330 UTC 02h 29m 55.69s +16deg 10' 14.0"

A.D. 1920-Jan-01 23:59:39.4338 UTC 02h 59m 31.59s +17deg 43' 15.8"

A.D. 1920-Jan-02 11:59:39.4347 UTC 03h 29m 56.14s +19deg 00' 12.5"

Given that NASA and Skyfield agree, my guess would be that your old 1920 ephemeris might be off by 12 hours? Could you share an image of the page you're looking at?

— Reply to this email directly, view it on GitHub https://github.com/skyfielders/python-skyfield/issues/733#issuecomment-1087073449, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYRKTMCOCQ6VXDDEAFLFMW3VDJO2JANCNFSM5SOE4E7A . You are receiving this because you authored the thread.Message ID: @.***>

JoshPaterson commented 2 years ago

I believe that old almanacs considered noon the beginning of the day instead of midnight. I found this history of the nautical almanac: https://aa.usno.navy.mil/publications/asa_history. It says:

1925 Civil time introduced with notation GCT. Day change to begin at midnight instead of noon.

brandon-rhodes commented 2 years ago

@EHofbeck — Alas, the PDF didn't come through here on GitHub — could you try logging into GitHub and pasting it into a fresh comment? Thanks!

@JoshPaterson — Thanks for the contribution! I had wondered whether an issue might be the old bias (reflected in how JD dates work) toward starting the day at noon GMT. Hopefully the PDF will shed light once we can see it.

EHofbeck commented 2 years ago

Brandon and Josh,

the noon-as-the-beginning-of-the-day makes sense. The Nautical Almanac and Ephemeris for 1920 states "2 422 325 is the Julian day number of January 1 , 1920" A Julian date calculator gives "The calendar date for 2422325.0 is 12:0:0.00 UT on January 1, 1920"

I've pasted the two one=page PDFs

---Eric Hofbeck

The_American_Ephemeris_and_Nautical_Alma_1920_Jan 1-4_moon.pdf The_American_nautical_alma_1920_jan_1-8_moon.pdf

brandon-rhodes commented 2 years ago

Thank you for the pages! Looking at them, I would not have guessed that they were using dates that started and ended at noon in Greenwich. It looks like it was in 1925 that GMT switched, in almanacs, to counting days and hours midnight-to-midnight:

https://www.ucolick.org/~sla/leapsecs/timescales.html#GMT

GMT in the British astronomical almanac before 1925 The mean solar time of the Greenwich meridian with the hours and days reckoned from noon. GMT in the British astronomical almanac beginning in 1925 The mean solar time of the Greenwich meridian with the hours and days reckoned from midnight. Within the pages of the British Nautical Almanac and Astronomical Ephemeris the time 00:00:00 GMT had previously meant noon, but starting this year 00:00:00 GMT now meant midnight. Sadler (1978) indicated that the use of the same name "GMT" for a quantity entirely opposite in meaning to the original term was by order of the Admiralty.