有没有办法计算 Skyfield 的运输时间?
Is there a way to calculate transit times in Skyfield?
Skyfield 目前提供了一种计算物体上升和下降时间的方法。它是否提供了一种计算物体传输时间的方法?
编辑: 是的! Skyfield 现在直接支持传输,如其文档的新部分所述:
https://rhodesmill.org/skyfield/almanac.html#meridian-transits
示例脚本:
from skyfield import api
from skyfield import almanac
bluffton = api.Topos('40.8939 N', '83.8917 W')
ts = api.load.timescale()
t0 = ts.utc(2020, 11, 6)
t1 = ts.utc(2020, 11, 7)
eph = api.load('de421.bsp')
f = almanac.meridian_transits(eph, eph['Mars'], bluffton)
t, y = almanac.find_discrete(t0, t1, f)
print(t.utc_strftime('%Y-%m-%d %H:%M'))
print(y)
print([almanac.MERIDIAN_TRANSITS[yi] for yi in y])
及其输出:
['2020-11-06 03:32', '2020-11-06 15:30']
[1 0]
['Meridian transit', 'Antimeridian transit']
您可以寻找地形观测物体高度的局部最大值。
Skyfield 目前提供了一种计算物体上升和下降时间的方法。它是否提供了一种计算物体传输时间的方法?
编辑: 是的! Skyfield 现在直接支持传输,如其文档的新部分所述:
https://rhodesmill.org/skyfield/almanac.html#meridian-transits
示例脚本:
from skyfield import api
from skyfield import almanac
bluffton = api.Topos('40.8939 N', '83.8917 W')
ts = api.load.timescale()
t0 = ts.utc(2020, 11, 6)
t1 = ts.utc(2020, 11, 7)
eph = api.load('de421.bsp')
f = almanac.meridian_transits(eph, eph['Mars'], bluffton)
t, y = almanac.find_discrete(t0, t1, f)
print(t.utc_strftime('%Y-%m-%d %H:%M'))
print(y)
print([almanac.MERIDIAN_TRANSITS[yi] for yi in y])
及其输出:
['2020-11-06 03:32', '2020-11-06 15:30']
[1 0]
['Meridian transit', 'Antimeridian transit']
您可以寻找地形观测物体高度的局部最大值。