从GPS得到的天空点的银河坐标(lon,lat,timestamp)和(方位角,天顶)?

2024-05-15 23:56:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我怎样才能得到天空上点的银河系坐标? 皮耶芬能做到吗?在

我想这让我快到了:

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))

但是如何从中得到银河系的坐标。在


Tags: import信息datetime时间gpsobserver天空str
1条回答
网友
1楼 · 发布于 2024-05-15 23:56:20

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

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(!),可以强制PyEphem用print ephem.degrees(ra)语句显示。

相关问题 更多 >