首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Skyfield与“伟大的结合”

Skyfield与“伟大的结合”
EN

Stack Overflow用户
提问于 2020-12-08 09:12:29
回答 1查看 27关注 0票数 1

多少次木星和土星的距离小于0.2度?利用SkyField的十几行代码就可以做到这一点

EN

回答 1

Stack Overflow用户

发布于 2020-12-08 09:12:29

纵观公元前1000年到公元3000年(de431t提供了这种广度),我发现:

代码语言:javascript
复制
                                         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

使用以下代码:

代码语言:javascript
复制
    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)])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65191691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档