From 4afdbe83d33f61298f23f53a205c3bf6fd60bce4 Mon Sep 17 00:00:00 2001 From: march3 Date: Mon, 28 Aug 2023 19:04:52 +0800 Subject: [PATCH] =?UTF-8?q?Python=E8=B6=85=E4=BA=BA-=E5=AE=87=E5=AE=99?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/celestial_data_service.py | 39 ++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/common/celestial_data_service.py b/common/celestial_data_service.py index 870a1d9..2fa45e0 100644 --- a/common/celestial_data_service.py +++ b/common/celestial_data_service.py @@ -206,19 +206,38 @@ def set_earth_rotation(earth, dt): earth.planet.rotation_y = -total_hours * 15 - angle_of_day + 15 # 精确调整 +def get_astropy_time(str_time): + from datetime import datetime + return Time(datetime.strptime(str_time + '+0800', '%Y-%m-%d %H:%M:%S%z'), format='datetime') + + # pip install Astropysics if __name__ == '__main__': - # pip install astropy - from astropy.coordinates import get_body_barycentric_posvel - from astropy.time import Time - import astropy.units as u - + # 安装天文包 + # 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.time import Time # 时间 + from astropy.coordinates import solar_system_ephemeris + import astropy.units as u # 单位 + import pytz + + # 获取当前时间 t = Time.now() - print("日期时间:", t) - posvel = get_body_barycentric_posvel('earth', t) - print("坐标(公里):", [posvel[0].x.to(u.km), posvel[0].y.to(u.km), posvel[0].z.to(u.km)]) - print("速度(公里/秒):", - [posvel[1].x.to(u.km / u.second), posvel[1].y.to(u.km / u.second), posvel[1].z.to(u.km / u.second)]) + # 指定日期时间 + # t = get_astropy_time('2050-01-01 12:00:00') + + print("北京时间:", t.to_datetime(timezone=pytz.timezone('Asia/Shanghai'))) + # 打印天体名 + # print("天体名:", solar_system_ephemeris.bodies) + # 获取地球的坐标和速度 + earth_pos_vel = get_body_barycentric_posvel('earth', t) + print("地球坐标(公里):", [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("地球速度(公里/秒):", + [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)]) # print("速度(公里/秒):", posvel[1] * AU / SECONDS_PER_DAY) -- GitLab