Skyfield and "Great Conjuctions"

48 views Asked by At

how many time have Jupiter and Saturn been visible with a separation of less than 0.2º? This is possible with little more than a dozen lines leveraging SkyField

1

There are 1 answers

0
rtphokie On

Looking across 1000 BCE to 3000 AD (de431t provides this breadth) I'm finding:

                                         Jup-Sat º  
                                  date  separation elongation º
     B.C. 0999-May-22 00:00:00.0000 UT    0.156342   38.735380
     B.C. 0940-Aug-26 00:00:00.0000 UT    0.065678   41.442383
     B.C. 0483-Mar-01 00:00:00.0000 UT    0.108738   54.895177
     B.C. 0424-Dec-24 00:00:00.0000 UT    0.049188   16.400695
     B.C. 0364-Mar-15 00:00:00.0000 UT    0.193803   54.396883
     B.C. 0146-Oct-15 00:00:00.0000 UT    0.179083   94.398260
     B.C. 0145-May-02 00:00:00.0000 UT    0.174195   61.696822
     B.C. 0086-Aug-10 00:00:00.0000 UT    0.062998   19.861306
     A.D. 0372-Mar-08 00:00:00.0000 UT    0.048587   53.314962
     A.D. 0432-Jan-02 00:00:00.0000 UT    0.107849   17.215393
     A.D. 0709-Sep-18 00:00:00.0000 UT    0.139882   61.098317
     A.D. 0769-Jul-27 00:00:00.0000 UT    0.072186    2.331401
     A.D. 1166-Dec-19 00:00:00.0000 UT    0.163973   24.881438
     A.D. 1226-Mar-12 00:00:00.0000 UT    0.040561   48.435380
     A.D. 1286-Jan-08 00:00:00.0000 UT    0.175860   19.680362
     A.D. 1563-Sep-05 00:00:00.0000 UT    0.115084   42.282544
     A.D. 1623-Jul-17 00:00:00.0000 UT    0.086289   12.770494
     A.D. 1683-Feb-09 00:00:00.0000 UT    0.192382  176.099315
     A.D. 2020-Dec-22 00:00:00.0000 UT    0.105125   29.948307
     A.D. 2080-Mar-15 00:00:00.0000 UT    0.100548   43.464966
     A.D. 2417-Aug-25 00:00:00.0000 UT    0.094632   26.784879
     A.D. 2477-Jul-07 00:00:00.0000 UT    0.106268   27.025579
     A.D. 2815-Feb-23 00:00:00.0000 UT    0.168457   29.843739
     A.D. 2874-Dec-26 00:00:00.0000 UT    0.052813   35.020439
     A.D. 2934-Mar-19 00:00:00.0000 UT    0.168289   37.676686

using this code:

    ts = api.load.timescale(builtin=True)
    load = api.Loader('/var/data')
    eph = load('de431t.bsp')  
    sun, earth, jupiter, saturn = eph['sun'], eph['earth'], eph['jupiter barycenter'], eph['saturn barycenter']

    t = ts.utc(-999, 1, range(1, 4002*365)) # 1000BCE - 3000AD
    e = earth.at(t)
    j = e.observe(jupiter)
    s = e.observe(saturn)
    sun = e.observe(sun)
    sep = s.separation_from(j)
    elong = sun.separation_from(j)
    df = pd.DataFrame({'date': t.utc_jpl(), 'separation': sep.degrees, 'elongation': elong.degrees})

    # find apparant separation local minima
    conjunctionindexes = argrelextrema(df.separation.values, np.less)
    df2 = df.iloc[conjunctionindexes[0]]

    # less than a degree of apparant separation visible during civil twilight or darker
    print(df2[(df2.separation < 0.2)])