鉴于以下信息: 观察者位于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))
但如何从此获得银河坐标。
答案 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
三个快速说明:
请注意,PyEphem总是谈论“高度和方位角”而不是“天顶距离和方位角”,因此脚本需要从90°减去天顶距离以产生高度。
我认为,这些结果与NASA之间的微小剩余误差是PyEphem所依据的libastro
库中固有的。
如果您想亲自尝试NASA计算器,请注意它希望RA以度(!)表示,您可以强制PyEphem显示语句print ephem.degrees(ra)
。