编程语言
首页 > 编程语言> > python – 使用PyEphem将topocentric坐标(方位角,高程)转换为赤道坐标(RA,Dec)

python – 使用PyEphem将topocentric坐标(方位角,高程)转换为赤道坐标(RA,Dec)

作者:互联网

这看起来是一项基本任务,但我无法解决.

PyEphem文档:

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

描述了如何以相反的方式执行转换,从Body和Observer对象到Aarent Topocentric Position,在.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

谢谢!

解决方法:

这里有两个细微之处.首先,您碰巧使用“高程”和“高度”来表示与PyEphem库中两个术语的含义相反 – 因此您将天空中的点称为“高度/方位角”位置而不是“高度” / azimuth“位置.其次,似乎PyEphem忘记提供一种简单的方法将日期从Julian转换为自己的格式.虽然有一个函数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)

让我知道,如果这对于这个特定的观察有实际意义,或者如果其中一个数字是错误的,仍然需要调整!

标签:python,coordinate-systems,astronomy,pyephem
来源: https://codeday.me/bug/20190704/1377679.html