简体   繁体   中英

Undo Table Conversion with Astropy

I have a FITS file with a BinTableHDU that has many entries that have been converted from digital numbers various units like Volts and Currents. I would like to turn off this conversion and access the original digital number value that was stored in the table.

This table makes use of TTYPE , TSCAL , TZERO , and TUNIT keys in the header to accomplish the conversions. So I could use these header keys to undo the conversion manually.

undo = (converted - tzero ) / tscal 

Since the astropy.table.Table and astropy.table.QTable class automatically interpret these fields I can't help but think I'm overlooking a way to use astropy functions to undo the conversion. Is there an attribute or function in the astropy QTable or Table class that could let me undo the conversion automatically. (or perhaps another easier way) to undo this conversion?

You'll need to be using the direct astropy.io.fits interface instead of the high-level Table interface. From there something like this might work:

from astropy.io import fits
with fits.open('data.fits') as hdus:
    hdu1 = hdus[1].data
raw = hdu1._get_raw_data()

See https://github.com/astropy/astropy/blob/645a6f96b86238ee28a7057a4a82adae14885414/astropy/io/fits/fitsrec.py#L1022

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM