用太阳系程序来计算行星经度吗?在
如果我只做:
mercury(utc=(1980, 1, 1)).ecliptic_latlon()
我得到了一个重心物体,因此纬度和经度与日心值不匹配。在
我试过了:
sun(utc=(1980, 1, 1)).observe(jupiter)
但这也带来了错误:
skyfield/relativity.py:128: RuntimeWarning: invalid value encountered in true_divide
ehat = pe / emag
skyfield/relativity.py:144: RuntimeWarning: divide by zero encountered in double_scalars
fac1 = 2.0 * GS / (C * C * emag * AU_M * rmass)
使用python3.4,skyfield0.4, de423
谢谢!在
非常感谢布兰登。有了你的答案,我很快就发现了问题所在:而不是仅仅用:
sun(utc=(1980, 1, 1)).observe(jupiter)
我接着试图创建一个明显的对象:
astrometric = sun(utc=(1980, 1, 1)).observe(jupiter) apparent = astrometric.apparent()
这就是造成错误的原因。
1) 但这给我留下了一个难题:
获得的经度和纬度值为:
+151度19'21.7“
01度00'46.7“
我查了一下JPL Horizon的在线站点,他们得到的值几乎完全相同。
然而,在Java程序中,helios(以经度为中心)的值也是基于jpi编写的: 151度02'
在网上搜索日心星历表时,我立刻发现了一个星历表(http://www.astro.com/swisseph/ahel/1900/ahel1980.pdf),它也表示+151deg02'。
知道为什么有两组值吗?
2) 顺便说一句,stackoverflow是问这些问题的合适地方吗?在
再次感谢!在
使用Python 3.4和Skyfield 0.4,我可以运行:
然后得到结果:
^{pr2}$我想知道在你的例子中,是什么使得引用的等式返回除以零的结果?你的方法是正确的,顺便说一句-日心位置是从太阳来测量的,而不是从太阳系的中心来测量的,所以你做的事情完全正确!在
如果您可以将
print
语句添加到Skyfield源代码中错误行的正上方,那么看看分母中的哪些值将变为零是很有趣的!在相关问题 更多 >
编程相关推荐