You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Astropy Cosmology:粒子视界绘图异常及事件视界添加方法

问题解决:Astropy视界绘图修正与事件视界添加

问题说明

使用astropy.cosmology库复现视界图时,粒子视界曲线出现倒置,同时需要添加事件视界(event horizon),当前代码生成的粒子视界不符合预期,需修正并补充事件视界的绘制逻辑。

问题分析与修正

粒子视界倒置原因

你当前直接使用cosmo.comoving_distance(z)作为粒子视界是错误的:

  • 粒子视界的正确定义是从宇宙诞生到z时刻,光所能传播的最大共动距离,Astropy内置了cosmo.particle_horizon(z)方法可直接计算该值。
  • 绘图需要的是固有距离(proper distance),需将共动粒子视界乘以尺度因子a(z) = 1/(1+z)(或调用cosmo.scale_factor(z))。
  • 原代码的红移顺序是从0到1089(对应时间从现在到宇宙早期),但粒子视界随时间演化是从0逐渐增大到当前值,错误的计算逻辑导致了曲线倒置。

添加事件视界

事件视界是当前时刻发出的光所能到达的最大未来共动距离,Astropy内置cosmo.event_horizon(z)方法,同样转换为固有距离后即可绘制。

修正后完整代码

from astropy.cosmology import Planck18
from astropy import units as u
import numpy as np
from matplotlib import pyplot as plt
import astropy.constants as cc

def hubble_radius(z):
    c = cc.c
    return (c / Planck18.H(z)).to(u.Glyr)

# 定义宇宙学模型
cosmo = Planck18

# 生成红移数组:从宇宙早期到现在(z从1089到0),对应时间从诞生到当前
redshift = np.arange(1089, 0, -0.1)
time = cosmo.age(redshift)

# 计算各视界的固有距离
hubble_radius_vals = [hubble_radius(z).value for z in redshift]
# 光程:z时刻到现在的固有距离(共动距离乘以当前尺度因子a=1)
light_path = cosmo.comoving_distance(redshift).to(u.Glyr).value
# 粒子视界:固有距离 = 共动粒子视界 * 尺度因子a(z)
particle_horizon = (cosmo.particle_horizon(redshift) * cosmo.scale_factor(redshift)).to(u.Glyr).value
# 事件视界:固有距离 = 共动事件视界 * 尺度因子a(z)
event_horizon = (cosmo.event_horizon(redshift) * cosmo.scale_factor(redshift)).to(u.Glyr).value

# 绘图
fig, ax1 = plt.subplots(figsize=(10,6))

ax1.plot(time, hubble_radius_vals, 'g-', label='Hubble radius')
ax1.plot(time, light_path, 'y-', label='Light path')
ax1.plot(time, particle_horizon, 'b-', label='Particle horizon')
ax1.plot(time, event_horizon, 'r--', label='Event horizon')

ax1.invert_xaxis()  # 时间轴从现在向左延伸到宇宙早期
ax1.legend(fontsize=12)

ax1.set_xlabel('Time (Gyr)', fontsize=12)
ax1.set_ylabel('Proper distance (Glyr)', fontsize=12)
ax1.grid(True, alpha=0.3)
plt.show()

关键修改点

  • 改用Astropy内置的particle_horizon()和event_horizon()方法,避免手动计算的逻辑错误。
  • 调整红移数组顺序为从1089到0,让时间轴从宇宙早期到现在,贴合视界演化的直观规律。
  • 统一将所有视界值转换为固有距离,与目标图的坐标轴定义完全匹配。

内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:01:20