加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – pyEphem – 计算非土卫星的位置

发布时间:2020-12-20 13:34:12 所属栏目:Python 来源:网络整理
导读:我试图获得一个不绕地球轨道运行的卫星的地球距离和正确的提升(相对于我在地球上的观测点),但是pyEphem没有返回与其他太阳体相同的属性. 使用木卫三(木星最大的卫星),例如: import math,ephemObserver = ephem.city('London')Observer.date = '2013-04-23'O
我试图获得一个不绕地球轨道运行的卫星的地球距离和正确的提升(相对于我在地球上的观测点),但是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并且我知道这些属性没有为卫星定义,但我不知道如何计算相对于地球的属性,因为月球体的附加定义属性:

On planetary moons,also sets:

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

06002

这样做:

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)

鉴于我知道木星相对于观察者的距离和正确提升,我如何计算moonGanymede的距离和正确提升(也相对于观察者)?

我正在使用pyEphem 3.7.5.1(使用Python 2.7).

解决方法

只是一些想法;您可能需要执行两个步骤.

>获取卫星相对于母行星的位置
>获取行星相对于观察者的位置
>三角计算;获得卫星相对于观察者的位置.

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

HTH

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读