2016-04-16 15 views
-1

こんにちは、私はFITSファイルをforループで平均化するために作業しています。ループ出力を新しいものとして保存する方法があるかどうかは不思議でした/個別のFITSファイル?forループ出力を別の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

何らかの理由で、あなたのファイル名のすべての文字を超えるループしています。あなたは書いている:

newname = 'bfdiff%s' % i 

、その後

for w in newname: 
    ... 

あなたが行うこと追加forループを期待していましたか?すべての文字は、newnameにループされています。

なお、ファイル名フォーマットテンプレート'bfdiff%s'を使用しますが、後でさらに+ '.fits'を追加します。これを一度に行うには、'bfdiff%s.fits'のような書式文字列を使用します。

他の問題は、各ファイルが異なるファイル名を持つためには、実際にループ変数iを増やしていないということです。

関連する問題