根据错误提示,ephem.Jupiter对象没有range属性。为了获取木星的距离,我们可以使用ephem.Observer对象来观测木星,并计算观测者与木星之间的距离。以下是修改后的代码:

import ephem
import datetime
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 创建一个观测者对象
observer = ephem.Observer()

# 设置观测者的位置(这里使用地球的经纬度)
observer.lat = '0'
observer.lon = '0'

# 创建一个木星对象
jupiter = ephem.Jupiter()

# 获取当前时间
now = datetime.datetime.now()

# 准备数据存储列表
dates = []
x = []
y = []
z = []

# 计算木星及其卫星在未来100天内的位置
for i in range(100):
    # 计算当前日期
    date = now + datetime.timedelta(days=i)
    dates.append(date.strftime('%Y-%m-%d'))
    
    # 设置计算的时间为当前日期
    observer.date = date.strftime('%Y/%m/%d')
    
    # 计算木星的位置
    jupiter.compute(observer)
    
    # 获取木星的位置
    x.append(float(jupiter.ra))
    y.append(float(jupiter.dec))
    
    # 计算观测者与木星之间的距离
    distance = observer.distance(jupiter)
    z.append(float(distance))
    
# 画出木星及其卫星的轨迹
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x, y, z)

# 设置坐标轴标签
ax.set_xlabel('Right Ascension')
ax.set_ylabel('Declination')
ax.set_zlabel('Distance')

# 设置图形标题
ax.set_title('Trajectory of Jupiter and its Satellites')

# 显示图形
plt.show()

这个修改后的代码将使用观测者对象计算观测者与木星之间的距离,并将其存储在z列表中。然后,通过ax.plot(x, y, z)来绘制木星和其卫星的轨迹,并设置正确的坐标轴标签和图形标题

import ephemimport datetimeimport matplotlibpyplot as pltfrom mpl_toolkitsmplot3d import Axes3D# 创建一个木星对象jupiter = ephemJupiter# 获取当前时间now = datetimedatetimenow# 准备数据存储列表dates = x = y = z = # 计算木星及其卫星

原文地址: https://www.cveoy.top/t/topic/hy4t 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录