astropy

全面的天文学与天体物理学Python库。该技能适用于处理天文数据,涵盖天体坐标、物理单位、FITS文件、宇宙学计算、时间系统、表格数据、世界坐标系(WCS)以及天文数据分析。适用于坐标转换、单位换算、FITS文件操作、宇宙学距离计算、时间尺度转换或天文数据处理等任务。

安装

热度:10

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-astropy&locale=zh&source=copy

Astropy - Python 天文学核心库

技能概述


Astropy 是 Python 天文学研究的核心库,提供坐标转换、单位计算、FITS 文件处理、宇宙学计算等全面的天文数据处理功能。

适用场景

1. 天文观测数据处理


当你需要处理天文观测数据时,Astropy 可以帮你读取和分析 FITS 格式的图像和表格文件,提取头部信息,进行数据统计和质量检查。它支持多种天文数据格式,是天文学家日常处理观测数据的必备工具。

2. 天文坐标系统转换


当需要在不同天文坐标系统之间转换时,Astropy 提供 ICRS、Galactic、FK5、AltAz 等多种坐标框架的相互转换功能。无论是将赤道坐标转换为银道坐标,还是计算天体在特定时间和地点的高度角方位角,都能轻松完成。

3. 宇宙学和星表分析


当进行宇宙学研究或星表数据处理时,Astropy 内置了 Planck18、WMAP9 等标准宇宙学模型,可以计算光度距离、宇宙年龄等参数。同时支持星表的交叉匹配、过滤、连接等数据库操作。

核心功能

1. 单位和量(astropy.units)


自动处理带单位的物理量,确保计算时的量纲一致性。支持天文常用单位如秒差距(pc)、央斯基(Jy)、天文单位(AU)等,以及它们之间的相互转换。还支持光谱多普勒转换、视差转换等特殊等价转换。

2. 坐标系统(astropy.coordinates)


创建和转换天体坐标,计算角分离和位置角,支持在线数据库查询天体名称。可以处理三维坐标(含距离),并能处理自行和径向速度。是天文定位和观测计划的基础工具。

3. FITS 文件处理(astropy.io.fits)


读写和操作 FITS(灵活图像传输系统)文件,这是天文数据的标准格式。支持多扩展文件、内存映射大文件、远程文件访问(S3、HTTP)。可以修改头部关键字、注释和历史记录。

4. 宇宙学计算(astropy.cosmology)


使用标准宇宙学模型计算各种宇宙学距离(光度距离、角径距离、共动距离)、宇宙年龄和回溯时间。支持自定义宇宙学参数,可进行反向计算(给定距离求红移)。

5. 表格操作(astropy.table)


处理天文表格和星表数据,支持多种格式(FITS、CSV、HDF5、VOTable)。提供类似数据库的操作(连接、分组、聚合),支持单位感知的 QTable,能处理缺失数据。

6. 时间处理(astropy.time)


精确处理天文时间,支持多种时间格式(ISO、JD、MJD、Unix)和时间尺度(UTC、TAI、TT、TDB)。可计算恒星时、光行时修正(质心、日心),是精确天文计时必不可少的工具。

常见问题

Astropy 是什么?用来做什么?


Astropy 是 Python 语言中天文学研究的核心库,由天文学界共同开发和维护。它提供了一整套处理天文数据的工具,包括天文坐标转换、物理单位计算、FITS 文件读写、宇宙学参数计算、精确时间处理等功能。无论是专业天文研究、观测数据处理,还是天文教学和科普,Astropy 都是首选工具。

如何安装 Astropy?


Astropy 可以通过 pip 或 uv 等包管理器安装。推荐使用 uv 进行快速安装:uv pip install astropy。如果需要完整功能(包括所有可选依赖),可以运行 uv pip install astropy[all]。Astropy 支持 Python 3.9 及以上版本,安装后即可在 Python 脚本或 Jupyter Notebook 中使用。

Astropy 支持哪些天文坐标系统?


Astropy 支持所有主流天文坐标系统,包括 ICRS(国际天球参考系)、FK5(第五基本星表坐标系)、Galactic(银道坐标系)、AltAz(地平高度角方位角坐标系)等。使用 SkyCoord 对象可以轻松在这些坐标系之间进行转换,转换时还会自动处理岁差、章动等天文效应。对于 AltAz 这种观测者相关坐标系,需要提供观测时间和地理位置。

如何用 Python 读取 FITS 文件?


使用 Astropy 的 astropy.io.fits 模块可以方便地读取 FITS 文件。最简单的方法是使用 fits.getdata('file.fits') 获取数据,或 fits.getheader('file.fits') 获取头部信息。推荐使用上下文管理器 with fits.open('file.fits') as hdul: 来确保文件正确关闭。FITS 文件可能包含多个 HDU(Header Data Unit),可以使用索引或名称访问特定的扩展。