将循环输出保存到不同的FITS文件

时间:2016-04-16 19:46:26

标签: python

嗨,所以我在for循环中使用了一堆FITS文件(对它们进行平均),我只是想知道是否有办法将循环输出保存为新的/单独的FITS文件?

我似乎无法弄清楚如何让输出名称迭代并匹配实际的数据输出。

所以我希望循环将10种不同的输出保存为:bfdiffs1.fits,bfdiffs2.fits等......

谢谢!

以下示例代码:

btotal = np.asarray([bias1data,bias2data,bias3data,bias4data,bias5data,
bias6data,bias7data,bias8data,bias9data,bias10data,
bias11data,bias12data,bias13data,bias14data,bias15data])

ftotal = np.asarray([flat1data,flat2data,flat3data,flat4data,flat5data,
          flat6data,flat7data,flat8data,flat9data,flat10data])

mv = np.max(btotal, axis=0)
sums = np.sum(btotal, axis=0)
sub = sums-mv
btotalavg = sub/(len(btotal)-1)

i=0
for fdata in ftotal:
    bfdiff = abs(fdata-btotalavg)
    for bfdata in bfdiff:
        newname = 'bfdiff%s' %i
        for w in newname:
            hdu = fits.PrimaryHDU(bfdiff)
            hdu.writeto(w+'.fits')

1 个答案:

答案 0 :(得分:0)

无论出于何种原因,你循环遍历文件名中的每个字符。你在写:

newname = 'bfdiff%s' % i

然后

for w in newname:
    ...

你还期待额外的for循环做什么?它所做的就是遍历newname中的每个角色。

顺便提一下,您使用文件名格式模板'bfdiff%s',但稍后会附加+ '.fits'。您可以使用'bfdiff%s.fits'等格式字符串一次性完成所有操作。

你的另一个问题是你实际上并没有增加你想要做的循环变量i,以便每个文件都有不同的文件名。