4

对于地球上给定的观察者(经度、纬度、时间)和给定的银河坐标(GLON、GLAT),我如何使用 PyEphem 计算天空中对应的(alt、az)点?

4

1 回答 1

3

鉴于 PyEphem 目前的工作方式,有两个步骤可以回答您的问题。首先,您必须将一对银河坐标转换为赤道 RA/dec 坐标对。

import ephem

# Convert a Galactic coordinate to RA and dec                          

galactic_center = ephem.Galactic(0, 0)
eq = ephem.Equatorial(galactic_center)
print 'RA:', eq.ra, 'dec:', eq.dec

→ RA: 17:45:37.20 dec: -28:56:10.2

这些坐标非常接近维基百科给出的银河中心坐标。

现在我们有了一个正常的 RA/dec 坐标,我们只需要确定它现在在天空中的位置。由于 PyEphem 构建在一个只知道恒星和行星等天体“天体”的库之上,我们只需要在该位置创建一个假“恒星”并询问它的方位角和高度。

# So where is that RA and dec above Boston?
# Pretend that a star or other fixed body is there.

body = ephem.FixedBody()
body._ra = eq.ra
body._dec = eq.dec
body._epoch = eq.epoch

obs = ephem.city('Boston')
obs.date = '2012/6/24 02:00' # 10pm EDT
body.compute(obs)
print 'Az:', body.az, 'Alt:', body.alt

→ Az: 149:07:25.6 Alt: 11:48:43.0

我们可以通过查看当晚晚些时候波士顿的天空图来检查这个答案是否合理:人马座——银河中心的位置——刚刚从天空的东南边缘升起,这完全可以理解东南方位角149°,以及像 11° 这样的低高度。

于 2012-06-24T22:12:25.473 回答