python天文学必备库Astropy初步使用:查看fits文件

发布时间:2026/7/15 19:44:21
python天文学必备库Astropy初步使用:查看fits文件 文章目录简介和安装打开fits数据查看数据简介和安装Astropy是天文学和天体物理学领域最著名的Python库为天文数据处理、分析和可视化提供一个统一的底层框架确立 Python 在天文数据处理领域的标准接口。由于Astropy需要一些依赖故而推荐用conda的forge模式安装。conda install --channel conda-forge astropyAstropy内容非常驳杂涵盖了坐标与天体测量Coordinates、时间系统Time、单位与物理量Units and Quantities、表格与数据管理Tables、FITS 与底层 I/O、宇宙学Cosmology、模型与拟合Modeling and Fitting、虚拟天文台Virtual Observatory, VO等多个模块。打开fits数据下面用astropy查看一下小麦哲伦云的影像第一步先下载数据。fromastropy.utils.dataimportdownload_file hi_datafiledownload_file(http://data.astropy.org/tutorials/FITS-cubes/reduced_TAN_C14.fits,cacheTrue,show_progressTrue,)其返回值是个文件路径。该数据大约40M左右如果感觉网速不给力可以用类似Motrix之类的直接下载。下载完成后用fits打开。fromastropy.ioimportfits hi_datafits.open(hi_datafile)# 返回数据列表hduhi_data[0]datahdu.data# Numpy 数组print(data.shape)# (450, 150, 150)headerhdu.header# 头部信息fits数据包含两部分内容分别是数据头和数组。我们下载的大麦哲伦云其数据内容是个三维数据立方体三个轴分别是( Z , X , Y ) (Z,X,Y)(Z,X,Y)其X和Y轴即为观测数据Z轴则是光谱轴表示的是视向速度。之所以存在视向速度是因为宇宙在加速膨胀距离我们不同的天体其远离我们的速度不同。查看数据下面抽选其中一个通道的图像进行查看如下图所示。在图像中水平和竖直坐标分别是银经和银纬绘图代码如下importmatplotlib.pyplotasplt plt.rcParams[font.sans-serif]Times New Romanfromastropy.wcsimportWCS wcsWCS(header)imgdata[300,:,:]axplt.subplot(111,projectionwcs,slices(x,y,300))imax.imshow(img,cmapviridis,originlower)ax.set_xlabel(Galactic Longitude (deg))ax.set_ylabel(Galactic Latitude (deg))plt.colorbar(im,labelTemperature (K))plt.show()代码中WCS是astropy中的坐标系统在绘图中起到了坐标映射的作用。