|||
python有一个常用的读写fits文件的模块,即pyfits,但是用得多了就会感觉到pyfits的局限性。pyfits读fits文件的时候是把整个文件都读入内存的,所以对于某些大文件,不是每台计算机都可以读出来的,即使是大内存的服务器,有时候读出数据来,进行一些操作以后有可能就内存不够的,如果处理过程中对数组进行了某些操作的话。因而如何读文件的一部分就成了一个重要问题。
C语言库cfitsio继承了C语言的特点,可以非常自由地读取fits文件。最近发现,这个库已经有python包装了,称为fitsio。这样一来就方便了,可以只读取某些列,也可以只读取某些行。例子如下,给我自己看的。
import fitsio
filename='gen_scantable.fits'
#data=fitsio.read(filename,rows=0,columns=25,ext=1)
data=fitsio.read(filename,rows=0,columns='data',ext=1)
#print data[0,0,1,:]
print data[0,0,0,:]
# null,null,[0,1],[0,1,...]
https://pypi.python.org/pypi/fitsio/0.9.2
data2=fitsio.read(filename,rows=0,columns='data')
print data2
os.system('rm -f test_fitsio.fits')
fitsio.write('test_fitsio.fits',data2)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-7-28 06:25
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社