pyEphem计算非地球卫星的位置

2024-07-04 08:52:35 发布

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

我试图得到一颗不绕地球运行的卫星的地球距离和赤经(相对于我在地球上的观察点),但是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

我得到这个错误:

^{pr2}$

存在ra属性,但它是相对于我的Observer还是与Jupiter有关?

似乎是相对于Observer,因为如果我改变位置,值也会改变。

我读过the documentation,我知道这些属性不是为月球定义的,但是我不知道如何计算相对于地球的这些属性,因为月球体的附加定义属性:

On planetary moons, also sets:

Position of moon relative to planet (measured in planet radii)

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)的距离和赤经呢?在

我使用的是Pyeph3.7.5.1(Python2.7)。在


Tags: or距离地球属性math木星observeroffset
3条回答

只是一些想法,你可能需要做两个步骤。在

  1. 获取卫星相对于母行星的位置
  2. 获取行星相对于观测者的位置
  3. 三角法计算;得到卫星相对于观测者的位置。在

你已经做了1个,很容易就能做到2个。将所有值转换为x、y、z,然后再加回到角度。或者我相信你/ephym可以直接为你做这件事。在

高温

我还在试着弄清楚(如果有人发现了什么,请告诉我),但如果我发现了:

sqrt((-14.8928060532)^2 + (1.52614057064)^2 + (-0.37974858284)^2) = 14.9756130481

我总是得到一个值,它总是在离轨道中心的最小/最大距离内(14.95-14.99)。在

因为这是在轨道中心半径中指定的,所以我需要用它乘以69173*1000来得到国际单位制:

^{pr2}$

因为皮耶芬处理的是非盟的距离:

print (1.0359080813762213 * 10**9) / ephem.meters_per_au # 0.00692461785302

同时,地-木星距离为5.79160547256AU。在

现在,为了得到距离,我应该根据z坐标的符号进行加减:

5.79160547256 - 0.00692461785302 = 5.78468085470698 AU

对今天(now)运行相同的代码返回6.03799937821,这似乎非常接近WolframAlpha当前返回的6.031的值,它与100%不匹配,但这可能是由某些不同的底层星历库或数据源造成的。不确定。。。在

看来赤经、赤纬、方位角等计算正确:

In [31]: g = ephem.Ganymede(Observer)

In [32]: j = ephem.Jupiter(Observer)

In [33]: g.ra, g.az, g.dec
Out[33]: (1.3024204969406128, 5.586287021636963, 0.38997682929039)

In [34]: j.ra, j.az, j.dec
Out[34]: (1.303646765055829, 5.5853118896484375, 0.39010250333236757)

伽尼米德和木星的值非常接近,看起来除了到目标的距离之外,其他所有的结果都是正确的。在

相关问题 更多 >

    热门问题