提交 fe05f3b6 编写于 作者: 三月三net's avatar 三月三net

Python超人-宇宙模拟器

上级 86140138
......@@ -220,17 +220,20 @@ def get_earth_pos_vel(dt):
@param dt:
@return:
"""
import pytz
# 安装 astropy 包
# pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com astropy
from astropy.coordinates import get_body_barycentric_posvel # 获取天体的坐标pos和速度vel
from astropy.coordinates import solar_system_ephemeris
# 获取天体的坐标pos和速度vel
from astropy.coordinates import get_body_barycentric_posvel
import astropy.units as u # 单位
import pytz
# from astropy.coordinates import solar_system_ephemeris
# print("天体名:", solar_system_ephemeris.bodies)
# ('earth', 'sun', 'moon', 'mercury', 'venus', 'earth-moon-barycenter',
# 'mars', 'jupiter', 'saturn', 'uranus', 'neptune')
print('----------------------------------------')
print("北京时间:", dt.to_datetime(timezone=pytz.timezone('Asia/Shanghai')))
# 打印天体名
# print("天体名:", solar_system_ephemeris.bodies)
# ('earth', 'sun', 'moon', 'mercury', 'venus', 'earth-moon-barycenter', 'mars', 'jupiter', 'saturn', 'uranus', 'neptune')
# 获取地球的坐标和速度
earth_pos_vel = get_body_barycentric_posvel('earth', dt)
print("地球坐标(公里):", [earth_pos_vel[0].x.to(u.km),
......@@ -244,11 +247,30 @@ def get_earth_pos_vel(dt):
# print("速度(公里/秒):", posvel[1] * AU / SECONDS_PER_DAY)
def show_bodies_posvels(dt):
import pytz
# 安装 astropy 包
# pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com astropy
# 获取天体的坐标pos和速度vel
from astropy.coordinates import get_body_barycentric_posvel
import astropy.units as u # 单位
from astropy.coordinates import solar_system_ephemeris as sse
print("北京时间:", dt.to_datetime(timezone=pytz.timezone('Asia/Shanghai')))
for body_name in sse.bodies:
earth_pos_vel = get_body_barycentric_posvel(body_name, dt)
print(f"{body_name}-坐标(公里):", [earth_pos_vel[0].x.to(u.km),
earth_pos_vel[0].y.to(u.km),
earth_pos_vel[0].z.to(u.km)])
print(f"{body_name}-速度(公里/秒):",
[earth_pos_vel[1].x.to(u.km / u.second),
earth_pos_vel[1].y.to(u.km / u.second),
earth_pos_vel[1].z.to(u.km / u.second)])
if __name__ == '__main__':
from astropy.time import Time # 时间
# 获取当前时间
dt = Time.now()
# 指定未来的日期时间
# dt = conv_to_astropy_time('2050-01-01 12:00:00')
get_earth_pos_vel(dt)
show_bodies_posvels(dt)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册