pyfits、astropy.io.fits、または他のpythonライブラリを使用して、大きなfitsファイル内のバイナリテーブルに単一の行を追加するにはどうすればよいですか?
このファイルはログとして使用されるため、毎秒 1 行が追加され、最終的にファイルのサイズがギガバイトに達するため、すべてのファイルを読み取って書き戻すか、データのコピーをメモリに保持してファイルに書き込みます毎秒は実際には不可能です。これまでの pyfits または astropy.io.fits では、すべてをメモリに読み込んで新しい行を追加し、それを書き戻すことしかできませんでした。
例。次のようなファイルを作成します。
import numpy, pyfits
data = numpy.array([1.0])
col = pyfits.Column(name='index', format='E', array=data)
cols = pyfits.ColDefs([col])
tbhdu = pyfits.BinTableHDU.from_columns(cols)
tbhdu.writeto('test.fits')
そして、列「インデックス」に新しい値を追加したい、つまりバイナリテーブルにもう1行追加したい。