嗨,所以我在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')
答案 0 :(得分:0)
无论出于何种原因,你循环遍历文件名中的每个字符。你在写:
newname = 'bfdiff%s' % i
然后
for w in newname:
...
你还期待额外的for
循环做什么?它所做的就是遍历newname
中的每个角色。
顺便提一下,您使用文件名格式模板'bfdiff%s'
,但稍后会附加+ '.fits'
。您可以使用'bfdiff%s.fits'
等格式字符串一次性完成所有操作。
你的另一个问题是你实际上并没有增加你想要做的循环变量i
,以便每个文件都有不同的文件名。