question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

planets BCRS coordinates obtained from de440.bsp are far away from Horizons site

See original GitHub issue

I compare planet’s BCRS positions computed using obj.at(t) by de430.bsp and data queried from Horizons web site. The difference is small enough.

But when I replace de430.bsp with de440.bsp, the difference are VERY LARGE. I wonder what is going on?

Following is my code snippet

from skyfield.api import load
from astroquery.jplhorizons import Horizons
from astropy.time import Time
import astropy.units as u
import numpy as np



def compare_obj(planets, code, year, month, day, hour=0, minute=0, second=0):
    '''
    compare position between jpl query and skyfield computation

    parameters:
    ----------
    code : 1,2,3,4,5,6,7,8,9,10,199,299,399,301

    year: int,
    month: int,
    day: int,
    hour: int default 0,
    minute: int default 0,
    second float default 0,
    '''

    # print(code)
    ts = load.timescale()
    t = ts.utc(year, month, day, hour, minute, second)
    objname = planets.names()[code][0]
    # print(objname)
    obj = planets[objname]
    icrf_sf = obj.at(t)
    # print(icrf_sf.position)
    icrf_sf_np = icrf_sf.position.km

    time = Time(t.utc_iso())
    times = time.tt+np.linspace(0, 1, 2)*u.s
    objquery = Horizons(id=str(code), id_type='majorbody', location='@0',
                        epochs={'start': times.value[0], 'stop': times.value[1], 'step': '1'})
    icrf_jpl = objquery.vectors(refplane='earth')
    icrf_jpl['x'].convert_unit_to('km')
    icrf_jpl['y'].convert_unit_to('km')
    icrf_jpl['z'].convert_unit_to('km')
    icrf_jpl_np = np.array(
        [icrf_jpl['x'][0], icrf_jpl['y'][0], icrf_jpl['z'][0]])
    print(objname + ' icrf_sf_np in km', icrf_sf_np)
    print(objname + ' icrf_jpl_np in km', icrf_jpl_np)
    print(objname + ' icrf_sf_np-icrf_jpl_np in km', icrf_sf_np-icrf_jpl_np)
    print()

def testDE(defile):
    print(defile)
    planets = load(defile)
    codes = [code for code in planets.codes if code != 0]
    ts = load.timescale()
    for code in codes:
        compare_obj(planets, code, 2021, 1, 30, 3, 6, 0)


testDE('de440.bsp')
testDE('de430.bsp')

the output are

de440.bsp
MERCURY_BARYCENTER icrf_sf_np in km [ 3870649.02606443 41392819.19301444 21542810.35938832]
MERCURY_BARYCENTER icrf_jpl_np in km [ 3870755.23463293 41392865.94384275 21542816.10309695]
MERCURY_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-106.2085685   -46.75082832   -5.74370863]

VENUS_BARYCENTER icrf_sf_np in km [ 14475475.97449725 -97060411.02453132 -44648132.07199989]
VENUS_BARYCENTER icrf_jpl_np in km [ 14475582.42719842 -97060364.29934852 -44648126.3223459 ]
VENUS_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-106.45270116  -46.7251828    -5.749654  ]

EARTH_BARYCENTER icrf_sf_np in km [-9.60526964e+07  1.04132030e+08  4.51595476e+07]
EARTH_BARYCENTER icrf_jpl_np in km [-9.60525902e+07  1.04132076e+08  4.51595532e+07]
EARTH_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-106.21787445  -46.6572369    -5.60996395]

MARS_BARYCENTER icrf_sf_np in km [3.59179214e+07 2.08828095e+08 9.47860347e+07]
MARS_BARYCENTER icrf_jpl_np in km [3.59180277e+07 2.08828142e+08 9.47860402e+07]
MARS_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-106.25607501  -46.78110483   -5.5933331 ]

JUPITER_BARYCENTER icrf_sf_np in km [ 4.79548433e+08 -5.37038375e+08 -2.41865441e+08]
JUPITER_BARYCENTER icrf_jpl_np in km [ 4.79548552e+08 -5.37038322e+08 -2.41865417e+08]
JUPITER_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-118.78297108  -52.91103995  -24.01297405]

SATURN_BARYCENTER icrf_sf_np in km [ 8.39201230e+08 -1.12705480e+09 -5.01674692e+08]
SATURN_BARYCENTER icrf_jpl_np in km [ 8.39201338e+08 -1.12705476e+09 -5.01674685e+08]
SATURN_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-108.02585697  -48.04796076   -6.4681049 ]

URANUS_BARYCENTER icrf_sf_np in km [2.28436557e+09 1.73166246e+09 7.26112140e+08]
URANUS_BARYCENTER icrf_jpl_np in km [2.28436563e+09 1.73166231e+09 7.26112205e+08]
URANUS_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-63.51256084 147.313416   -65.57285929]

NEPTUNE_BARYCENTER icrf_sf_np in km [ 4.40851526e+09 -6.70704912e+08 -3.84279840e+08]
NEPTUNE_BARYCENTER icrf_jpl_np in km [ 4.40851483e+09 -6.70704784e+08 -3.84279619e+08]
NEPTUNE_BARYCENTER icrf_sf_np-icrf_jpl_np in km [ 431.83857346 -127.86859035 -221.2449652 ]

PLUTO_BARYCENTER icrf_sf_np in km [ 2.11522736e+09 -4.22814862e+09 -1.95678724e+09]
PLUTO_BARYCENTER icrf_jpl_np in km [ 2.11522725e+09 -4.22814934e+09 -1.95678776e+09]
PLUTO_BARYCENTER icrf_sf_np-icrf_jpl_np in km [114.71878219 719.76608706 514.04651737]

SUN icrf_sf_np in km [-1024502.89778636   793741.74069273   362391.18422153]
SUN icrf_jpl_np in km [-1024396.56180323   793788.47208616   362396.88179922]
SUN icrf_sf_np-icrf_jpl_np in km [-106.33598314  -46.73139343   -5.69757769]

MERCURY icrf_sf_np in km [ 3870649.02606443 41392819.19301444 21542810.35938832]
MERCURY icrf_jpl_np in km [ 3870755.23463293 41392865.94384275 21542816.10309695]
MERCURY icrf_sf_np-icrf_jpl_np in km [-106.2085685   -46.75082832   -5.74370863]

VENUS icrf_sf_np in km [ 14475475.97449725 -97060411.02453132 -44648132.07199989]
VENUS icrf_jpl_np in km [ 14475582.42719842 -97060364.29934852 -44648126.3223459 ]
VENUS icrf_sf_np-icrf_jpl_np in km [-106.45270116  -46.7251828    -5.749654  ]

MOON icrf_sf_np in km [-9.63633733e+07  1.04305841e+08  4.52684662e+07]
MOON icrf_jpl_np in km [-9.63632671e+07  1.04305887e+08  4.52684719e+07]
MOON icrf_sf_np-icrf_jpl_np in km [-106.21872723  -46.65832654   -5.61086642]

EARTH icrf_sf_np in km [-9.60488751e+07  1.04129892e+08  4.51582079e+07]
EARTH icrf_jpl_np in km [-9.60487689e+07  1.04129938e+08  4.51582135e+07]
EARTH icrf_sf_np-icrf_jpl_np in km [-106.21782386  -46.65724593   -5.6099669 ]

de430.bsp
MERCURY_BARYCENTER icrf_sf_np in km [ 3870755.19165879 41392865.94682641 21542816.10914535]
MERCURY_BARYCENTER icrf_jpl_np in km [ 3870755.23463293 41392865.94384275 21542816.10309695]
MERCURY_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-0.04297413  0.00298365  0.0060484 ]

VENUS_BARYCENTER icrf_sf_np in km [ 14475582.45257788 -97060364.29550089 -44648126.32222056]
VENUS_BARYCENTER icrf_jpl_np in km [ 14475582.42719842 -97060364.29934852 -44648126.3223459 ]
VENUS_BARYCENTER icrf_sf_np-icrf_jpl_np in km [0.02537947 0.00384763 0.00012533]

EARTH_BARYCENTER icrf_sf_np in km [-9.60525902e+07  1.04132076e+08  4.51595532e+07]
EARTH_BARYCENTER icrf_jpl_np in km [-9.60525902e+07  1.04132076e+08  4.51595532e+07]
EARTH_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-0.01715797 -0.01308142 -0.00567057]

MARS_BARYCENTER icrf_sf_np in km [3.59180277e+07 2.08828142e+08 9.47860402e+07]
MARS_BARYCENTER icrf_jpl_np in km [3.59180277e+07 2.08828142e+08 9.47860402e+07]
MARS_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-0.0169936   0.00380459  0.00220387]

JUPITER_BARYCENTER icrf_sf_np in km [ 4.79548552e+08 -5.37038322e+08 -2.41865417e+08]
JUPITER_BARYCENTER icrf_jpl_np in km [ 4.79548552e+08 -5.37038322e+08 -2.41865417e+08]
JUPITER_BARYCENTER icrf_sf_np-icrf_jpl_np in km [0.00735855 0.0060811  0.00242743]

SATURN_BARYCENTER icrf_sf_np in km [ 8.39201338e+08 -1.12705476e+09 -5.01674685e+08]
SATURN_BARYCENTER icrf_jpl_np in km [ 8.39201338e+08 -1.12705476e+09 -5.01674685e+08]
SATURN_BARYCENTER icrf_sf_np-icrf_jpl_np in km [0.00549626 0.0037775  0.0013234 ]

URANUS_BARYCENTER icrf_sf_np in km [2.28436563e+09 1.73166231e+09 7.26112205e+08]
URANUS_BARYCENTER icrf_jpl_np in km [2.28436563e+09 1.73166231e+09 7.26112205e+08]
URANUS_BARYCENTER icrf_sf_np-icrf_jpl_np in km [-0.00323009  0.00332499  0.00150168]

NEPTUNE_BARYCENTER icrf_sf_np in km [ 4.40851483e+09 -6.70704784e+08 -3.84279619e+08]
NEPTUNE_BARYCENTER icrf_jpl_np in km [ 4.40851483e+09 -6.70704784e+08 -3.84279619e+08]
NEPTUNE_BARYCENTER icrf_sf_np-icrf_jpl_np in km [0.0006609  0.00368536 0.00149208]

PLUTO_BARYCENTER icrf_sf_np in km [ 2.11522726e+09 -4.22814965e+09 -1.95678772e+09]
PLUTO_BARYCENTER icrf_jpl_np in km [ 2.11522725e+09 -4.22814934e+09 -1.95678776e+09]
PLUTO_BARYCENTER icrf_sf_np-icrf_jpl_np in km [  13.38765478 -306.40300035   38.77710915]

SUN icrf_sf_np in km [-1024396.56181172   793788.47207897   362396.8817964 ]
SUN icrf_jpl_np in km [-1024396.56180323   793788.47208616   362396.88179922]
SUN icrf_sf_np-icrf_jpl_np in km [-8.48737545e-06 -7.19248783e-06 -2.82318797e-06]

MERCURY icrf_sf_np in km [ 3870755.19165879 41392865.94682641 21542816.10914535]
MERCURY icrf_jpl_np in km [ 3870755.23463293 41392865.94384275 21542816.10309695]
MERCURY icrf_sf_np-icrf_jpl_np in km [-0.04297413  0.00298365  0.0060484 ]

VENUS icrf_sf_np in km [ 14475582.45257788 -97060364.29550089 -44648126.32222056]
VENUS icrf_jpl_np in km [ 14475582.42719842 -97060364.29934852 -44648126.3223459 ]
VENUS icrf_sf_np-icrf_jpl_np in km [0.02537947 0.00384763 0.00012533]

MOON icrf_sf_np in km [-9.63632671e+07  1.04305887e+08  4.52684719e+07]
MOON icrf_jpl_np in km [-9.63632671e+07  1.04305887e+08  4.52684719e+07]
MOON icrf_sf_np-icrf_jpl_np in km [-0.01673733 -0.01252432 -0.00531527]

EARTH icrf_sf_np in km [-9.60487689e+07  1.04129938e+08  4.51582135e+07]
EARTH icrf_jpl_np in km [-9.60487689e+07  1.04129938e+08  4.51582135e+07]
EARTH icrf_sf_np-icrf_jpl_np in km [-0.01716313 -0.01308827 -0.00567494]

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
brandon-rhodescommented, Apr 9, 2021

An email today from HORIZONS, as they move to adopt DE440 and DE441, states:

“Inclusion of 30 new Kuiper-belt masses, and the Kuiper Belt ring mass, results in a time-varying shift of ~100 km in DE441’s barycenter relative to DE431.”

So it’s the Kuiper Belt’s fault.

0reactions
brandon-rhodescommented, Feb 15, 2021

As it has now been 2 weeks without further comment on the issue, I’m going to assume that there’s no action for Skyfield to take here, and that the new ephemeris has simply refined the position of the Solar System barycenter by 100–200 km. Anyone should feel free to comment further here, though, if they have more questions about Skyfield and the new ephemeris.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Manual - Horizons System - NASA
Users may search for or define their own topocentric site coordinates on any planet or natural satellite having a known rotational model, if...
Read more >
Barycentric and geocentric celestial reference systems
The barycentric celestial reference system (BCRS) is a coordinate system used in astrometry to specify the location and motions of astronomical objects.
Read more >
Planet's distance data from JPL Horizons - Mars Curiosity ...
I'm assuming you want you want Mars (the planet) itself, rather than one of the ... Selecting the coordinate center in JPL Horizons....
Read more >
C source code for JPL DE ephemerides - Project Pluto
DE440 : Posted to the JPL site February 2022, created June 2020; adds about seven years of new data. Covers the same time...
Read more >
Untitled
#nj Hamburg to berlin distance train, Ruck supercoach 2013, Warsaw poland ... Pictures of the marine corp symbol, Omexe, Far horizons palm cove...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found