1

给定以下信息:观察者位于GPS 给出的经度纬度。在GPS 给定的时间以方位角天顶角观察天空中的物体。

我怎样才能得到天空上点的银河坐标?这可以用 PyEphem 完成吗?

我认为这让我几乎到了那里:

from datetime import datetime
import ephem
observer = ephem.Observer()
observer.pressure = 0
observer.lon = str(4.95569830927)
observer.lat = str(52.3545603701)
observer.elevation = 56.8426188165
observer.date = ephem.Date(datetime.utcfromtimestamp(1409097608))
ra, dec = observer.radec_of(str(azimuth), str(zenith))

但是如何从中获得银河坐标。

4

1 回答 1

2

您可以使用快速参考中描述的坐标变换对象生成银河坐标:

http://rhodesmill.org/pyephem/quick.html#coordinate-conversion

以下脚本采用任意方位角和天顶角并将它们转换为银河坐标,答案与http://lambda.gsfc.nasa.gov/toolbox/tb_coordconv.cfm上的 NASA 计算器一致

from datetime import datetime
import ephem

azimuth = '45:00'
zenith = '84:00'
ninety = ephem.degrees('90:00')

observer = ephem.Observer()
observer.pressure = 0
observer.lon = str(4.95569830927)
observer.lat = str(52.3545603701)
observer.elevation = 56.8426188165
observer.date = ephem.Date(datetime.utcfromtimestamp(1409097608))
ra, dec = observer.radec_of(str(azimuth), ninety - ephem.degrees(str(zenith)))
# print ra
# print dec

e = ephem.Equatorial(ra, dec, epoch='2000')
g = ephem.Galactic(e)
print g.lon
print g.lat

三个快速说明:

  1. 请注意,PyEphem 总是谈论“高度和方位角”而不是“天顶距离和方位角”,因此脚本需要从 90° 中减去天顶距离以产生高度。

  2. 我认为,这些结果与 NASA 之间的微小剩余误差是libastroPyEphem 所基于的库中固有的。

  3. 如果您想亲自尝试使用 NASA 计算器,请注意它希望 RA 以度 (!) 表示,您可以强制 PyEphem 使用语句显示print ephem.degrees(ra)

于 2015-01-22T18:42:35.580 回答