用途:Astropy 是天文与天体物理研究的核心 Python 包,用于坐标变换、单位与量计算、FITS 文件操作、宇宙学计算、精确时间处理、表格数据操作和天文图像处理。
主要能力:astropy.units 处理带单位物理量与换算(含光谱、多普勒、视差等 equivalencies 与对数单位);astropy.coordinates 用 SkyCoord 表示并转换 ICRS、Galactic、FK5、AltAz 等坐标框架,计算角距、位置角、自行与径向速度,并可匹配星表;astropy.cosmology 提供 Planck18、WMAP9 等模型,计算光度距离、共动距离、角直径距离、年龄、回溯时间、哈勃参数与反解红移;astropy.io.fits 读写与操作 FITS 图像和表格、HDU、头信息,支持内存映射与远程读取;astropy.table 支持多格式读写、排序、过滤、连接、分组、聚合与带单位 QTable;astropy.time 支持 ISO、JD、MJD、Unix 等格式与 UTC、TAI、TT、TDB 等时间尺度转换及时间运算;astropy.wcs 实现像素与世界坐标互转。另含 NDData/CCDData、建模、可视化、常量、卷积与稳健统计。
使用方式:安装命令为 uv pip install "astropy==8.0.1",推荐可选依赖用 uv pip install "astropy[recommended]==8.0.1"。要求 Python 3.11+ 与 NumPy 2+,依赖 PyERFA、astropy-iers-data、PyYAML、packaging;宇宙学、星表匹配与拟合示例需要 SciPy。建议使用隔离虚拟环境,不要以提权方式安装。
适用场景:天文坐标转换、星表交叉匹配、FITS 图像与表格分析、宇宙学距离与年龄计算、精确时间处理、WCS 变换等科研工作流。
限制:SkyCoord.from_name()、EarthLocation.of_site()/of_address()、download_file()、远程 FITS 读取及部分 IERS 变换可能访问外部服务或更新本地缓存,涉及敏感目标或数据位置时应先与用户确认。8.x 中 astropy.cosmology 子模块 shim 已移除,常量默认由 CODATA 2018 改为 2022,红移参数为仅位置参数(z=1.0 会失败),内置测试运行器与 astropy.samp 已弃用。WCS 高层像素方法使用从零开始的 (x, y),而 NumPy 图像索引为 [row, column],需注意边界与往返验证。生产环境建议用锁文件固定依赖版本。