【发布时间】:2013-04-23 23:24:12
【问题描述】:
小编辑:我在下面说 JPL 的 Horizons 库不是开源的。实际上,它是,并且可以在这里找到:http://naif.jpl.nasa.gov/naif/tutorials.html
2013-01-01 00:00:00 UTC 北纬 0 度,东 0 度 纬度、海平面高度、J2000时代赤经是多少 和月偏角?
遗憾的是,不同的库给出的答案略有不同。已转换 度数,总结结果(RA优先):
Stellarium: 141.9408333000, 9.8899166666 [precision: .0004166640, .0000277777]
Pyephem: 142.1278749990, 9.8274722221 [precision .0000416655, .0000277777]
Libnova: 141.320712606865, 9.76909442356909 [precision unknown]
Horizons: 141.9455833320, 9.8878888888 [precision: .0000416655, .0000277777]
我的问题:为什么?备注:
-
我意识到这些差异很小,但是:
我使用 pyephem 和 libnova 计算太阳/月亮升起/落下,以及 这些时间对高纬度的位置非常敏感 (例如,午夜太阳)。
我可以理解 JPL 的 Horizons 库不是开源的, 但其他三个是。不应该有人解决 这些库的差异并合并它们?这是我的主要 抱怨。 stellarium/pyephem/libnova 库的作者有吗 如何进行这些计算或做这些计算的根本区别 他们只需要合并他们的代码?
-
我也意识到计算结果可能有其他原因 不同,并希望在纠正这些问题方面提供任何帮助 可能的错误:
Pyephem 和 Libnova 可能正在使用日期的纪元而不是 J2000
月球足够近,观察者的位置可以影响它 RA/DEC(视差效应)。
我正在使用 Perl 的 Astro::Nova 和 Python 的 pyephem,而不是 这些库的原始 C 实现。然而,如果这些 差异是由使用 Perl/Python 引起的,这在 我的想法。
-
我的代码(带原始结果):
- 首先,Perl 和 Astro::Nova:
- Second, Python and pyephem:
#!/usr/local/bin/python
# 2013 年 1 月 1 日 0000 UTC 0N 0E 月亮的 RA/DEC
导入 ephem; e = ephem.Observer(); e.date = '2013/01/01 00:00:00';
月亮 = ehem.Moon();月亮.计算(e);打印moon.ra、moon.dec
结果:9:28:30.69 9:49:38.9
- The stellarium result (snapshot):
- The JPL Horizons result (snapshot):
[JPL Horizons 需要 POST 数据(不是真的,而是假装),所以我 无法发布 URL]。
我没有链接它们(懒惰),但我相信有很多 关于stackoverflow的未回答问题,有效地减少到 这个问题(精密天文图书馆的不一致), 包括我自己的一些问题。
我正在玩这个东西:https://github.com/barrycarter/bcapps/tree/master/ASTRO
【问题讨论】:
标签: astronomy