<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)](https://en.wikipedia.org/w/index.php?title=Great_conjunction&oldid=986073756#List_of_great_conjunctions_(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):

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

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

```

3. 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


---

