我有一个FITS文件与一个BinTableHDU,其中有许多条目已经从数字转换,各种单位,如伏特和电流。我想关闭此转换,并访问存储在表中的原始数字值。
此表使用头部中的TTYPE、TSCAL、TZERO和TUNIT键来完成转换。因此,我可以使用这些头键手动撤消转换。
undo = (converted - tzero ) / tscal 由于astropy.table.Table和astropy.table.QTable类自动地解释这些字段,我不得不认为我忽略了一种使用astropy函数撤消转换的方法。在astropy QTable或Table类中是否有一个属性或函数可以让我自动撤消转换。(或者另一种更简单的方法)撤销这种转换?
编辑:感谢汤姆·奥尔德克罗夫特在下面的回答。
在我的情况下,可以使用以下代码抓取FITS二进制表并将其放入pandas.DataFrame (转换表或未转换表):
import pandas as pd
from astropy.table import Table
from astropy.io import fits
# grab converted data in various scaled values and units volts / current
converted = Table(fits.getdata(file, 2)).to_pandas()
# grab unconverted data in its original raw form
unconverted = Table(fits.getdata(file, 2)._get_raw_data()).to_pandas()发布于 2022-01-15 10:39:19
您需要使用的是直接astropy.io.fits接口,而不是高级Table接口。从这里开始,像这样的事情可能会奏效:
from astropy.io import fits
with fits.open('data.fits') as hdus:
hdu1 = hdus[1].data
raw = hdu1._get_raw_data()https://stackoverflow.com/questions/70717019
复制相似问题