1

我想使用 pyephem 或 skyfield 来找到位于黄道最高点的本地地平线的度数(从南 = 0°开始)。请注意,我并不是要寻找行星的顶点。很可能,当向南看时,到那个时间/纬度,黄道上没有行星,但仍然会有黄道的最高点。任何人都可以帮忙吗?

4

1 回答 1

1

虽然很可能有人很快就会加入使用球面三角学的封闭形式的解决方案——在这种情况下,Skyfield 或 PyEphem 可能只会用于确定地球方向——这里有一个快速的方法可以在大约程度:

  1. 将黄道生成为在天空中相隔 1 度的 360 点。
  2. 计算每一个的高度和方位角。
  3. 选择最高的。

如果我打开 Stellarium,打开黄道,然后在黄道到达天空最高点的点附近选择一颗场星,结果与我看到的非常吻合。

import numpy as np
from skyfield import api, framelib
from skyfield.positionlib import Apparent

 = api.tau
ts = api.load.timescale()
eph = api.load('de421.bsp')
bluffton = api.Topos('40.74 N', '84.11 W')

t = ts.utc(2021, 2, 16, 22, 52)

angle = np.arange(360) / 360.0 * 
zero = angle * 0.0

f = framelib.ecliptic_frame
d = api.Distance([np.sin(angle), np.cos(angle), zero])
v = api.Velocity([zero, zero, zero])

p = Apparent.from_time_and_frame_vectors(t, f, d, v)
p.center = bluffton

alt, az, distance = p.altaz()

i = np.argmax(alt.degrees)  # Which of the 360 points has highest altitude?
print('Altitude of highest point on ecliptic:', alt.degrees[i])
print('Azimuth of highest point on ecliptic:', az.degrees[i])

结果:

Altitude of highest point on ecliptic: 67.5477569215633
Azimuth of highest point on ecliptic: 163.42529398930515

这可能是一种计算成本足够高的方法,一旦您或其他人使用球面三角法找到方位角方程,您就不会感兴趣;但至少这可能会提供数字来检查可能的公式。

于 2021-02-16T23:04:34.830 回答