pyephem FixedObject()用于给定的RA / Dec

时间:2013-02-22 15:04:31

标签: python pyephem

我希望在Mauna Kea的特定时间确定给定RA / Dec的(非着名)恒星的alt / az。我试图使用pyephem计算这些参数,但结果alt / az不同意其他来源。以下是Keck对HAT-P-32的计算:

import ephem
telescope = ephem.Observer()
telescope.lat =  '19.8210'
telescope.long = '-155.4683'
telescope.elevation = 4154
telescope.date = '2013/1/18 10:04:14'
star = ephem.FixedBody()
star._ra = ephem.degrees('02:04:10.278')
star._dec = ephem.degrees('+46:41:16.21')
star.compute(telescope)
print star.alt, star.az

返回-28:43:54.0 73:22:55.3,但根据Stellarium,正确的alt / az应为:62:26:03 349:15:13。我做错了什么?

编辑:修正了之前相反的纬度和经度。

2 个答案:

答案 0 :(得分:1)

首先,你的长期和纬度向后;第二,你需要以十六进制形式提供字符串;第三,你需要提供RA作为小时,而不是度:

import ephem
telescope = ephem.Observer()
# Reversed longitude and latitude for Mauna Kea
telescope.lat =    '19:49:28' # from Wikipedia
telescope.long = '-155:28:24'
telescope.elevation = 4154.
telescope.date = '2013/1/18 00:04:14'
star = ephem.FixedBody()
star._ra  = ephem.hours('02:04:10.278') # in hours for RA
star._dec = ephem.degrees('+46:41:16.21')
star.compute(telescope)

这样,你得到:

>>> print star.alt, star.az
29:11:57.2 46:43:19.6

答案 1 :(得分:0)

PyEphem总是使用UTC时间,因此程序运行相同,并在运行的任何地方提供相同的输出。您只需将您使用的日期转换为UTC,而不是使用当地时区,结果与Stellarium非常接近;使用方法:

telescope.date = '2013/1/18 05:04:14'

结果是这个alt / az:

62:27:19.0 349:26:19.4

要知道剩下的小差异来自何处,我将不得不研究两个程序如何处理其计算的每个步骤;但这会让你足够近吗?