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

2024-07-05 10:12:45 发布

您现在位置: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')

Tags: 文件infornpasarrayfitsaxismv
1条回答
网友
1楼 · 发布于 2024-07-05 10:12:45

不管出于什么原因,你都在文件名中的每个字符上循环。你在写:

newname = 'bfdiff%s' % i

然后呢

for w in newname:
    ...

你期望额外的for循环做什么?它所做的只是循环newname中的每个字符。你知道吗

顺便说一句,您使用了文件名格式模板'bfdiff%s',但稍后会附加+ '.fits'。您可以使用'bfdiff%s.fits'这样的格式字符串一下子完成这一切。你知道吗

您的另一个问题是,实际上并没有增加循环变量i,我假设您希望这样做,以便每个文件都有不同的文件名。你知道吗

相关问题 更多 >