我已經有一個寫好的文件(有人發給我),我想添加校驗和和datasum頭。我使用astropy.io.fits添加校驗和的唯一示例涉及在將每個部分添加到HDU時構建新的擬合HDU and verifying it。我可以做的,但似乎它會有更多的開銷,然後是需要的。Astropy將校驗和添加到現有的適合文件
有沒有辦法將校驗和和datasum添加到現有的HDU?
我已經有一個寫好的文件(有人發給我),我想添加校驗和和datasum頭。我使用astropy.io.fits添加校驗和的唯一示例涉及在將每個部分添加到HDU時構建新的擬合HDU and verifying it。我可以做的,但似乎它會有更多的開銷,然後是需要的。Astropy將校驗和添加到現有的適合文件
有沒有辦法將校驗和和datasum添加到現有的HDU?
ImageHDU
對象有一個名爲add_checksum()
的方法。這應該做你想要的。
所以你可以在更新模式下打開一個FITS文件,然後調用它並關閉文件。
from astropy.io import fits
with fits.open(filename, mode='update') as hdus:
hdus[0].add_checksum() # Fill in the arguments like you need them
的with
是首選,因爲它會自動close
■當了with
上下文退出(即使發生異常)的文件,但你也可以打開和關閉它沒有with
:
from astropy.io import fits
hdul = fits.open(filename, mode='update')
hdul[0].add_checksum()
hdul.close()
檢查HDUList.writeto的文檔。 – Iguananaut
@Iguananaut - 看來這需要重寫HDU。我想知道是否有一種方法可以在不重寫文件的情況下進行。它說:「使用提供的數據/標題創建一個新的FITS文件」http://astropy.readthedocs.org/en/stable/io/fits/api/files.html#astropy.io.fits.writeto – veda905