Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Python_超人
宇宙模拟器
提交
fe05f3b6
宇宙模拟器
项目概览
Python_超人
/
宇宙模拟器
通知
19
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
宇宙模拟器
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
fe05f3b6
编写于
9月 01, 2023
作者:
三月三net
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python超人-宇宙模拟器
上级
86140138
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
8 deletion
+30
-8
common/celestial_data_service.py
common/celestial_data_service.py
+30
-8
未找到文件。
common/celestial_data_service.py
浏览文件 @
fe05f3b6
...
@@ -220,17 +220,20 @@ def get_earth_pos_vel(dt):
...
@@ -220,17 +220,20 @@ def get_earth_pos_vel(dt):
@param dt:
@param dt:
@return:
@return:
"""
"""
import
pytz
# 安装 astropy 包
# 安装 astropy 包
# pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com 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
# 获取天体的坐标pos和速度vel
from
astropy.coordinates
import
solar_system_ephemeris
from
astropy.coordinates
import
get_body_barycentric_posvel
import
astropy.units
as
u
# 单位
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
(
'----------------------------------------'
)
print
(
"北京时间:"
,
dt
.
to_datetime
(
timezone
=
pytz
.
timezone
(
'Asia/Shanghai'
)))
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
)
earth_pos_vel
=
get_body_barycentric_posvel
(
'earth'
,
dt
)
print
(
"地球坐标(公里):"
,
[
earth_pos_vel
[
0
].
x
.
to
(
u
.
km
),
print
(
"地球坐标(公里):"
,
[
earth_pos_vel
[
0
].
x
.
to
(
u
.
km
),
...
@@ -244,11 +247,30 @@ def get_earth_pos_vel(dt):
...
@@ -244,11 +247,30 @@ def get_earth_pos_vel(dt):
# print("速度(公里/秒):", posvel[1] * AU / SECONDS_PER_DAY)
# 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__'
:
if
__name__
==
'__main__'
:
from
astropy.time
import
Time
# 时间
from
astropy.time
import
Time
# 时间
# 获取当前时间
# 获取当前时间
dt
=
Time
.
now
()
dt
=
Time
.
now
()
# 指定未来的日期时间
# 指定未来的日期时间
# dt = conv_to_astropy_time('2050-01-01 12:00:00')
# 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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录