当前位置: 首页 > news >正文

Python 绘制 2025年 9~11月 P/1999 RO28 (LONEOS) 彗星路径

彗星的基本概念

  彗星(Comet),是指进入太阳系内亮度和形状会随日距变化而变化的绕日运动的天体,呈云雾状的独特外貌,也是中国神话传说的扫帚星(星官名)。彗星分为彗核、彗发、彗尾三部分。彗核由冰物质构成,当彗星接近恒星时,彗星物质升华,在冰核周围形成朦胧的彗发和一条稀薄物质流构成的彗尾。彗星的质量、密度很小,当远离太阳时只是一个由水、氨、甲烷等冻结的冰块和夹杂许多固体尘埃粒子的“脏雪球”。当接近太阳时,彗星在太阳辐射作用下分解成彗头和彗尾,状如扫帚。彗星以椭圆形、抛物线和双曲线这三种轨道围绕太阳运行。

P/1999 RO28 (LONEOS) 彗星

P/1999 RO₂₈ (LONEOS) 是一颗周期彗星

  • P/:代表“Periodic Comet”(周期彗星),表示其绕太阳公转的周期小于200年。

  • 1999 RO₂₈:表明它是1999年9月下半月(R)被发现的,并且是该时段内发现的第715个天体(O28 是 IAU
    小行星暂定编号体系的一部分,计算较为复杂)。

  • (LONEOS):代表其发现者或发现项目,即 “洛厄尔近地天体搜索计划” (Lowell Observatory Near-Earth-Object Search)。

发现与确认

  • 初次发现:该天体于 1999年9月5日 由美国洛厄尔天文台的LONEOS项目发现。LONEOS是一个专门用于搜寻和监测近地小行星(NEOs)的自动化巡天项目。

  • 最初分类:在发现之初,它被归类为一颗小行星,并获得了临时编号 1999 RO₂₈。这是因为当时它可能没有表现出明显的彗星活动(如彗发或彗尾)。

  • 彗星身份的确认:直到 2005年,天文学家在回顾和分析历史数据时,发现这个“小行星”1999 RO28 的轨道与另一个临时编号为 2005 TV165 的天体高度吻合。进一步的研究和分析证实,2005 TV165 就是 1999 RO28,并且在其2005年的回归中,观测到了它具有彗星活动(即出现了彗发)。因此,它的身份被重新分类为彗星,并获得了现在的永久编号 P/1999 RO28 (LONEOS)。

轨道与物理特性

  • 轨道类型:它被归类为木星族彗星。这意味着它的轨道受到木星引力的显著影响和控制,其远日点(离太阳最远的点)在木星轨道附近。

  • 轨道周期:约 7.65年。

  • 近日点:约 2.15 AU(天文单位)。这个位置位于火星和木星轨道之间的主小行星带内部。

  • 远日点:约 5.35 AU,接近木星的轨道。

  • 轨道倾角:非常低,只有约 1.6度,说明它的轨道几乎与太阳系的黄道面重合。

  • 亮度:它是一颗非常暗弱的彗星。其绝对星等(H)大约在14.5左右,这意味着即使在最亮的时候,也需要使用大型业余望远镜或专业设备才能观测到。它从未达到过肉眼可见的亮度

绘制

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.collections import LineCollectionfrom skyfield.api import Star, load
from skyfield.constants import GM_SUN_Pitjeva_2005_km3_s2 as GM_SUN
from skyfield.data import hipparcos, mpc, stellarium
from skyfield.projections import build_stereographic_projection# 加载天文历
ts = load.timescale()
t_comet = ts.utc(2025, 9, range(1, 92))
t = t_comet[len(t_comet) // 2]  # middle date# 加载太阳系天体数据(行星及以上)
eph = load('de421.bsp')
sun = eph['sun']
earth = eph['earth']# 加载小行星中心数据,创建彗星对象
with load.open(mpc.COMET_URL) as f:comets = mpc.load_comets_dataframe(f).set_index("designation", drop=False)
n = 'P/1999 RO28 (LONEOS)'
row = comets.loc[n] 
comet = sun + mpc.comet_orbit(row, ts, GM_SUN)# 加载恒星目录(Hipparcos)
with load.open(hipparcos.URL) as f:stars = hipparcos.load_dataframe(f)# 加载星座信息,生成星座轮廓
url = ('https://raw.githubusercontent.com/Stellarium/stellarium/''eb47095a9282cf6b981f6e37fe1ea3a3ae0fd167''/skycultures/modern_st/constellationship.fab')
with load.open(url) as f:constellations = stellarium.parse_constellations(f)
edges = [edge for name, edges in constellations for edge in edges]
edges_star1 = [star1 for star1, star2 in edges]
edges_star2 = [star2 for star1, star2 in edges]# 计算彗星路径,创建立体(天坐标)投影,并配置星体大小范围
center = earth.at(t).observe(comet)
projection = build_stereographic_projection(center)
field_of_view_degrees = 45.0
limiting_magnitude = 7.0# 计算每颗恒星和彗星在图表上的x和y坐标
star_positions = earth.at(t).observe(Star.from_dataframe(stars))
stars['x'], stars['y'] = projection(star_positions)comet_x, comet_y = projection(earth.at(t_comet).observe(comet))# 标记亮度足够的恒星,计算这些恒星在图表上的大小
bright_stars = (stars.magnitude <= limiting_magnitude)
magnitude = stars['magnitude'][bright_stars]
marker_size = (0.5 + limiting_magnitude - magnitude) ** 2.0# 处理星座线
xy1 = stars[['x', 'y']].loc[edges_star1].values
xy2 = stars[['x', 'y']].loc[edges_star2].values
lines_xy = np.rollaxis(np.array([xy1, xy2]), 1)############################################### 开始绘图
# 配置全局参数
PAR = {'font.sans-serif': 'Times New Roman','axes.unicode_minus': False,'mathtext.default':'regular',}
plt.rcParams.update(PAR)
fig, ax = plt.subplots(figsize=[18, 9], dpi = 300)# 绘制星座线
ax.add_collection(LineCollection(lines_xy, colors='#00f2'))# 绘制恒星
ax.scatter(stars['x'][bright_stars], stars['y'][bright_stars],s=marker_size, color='k')# 绘制彗星位置及日期标签
comet_color = '#f00'
comet_x, comet_y, utc_time = comet_x[::5], comet_y[::5], t_comet.utc_strftime('%m/%d')[::5]ax.plot(comet_x, comet_y, ls = (6, (6,6)), lw = 0.87, c = comet_color, zorder=3, marker='+', markersize=12)
offset = 0.018
for xi, yi, tstr in zip(comet_x, comet_y, utc_time):tstr = tstr.lstrip('0')offset = offset * -1text = ax.text(xi, yi - offset, tstr, color = comet_color, ha='center', va='center', fontsize=18, weight='bold')text.set_alpha(0.9)# 创建标题,配置其他参数.
angle = np.pi - field_of_view_degrees / 360.0 * np.pi
limit = np.sin(angle) / (1.0 - np.cos(angle))
xlim0, xlim1 = -limit * 3.1, limit * 1.8
ylim0, ylim1 = -limit * 1, limit * 1
ax.set_xlim(xlim0, xlim1)
ax.set_ylim(ylim0, ylim1)ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
ax.set_aspect(1.0)
ax.set_title(f"Comet {n} {t_comet[0].utc_strftime('%Y/%m/%d')} - {t_comet[-1].utc_strftime('%Y/%m/%d')}", size = 18)# 标注星座中心
for c_n, edges in constellations:star = stars[['x', 'y']].loc[np.array(edges).flatten()]x, y = star.query(f"({xlim0} < x < {xlim1}) and ({ylim0} < y < {ylim1})").mean().valuesif not np.isnan(x):text = ax.text(x, y, c_n, color = 'blue', fontsize=16)fig.savefig('P 1999 RO28.png', bbox_inches='tight')


文章转载自:

http://2ifIYxJr.yppLn.cn
http://aujJCgf0.yppLn.cn
http://86YX4LhV.yppLn.cn
http://u8rCfamV.yppLn.cn
http://JXsmcmsP.yppLn.cn
http://IBxyo7mi.yppLn.cn
http://y3GDRqDI.yppLn.cn
http://QIyPxHeM.yppLn.cn
http://JndlIVtb.yppLn.cn
http://Lf94vzor.yppLn.cn
http://QMHq1Pq4.yppLn.cn
http://5ROxdR0T.yppLn.cn
http://yv55NhJ5.yppLn.cn
http://03LGYCT8.yppLn.cn
http://T6TyXHMY.yppLn.cn
http://nGWJa66v.yppLn.cn
http://MsFmMUst.yppLn.cn
http://DPc7GsWX.yppLn.cn
http://amNDVIPT.yppLn.cn
http://uqVjl5Pd.yppLn.cn
http://M3obqIi5.yppLn.cn
http://zxq1bAdf.yppLn.cn
http://bibEMP1l.yppLn.cn
http://TfzJmTcL.yppLn.cn
http://xeBrQU5k.yppLn.cn
http://gETAuLcI.yppLn.cn
http://AIo1vfW8.yppLn.cn
http://9daXmZpm.yppLn.cn
http://4iATXSzA.yppLn.cn
http://gQErdxjk.yppLn.cn
http://www.dtcms.com/a/375280.html

相关文章:

  • Spring Cloud Stream深度实战:发布订阅模式解决微服务通信难题
  • 【菜狗每日记录】深度轨迹聚类算法、GRU门控神经网络—20250909
  • OpenCV 实战:多角度模板匹配实现图像目标精准定位
  • C#/.NET/.NET Core技术前沿周刊 | 第 53 期(2025年9.1-9.7)
  • 基于Java+Vue开发的家政服务系统源码适配H5小程序APP
  • 使用Flask实现接口回调地址
  • Java线程中的sleep、wait和block:区别与联系详解
  • 生信软件管理, 容器-Singularity学习笔记
  • go webrtc - 2 webrtc重要概念
  • 智能驱动,全程可控——D-QS工程造价数字化平台核心功能深度解析
  • [硬件电路-170]:50Hz工频干扰:本质、产生机制与影响
  • tab切换动画,背景图向内收缩效果,主图片缓慢展开效果(含自适应)
  • 【内存管理】设置内存页表项 set_pte_at
  • Python中内置装饰器
  • 鸿蒙NEXT UI高性能开发实战:从原理到优化
  • 影视APP源码 SK影视 安卓+苹果双端APP 反编译详细视频教程+源码
  • Anthropic 支持加州 AI 安全法案
  • 【杂类】应对 MySQL 处理短时间高并发的请求:缓存预热
  • ubuntu 20.04 安装spark
  • 【企业微信】接口报错:javax.net.ssl.SSLHandshakeException
  • uniapp原生插件 TCP Socket 使用文档
  • 京东云-数据盘挂载
  • 【华为OD】Linux发行版的数量
  • 缓冲区漏洞详解
  • 位图转矢量图的实现方法与常用工具解析
  • 设计模式-简单工厂策略装饰器代理
  • 家庭劳务机器人发展阶段与时间预测
  • .NET 单文件程序详解:从原理到实践
  • 新能源汽车充电设备装调与检修仿真教学软件:理虚实融合实训方案
  • 小鹏汽车 vla 算法最新进展