从GPS(经度,纬度,时间戳)和(方位角,天顶角)获取天空中点的银河坐标?

1 投票
1 回答
525 浏览
提问于 2025-04-18 18:51

给定以下信息:
观察者的位置是通过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))

但是,我该如何从这里获取银河坐标呢?

1 个回答

2

你可以使用快速参考中描述的坐标转换工具来生成银河坐标:

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

下面这个脚本可以接受任意的方位角和天顶角,并将它们转换为银河坐标,结果与NASA的计算器一致,地址是 http://lambda.gsfc.nasa.gov/toolbox/tb_coordconv.cfm

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之间的微小误差是由于PyEphem所基于的libastro库本身的原因。

  3. 如果你想自己试试那个NASA计算器,记得它需要将RA以度数表示(!),你可以通过print ephem.degrees(ra)这条语句强制PyEphem以度数显示。

撰写回答