对于地球上给定的观测者(lon,lat,时间)和给定的星系坐标(GLON,GLAT),如何用PyEphem计算天空中相应的(alt,az)点?
答案 0 :(得分: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°。