首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Astropy撤消表转换

用Astropy撤消表转换
EN

Stack Overflow用户
提问于 2022-01-14 22:03:44
回答 1查看 36关注 0票数 0

我有一个FITS文件与一个BinTableHDU,其中有许多条目已经从数字转换,各种单位,如伏特和电流。我想关闭此转换,并访问存储在表中的原始数字值。

此表使用头部中的TTYPETSCALTZEROTUNIT键来完成转换。因此,我可以使用这些头键手动撤消转换。

代码语言:javascript
复制
undo = (converted - tzero ) / tscal 

由于astropy.table.Tableastropy.table.QTable类自动地解释这些字段,我不得不认为我忽略了一种使用astropy函数撤消转换的方法。在astropy QTable或Table类中是否有一个属性或函数可以让我自动撤消转换。(或者另一种更简单的方法)撤销这种转换?

编辑:感谢汤姆·奥尔德克罗夫特在下面的回答。

在我的情况下,可以使用以下代码抓取FITS二进制表并将其放入pandas.DataFrame (转换表或未转换表):

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-15 10:39:19

您需要使用的是直接astropy.io.fits接口,而不是高级Table接口。从这里开始,像这样的事情可能会奏效:

代码语言:javascript
复制
from astropy.io import fits
with fits.open('data.fits') as hdus:
    hdu1 = hdus[1].data
raw = hdu1._get_raw_data()

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70717019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档