def write(self, outfile, clobber=False):
"""
Create a new "SPECTRUM" table/extension and replace the original
one, then write to output file.
"""
# Open the original input spectrum as the base
fitsobj = fits.open(self.filename)
columns = [
fits.Column(name="CHANNEL", format="I", array=self.channel),
fits.Column(name=self.spec_type, format=self.spec_fits_format,
unit=self.spec_unit, array=self.spec_data),
]
if self.grouping is not None:
columns.append(fits.Column(name="GROUPING",
format="I", array=self.grouping))
if self.quality is not None:
columns.append(fits.Column(name="QUALITY",
format="I", array=self.quality))
if self.stat_err is not None:
columns.append(fits.Column(name="STAT_ERR", unit=self.spec_unit,
format=self.spec_fits_format,
array=self.stat_err))
ext_spec_cols = fits.ColDefs(columns)
ext_spec = fits.BinTableHDU.from_columns(ext_spec_cols,
header=self.header)
# Replace the original spectrum data
fitsobj["SPECTRUM"] = ext_spec
try:
fitsobj.writeto(outfile, overwrite=clobber, checksum=True)
except TypeError:
fitsobj.writeto(outfile, clobber=clobber, checksum=True)
# class Spectrum }}}
评论列表
文章目录