使用PyEphem将地平坐标系(方位角,高度角)转换为赤道坐标系(赤经,赤纬)。

4

这看起来是一个很基础的任务,但我还无法解决它。

PyEphem文档:

http://rhodesmill.org/pyephem/radec.html

描述了如何执行另一种相反的转换,从BodyObserver对象转换为具有高度和方位角的视差地心位置,其中.alt.az属性。

然而,我应该如何从高度和方位角开始获取RA和Dec?

例如,这里有一组坐标,我想在赤道参考系中获取RA和Dec:

az = 3.30084818 #rad
el = 0.94610742 #rad
lat = 34.64 #deg
lon = -103.7 #deg
alt = 35800.26 #m
ut = 2455822.20000367 #julian date

谢谢!

1个回答

3
这里有两个微妙之处。首先,你恰好使用了“高度”和“海拔”这两个词来表示与PyEphem库中这两个术语的相反意思 - 因此你称天空中的位置为其“高度/方位角”而不是其“海拔/方位角”位置。其次,似乎PyEphem忘记提供一种将日期从朱利安格式转换为自己格式的简便方法。虽然有一个函数julian_date()可以实现反向操作,但我们需要自己做一些工作来实现另一种方式,即通过弄清楚ephem的名称来进行转换。
考虑到这些限制,我认为这个脚本可能会回答你的问题:
import ephem

az = 3.30084818 #rad
el = 0.94610742 #rad
lat = 34.64 #deg
lon = -103.7 #deg
alt = 35800.26 #m
ut = 2455822.20000367 #julian date

# Which Julian Date does Ephem start its own count at?
J0 = ephem.julian_date(0)

observer = ephem.Observer()
observer.lon = str(lon)  # str() forces deg -> rad conversion
observer.lat = str(lat)  # deg -> rad
observer.elevation = alt
observer.date = ut - J0

print observer.date
print observer.radec_of(az, el)

这个答案对于这个特定的观察是否正确?以下是脚本为我打印的内容:

2011/9/17 16:48:00
(9:16:24.95, -0:45:56.8)

如果这个特定观察的物理意义是正确的,请让我知道,或者如果这里有一个数字错误仍然需要调整!


谢谢 Brandon,它很好用。这里我有一个例子,与 JPL 地平线结果进行了比较:https://gist.github.com/1672906 - Andrea Zonca
我想知道为什么答案的精度不够准确?我可能需要进一步研究!你从JPL网站上的表单中获取了这两个数字吗? - Brandon Rhodes
是的,在JPL Horizon网站上,我想可能Horizon也包括其他的修正。 - Andrea Zonca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接