我试图得到一颗不绕地球运行的卫星的地球距离和赤经(相对于我在地球上的观察点),但是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)。在
只是一些想法,你可能需要做两个步骤。在
你已经做了1个,很容易就能做到2个。将所有值转换为x、y、z,然后再加回到角度。或者我相信你/ephym可以直接为你做这件事。在
高温
我还在试着弄清楚(如果有人发现了什么,请告诉我),但如果我发现了:
我总是得到一个值,它总是在离轨道中心的最小/最大距离内(14.95-14.99)。在
因为这是在轨道中心半径中指定的,所以我需要用它乘以69173*1000来得到国际单位制:
^{pr2}$因为皮耶芬处理的是非盟的距离:
同时,地-木星距离为
5.79160547256
AU。在现在,为了得到距离,我应该根据
z
坐标的符号进行加减:对今天(now)运行相同的代码返回
6.03799937821
,这似乎非常接近WolframAlpha当前返回的6.031
的值,它与100%不匹配,但这可能是由某些不同的底层星历库或数据源造成的。不确定。。。在看来赤经、赤纬、方位角等计算正确:
伽尼米德和木星的值非常接近,看起来除了到目标的距离之外,其他所有的结果都是正确的。在
相关问题 更多 >
编程相关推荐