python处理FITS文件 2:astropy.io.fits介绍及打开FITS文件

astropy这个库有很多功能,因为本文主要涉及FITS文件,因此仅仅使用astropy.io.fits

1介绍

astropy.io.fits包提供FITS文件操作的函数接口,使得用户可以忽略FITS文件实现的底层细节,可以像操作正常文件和数组一样处理一个非常复杂的文件。
FITS文件的格式可以参考本博客中的相关文章。

2打开FITS文件

from astropy.io import fits
hdul=fits.open(fits_image_filename)

注意fits_image_filename是一个fits文件的文件名,实际使用时填写对应的路径和文件名,如果没有路径,默认为当前路径下的文件。
open()函数有几个可选参数,之后会提到。默认模式下函数返回一个对象HDUList,就是一个HDU的列表。HDU是FITS文件最高级的FITS结构,由头文件和数据单元组成。
列表是python的基本数据结构之一,有丰富的函数操作,可以像正常列表做索引等基本操作。
因为一个FITS文件可能会由很多个HDU组成,所以需要通过索引选择其中一个,如hdul[0]选择第一个HDU。
通过HDUList.info()可以得到文件的信息
这里写图片描述
可以看出代码中使用的文件共有五个HDU,第一个没有数据单元,之后四个名为SCI文件。
可以通过之前所提到的索引选择任意一个HDU进行处理

3关闭FITS文件

hdul.close()

及时关闭HDUList对象有助于减少内存消耗,在文件很大很多时需要格外注意。
使用上下文管理器可以很方便解决这个问题
hduclose
即使出现异常,HDUList同样可以关闭

4.打开较大的文件

使用open()函数的控制参数memmap=True控制数据数组通过mmap内存映射获取,而不是一次性读入内存。

下一篇:处理fits文件

猜你喜欢

转载自blog.csdn.net/zaq15csdn/article/details/81255269