<p>There are no bugs in your codes. But you can make it more accurate with the following corrections (additions):</p>
<ol>
<li>Using new ephemeris series (de430 or de440) most recent one is de440.</li>
<li>Use True equinox of True epoch of the date. Adding <code>epoch='date'</code> as below:</li>
</ol>
<pre><code>.radec(epoch='date')
.ecliptic_latlon(epoch='date')
</code></pre>
<ol start="3">
<li>use the following codes for loading timescale instead of <code>ts = load.timescale(builtin=True)</code>.</li>
</ol>
<pre><code>url = load.build_url('finals2000A.all')
with load.open(url) as f:
    finals_data = iers.parse_x_y_dut1_from_finals_all(f)

ts = load.timescale()
iers.install_polar_motion_table(ts, finals_data)
</code></pre>
<p>These codes load the updated values of ΔT and also apply <code>polar motion</code>. Of course, because your calculations are <em>geocentric</em>, the polar motion does not affect the result.</p>
<p>You can reach the following result by the corrections and some extra calculations for other attributes.</p>
<p>JUPITER -- SATURN Conjunction 2020:</p>
<ul>
<li>A.D. 2020-Dec-21 18:20:37.3129 UT</li>
<li>Angular Separation: +  0° 06ʹ 06.38154ʺ</li>
<li>JUPITER is -  0° 06ʹ 06.98608ʺ of ('Below', 'Right') of SATURN in direction of (+  0° 00ʹ 02.56845ʺ, N)</li>
</ul>

CC BY-SA 4.0
2020-12-23T22:49:22.157Z
2020-12-23T22:49:22.157Z
Reza K Ghazi
<p>I'm using SPICE library, de440.bsp, jup310.bsp, sat375.bsp, converged Newtonian light time correction and stellar aberration correction (&quot;CN+S&quot;).<br>
I see that you consider Jupiter and Saturn barycenter. I'm using the planets (not their barycenter), the difference is a few seconds.</p>
<p><strong>Smallest geocentric angular separation</strong>: 2020-12-21 18:21:05.282 UTC, separation = 6.1'</p>
<p><strong>Using Right Ascension</strong>: 2020-12-21 13:34:40.590 UTC</p>
<p><strong>Using Ecliptic Longitude</strong>: 2020-12-21 18:20:45.176 UTC</p>

CC BY-SA 4.0
2021-01-02T23:13:01.360Z
2021-01-02T23:13:01.360Z
Cristiano
<p>Using python-skyfield to calculate the upcoming conjunction of Jupiter and Saturn. I'm off a few minutes with the times on Wikipedia.</p>
<p><a href="https://en.wikipedia.org/w/index.php?title=Great_conjunction&amp;oldid=986073756#List_of_great_conjunctions_(1800_to_2100)" rel="nofollow noreferrer">Wikipedia Great conjunction times (1800 to 2100)</a></p>
<p><strong>Using Right Ascension:</strong></p>
<ul>
<li>Dec 21,2020 13:22:00 UTC - Wikipedia.</li>
<li>Dec 21,2020 13:34:33 UTC - My Calculation.</li>
</ul>
<p><strong>Using Ecliptic Longitude:</strong></p>
<ul>
<li>Dec 21,2020 18:37:31 UTC - Wikipedia</li>
<li>Dec 21,2020 18:20:40 UTC - My Calculation.</li>
</ul>
<pre><code>from skyfield.api import load, tau, pi
from skyfield.almanac import find_discrete

planets = load('de421.bsp')
sun = planets['sun']
earth = planets['earth']
jupiter = planets['jupiter barycenter']
saturn = planets['saturn barycenter']

ts = load.timescale(builtin=True)

def longitude_difference(t):
    e = earth.at(t)
    j = e.observe(jupiter).apparent()
    s = e.observe(saturn).apparent()
    _, lon1, _ = s.ecliptic_latlon()
    _, lon2, _ = j.ecliptic_latlon()
    return (lon1.degrees - lon2.degrees) &gt; 0

def longitude_difference1(t):
    e = earth.at(t)
    j = e.observe(jupiter).apparent()
    s = e.observe(saturn).apparent()

    jRa, _, _ = j.radec()
    sRa, _, _ = s.radec()
    return (sRa._degrees - jRa._degrees) &gt; 0


longitude_difference.rough_period = 300.0
longitude_difference1.rough_period = 300.0

print()
print(&quot;Great conjunction in ecliptic longitude:&quot;)
t, b = find_discrete(ts.utc(2020), ts.utc(2021), longitude_difference)
for ti in t:
    print(t.utc_jpl())

print()
print(&quot;Great conjunction in right ascension:&quot;)
t, b = find_discrete(ts.utc(2020), ts.utc(2021), longitude_difference1)
for ti in t:
    print(t.utc_jpl())
</code></pre>
<p>Can anyone verify the correct UTC time?  Is there a bug in my code?</p>

CC BY-SA 4.0
2020-11-18T19:51:26.577Z
The wikipedia article gives a table of numbers without any source, which is poor form for them. Your difference of ten-ish minutes makes me wonder if either calculation takes into account the observer’s latitude and longitude, or imagines an observer at Earth’s center.
rob
CC BY-SA 4.0
2020-11-20T05:37:08.473Z
@rob interesting point! Just by itself the Earth takes about 7 minutes to move its own diameter, with all three orbiting the same direction the differences could be longer.
uhoh
<celestial-mechanics><skyfield>
Discrepancy between my results of Great Conjunction 2020 and Wikipedia
Gary Ilijevich
# Discrepancy between my results of Great Conjunction 2020 and Wikipedia

(Asked by: username_0 on 2020-11-18)

Using python-skyfield to calculate the upcoming conjunction of Jupiter and Saturn. I'm off a few minutes with the times on Wikipedia.
Wikipedia Great conjunction times (1800 to 2100)
Using Right Ascension:

Dec 21,2020 13:22:00 UTC - Wikipedia.
Dec 21,2020 13:34:33 UTC - My Calculation.

Using Ecliptic Longitude:

Dec 21,2020 18:37:31 UTC - Wikipedia
Dec 21,2020 18:20:40 UTC - My Calculation.

from skyfield.api import load, tau, pi
from skyfield.almanac import find_discrete

planets = load('de421.bsp')
sun = planets['sun']
earth = planets['earth']
jupiter = planets['jupiter barycenter']
saturn = planets['saturn barycenter']

ts = load.timescale(builtin=True)

def longitude_difference(t):
    e = earth.at(t)
    j = e.observe(jupiter).apparent()
    s = e.observe(saturn).apparent()
    _, lon1, _ = s.ecliptic_latlon()
    _, lon2, _ = j.ecliptic_latlon()
    return (lon1.degrees - lon2.degrees) > 0

def longitude_difference1(t):
    e = earth.at(t)
    j = e.observe(jupiter).apparent()
    s = e.observe(saturn).apparent()

    jRa, _, _ = j.radec()
    sRa, _, _ = s.radec()
    return (sRa._degrees - jRa._degrees) > 0


longitude_difference.rough_period = 300.0
longitude_difference1.rough_period = 300.0

print()
print("Great conjunction in ecliptic longitude:")
t, b = find_discrete(ts.utc(2020), ts.utc(2021), longitude_difference)
for ti in t:
    print(t.utc_jpl())

print()
print("Great conjunction in right ascension:")
t, b = find_discrete(ts.utc(2020), ts.utc(2021), longitude_difference1)
for ti in t:
    print(t.utc_jpl())

Can anyone verify the correct UTC time?  Is there a bug in my code?

**Tags:** celestial-mechanics, skyfield

> **Comments:**
> **username_1**: The wikipedia article gives a table of numbers without any source, which is poor form for them. Your difference of ten-ish minutes makes me wonder if either calculation takes into account the observer’s latitude and longitude, or imagines an observer at Earth’s center.  
> **username_2**: @username_1 interesting point! Just by itself the Earth takes about 7 minutes to move its own diameter, with all three orbiting the same direction the differences could be longer.  

---

## 2 answers

### Answer by username_3 on 2020-12-23. Score: 1

There are no bugs in your codes. But you can make it more accurate with the following corrections (additions):

Using new ephemeris series (de430 or de440) most recent one is de440.
Use True equinox of True epoch of the date. Adding epoch='date' as below:

.radec(epoch='date')
.ecliptic_latlon(epoch='date')


use the following codes for loading timescale instead of ts = load.timescale(builtin=True).

url = load.build_url('finals2000A.all')
with load.open(url) as f:
    finals_data = iers.parse_x_y_dut1_from_finals_all(f)

ts = load.timescale()
iers.install_polar_motion_table(ts, finals_data)

These codes load the updated values of ΔT and also apply polar motion. Of course, because your calculations are geocentric, the polar motion does not affect the result.
You can reach the following result by the corrections and some extra calculations for other attributes.
JUPITER -- SATURN Conjunction 2020:

A.D. 2020-Dec-21 18:20:37.3129 UT
Angular Separation: +  0° 06ʹ 06.38154ʺ
JUPITER is -  0° 06ʹ 06.98608ʺ of ('Below', 'Right') of SATURN in direction of (+  0° 00ʹ 02.56845ʺ, N)


---

### Answer by username_4 on 2021-01-02. Score: 0

I'm using SPICE library, de440.bsp, jup310.bsp, sat375.bsp, converged Newtonian light time correction and stellar aberration correction ("CN+S").  
I see that you consider Jupiter and Saturn barycenter. I'm using the planets (not their barycenter), the difference is a few seconds.

**Smallest geocentric angular separation**: 2020-12-21 18:21:05.282 UTC, separation = 6.1'

**Using Right Ascension**: 2020-12-21 13:34:40.590 UTC

**Using Ecliptic Longitude**: 2020-12-21 18:20:45.176 UTC


---

