彗星的基本概念
彗星(Comet),是指进入太阳系内亮度和形状会随日距变化而变化的绕日运动的天体,呈云雾状的独特外貌,也是中国神话传说的扫帚星(星官名)。彗星分为彗核、彗发、彗尾三部分。彗核由冰物质构成,当彗星接近恒星时,彗星物质升华,在冰核周围形成朦胧的彗发和一条稀薄物质流构成的彗尾。彗星的质量、密度很小,当远离太阳时只是一个由水、氨、甲烷等冻结的冰块和夹杂许多固体尘埃粒子的“脏雪球”。当接近太阳时,彗星在太阳辐射作用下分解成彗头和彗尾,状如扫帚。彗星以椭圆形、抛物线和双曲线这三种轨道围绕太阳运行。
C/2023 A3(紫金山-阿特拉斯)彗星
2023年3月1日,国际小行星中心发布一颗新彗星C/2023 A3(Tsuchinshan-ATLAS)的确认公告。该目标由中国科学院紫金山天文台近地天体望远镜于1月9日首次发现,后由南非ATLAS计划在2月22日报告存在彗星特征,进一步通过美国帕洛玛ZTF望远镜观测资料的回溯检测,确认为一颗已经开始活动的彗星。彗星的临时编号为A10SVYR,根据彗星命名系统,这颗彗星获得了两个天文台的名称,并被正式命名为C/2023 A3(Tsuchinshan-ATLAS)。
观测
- 10月14日至20日:0.5到1.7等,亮度减弱,但距离太阳更远,因此更容易被看到。日落后约一小时,肉眼可见。您可以看到反彗尾,即一条明亮的条纹,似乎指向太阳,与其他彗尾相反。10月15日,彗星将经过M5球状星团1.4°,提供良好的拍照机会。彗星穿过巨蛇座。
- 10月20日至31日:亮度从1.9到3.9等,穿过蛇夫座,位于西南天空相对较高的位置,晚上可见。用双筒望远镜和望远镜可见。在这几天里,彗尾将开始快速增长。
- 11月:亮度从4到8等,晚上可见。日落后在北半球升得更高。
- 12月:亮度从8到10等,在天空中逐渐靠近太阳,升到地平线以下。在南半球不可见。
绘制
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.collections import LineCollection
from 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(2024, 10, range(1, 32))
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 = 'C/2023 A3 (Tsuchinshan-ATLAS)'
row = comets.loc[n] # 提取 Tsuchinshan-ATLAS 彗星参数
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/master'
'/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'
ax.plot(comet_x, comet_y, ls = (6, (6,6)), lw = 0.3, c = comet_color, zorder=3, marker='+', markersize=10)
offset = 0.012
for xi, yi, tstr in zip(comet_x, comet_y, t_comet.utc_strftime('%m/%d')):
tstr = tstr.lstrip('0')
offset = offset * -1
text = ax.text(xi, yi - offset, tstr, color = comet_color,
ha='center', va='center', fontsize=12, 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*2, limit * 3.3
ylim0, ylim1 = -limit, limit
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().values
if not np.isnan(x):
text = ax.text(x, y, c_n, color = 'blue', fontsize=16)
fig.savefig('Tsuchinshan-ATLAS.png', bbox_inches='tight')
中文版:
附表:2024年9~10月近日点彗星信息表
天体名称 | 近日点年份 | 近日点月份 | 近日点日期 | 近日点距离(au) | 轨道偏心率 | 近日点参数 | 升交点经度 | 轨道倾角 | 绝对星等 | 视星等 | 来源 |
---|---|---|---|---|---|---|---|---|---|---|---|
C/2022 E2 (ATLAS) | 2024 | 9 | 13.9643 | 3.66693 | 1.00101 | 41.6861 | 125.366 | 137.134 | 8.4 | 4 | MPEC 2023-HD1 |
C/2021 G2 (ATLAS) | 2024 | 9 | 9.6198 | 4.98126 | 0.999323 | 343.327 | 221.097 | 48.4737 | 9 | 4 | MPEC 2023-HD1 |
54P/de Vico-Swift-NEAT | 2024 | 9 | 3.7606 | 2.17264 | 0.426454 | 1.9034 | 358.81 | 6.0641 | 9 | 4 | MPC 89011 |
C/2023 A3 (Tsuchinshan-ATLAS) | 2024 | 9 | 27.6701 | 0.391262 | 1.00018 | 308.488 | 21.5574 | 139.118 | 9.2 | 4 | MPEC 2023-HD1 |
P/2014 MG4 (Spacewatch-PANSTARRS) | 2024 | 9 | 7.3701 | 3.71597 | 0.258854 | 299.012 | 311.721 | 9.3658 | 9.5 | 4 | MPEC 2022-K19 |
384P/Kowalski | 2024 | 9 | 19.1263 | 1.11276 | 0.616239 | 37.656 | 354.219 | 7.2835 | 19.5 | 4 | MPEC 2022-OB6 |
P/2019 M2 (ATLAS) | 2024 | 9 | 28.1403 | 1.06791 | 0.647419 | 332.551 | 307.616 | 12.2709 | 21.2 | 4 | MPEC 2022-O08 |
234P/LINEAR | 2024 | 10 | 23.4161 | 2.82221 | 0.256549 | 357.346 | 179.571 | 11.5356 | 12 | 4 | MPEC 2022-K19 |
P/2015 HG16 (PANSTARRS) | 2024 | 10 | 17.8669 | 3.10696 | 0.351803 | 47.2724 | 57.2331 | 18.9122 | 12.5 | 4 | MPEC 2021-P47 |
P/2012 US27 (Siding Spring) | 2024 | 10 | 21.2215 | 1.81602 | 0.648324 | 0.8399 | 49.209 | 39.3701 | 13.5 | 4 | MPC 84024 |
37P/Forbes | 2024 | 10 | 11.2478 | 1.61676 | 0.533004 | 330.094 | 314.566 | 8.9505 | 13.8 | 4 | MPEC 2021-F20 |
253P/PANSTARRS | 2024 | 10 | 20.8462 | 2.0278 | 0.414596 | 230.736 | 146.875 | 4.9435 | 14.5 | 4 | MPEC 2020-FB5 |
360P/WISE | 2024 | 10 | 3.6355 | 1.85229 | 0.499294 | 354.217 | 2.1894 | 24.1106 | 19.5 | 6 | MPC108599 |