从GPS-(lon,lat,时间戳)和(方位角,天顶)到天空中的点的星系坐标?

时间:2014-08-28 15:13:29

标签: python gps coordinate-systems pyephem

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

如何获得天空中的 Galactic坐标? 这可以用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 个答案:

答案 0 :(得分: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之间的微小剩余误差是PyEphem所依据的libastro库中固有的。

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