【发布时间】:2013-04-23 15:01:46
【问题描述】:
我正在尝试获取不绕地球运行的卫星的地球距离和赤经(相对于我在地球上的观察点),但 pyEphem 没有返回与其他太阳体相同的属性。
以木卫三(木星最大的卫星)为例:
import math, ephem
Observer = ephem.city('London')
Observer.date = '2013-04-23'
Observer.pressure, Observer.elevation = 0, 100
moonGanymede = ephem.Ganymede(Observer)
print math.cos(moonGanymede.ra) # right ascension
print moonGanymede.earth_distance * ephem.meters_per_au # distance
我收到此错误:
AttributeError: 'Ganymede' object has no attribute 'earth_distance'
ra 属性存在,但它是相对于我的Observer 还是相对于 Jupiter?
似乎是相对于Observer,因为如果我改变位置,值也会改变。
我已阅读the documentation 并且我知道这些属性不是为卫星定义的,但我不知道如何计算与地球相关的这些属性,因为月球体的其他定义属性:
在行星卫星上,也设置:
月球相对于行星的位置(以行星半径测量)
x — offset +east or –west y — offset +south or –north z — offset +front or –behind
在做:
print moonGanymede.x, moonGanymede.y, moonGanymede.z
输出:
-14.8928060532 1.52614057064 -0.37974858284
由于木星的平均半径为 69173 公里,这些值转换为:
moonGanymede.x = 1030200 kilometers (west)
moonGanymede.y = 105570 kilometers (south)
moonGanymede.z = 26268 kilometers (behind)
鉴于我知道木星相对于Observer 的距离和赤经,我如何计算moonGanymede 的距离和赤经(也相对于Observer)?
我正在使用 pyEphem 3.7.5.1(使用 Python 2.7)。
【问题讨论】:
-
据我所知,从 pyephem 获取笛卡尔坐标并不容易。您是否考虑过使用 NOVAS - aa.usno.navy.mil/software/novas/novas_py/novaspy_intro.php?
-
@mattc:我没有,没有。老实说,我花了一段时间才习惯了 pyEphem,我宁愿继续使用它,也不愿再弄乱另一个包(我相信 NOVAS 也有它的怪癖)。我刚刚意识到 WolframAlpha 可以帮助我证实我的结果(参见 wolframalpha.com/input/… 和 wolframalpha.com/input/?i=Ganymede+distance+from+London)所以我想我今晚会尝试自己弄清楚数学或其他什么 - 但感谢您的建议,总是好的知道。 =)
标签: python math geometry astronomy pyephem