import ephemimport datetimeimport matplotlibpyplot as pltfrom mpl_toolkitsmplot3d import Axes3D# 创建一个观测者对象observer = ephemObserver# 设置观测者的位置这里使用地球的经纬度observerlat = 0observerlon = 0# 创建一个木星对象jupiter =
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 = ephem.separation(jupiter, observer)
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(
原文地址: https://www.cveoy.top/t/topic/hy48 著作权归作者所有。请勿转载和采集!