【发布时间】:2020-05-09 23:52:41
【问题描述】:
我对 Python 还很陌生,我一直在尝试为 Python 重新创建一个有效的 IDL 程序,但我遇到了困难并且不断出错。我还没有找到解决方案。 该程序总共需要 4 个 FITS 文件(img 和校正图像 dark、flat1、flat2)。操作如下:
flat12 = (flat1 + flat2)/2
img1 = (img - dark)/flat12
上述文件的尺寸为 (1024,1024,1)。我已将它们的大小调整为 (1024,1024),以便能够使用 im_show() 函数。
我也尝试过使用cv2.add(),但我明白了:
TypeError:参数“src1”的预期 Ptr
有什么解决方法吗?提前致谢。
【问题讨论】:
-
把它们变成 numpy 数组。 stackoverflow.com/questions/7762948/…
-
@shanecandoit 感谢您的建议,但它不处理 FITS 文件。我尝试使用线程中给出的方法,但是将 FITS 转换为 ndarray 会给我一个空元组或类“NoneType”。
-
只是一个我喜欢强调的概念性注释:一个不会对 FITS 文件进行算术运算(尽管我知道你问的意思;我不是在吹毛求疵)。我认为考虑数据和数据存储方法之间的概念差异很有用。 FITS 只是将阵列数据存储在磁盘文件中的一种方式(以及相关的元数据)。因此,您真正要考虑的是如何将存储在 FITS 文件中的数据读取为更通用的格式,并对其执行算术运算(在 Python 中,根据@saimn 的回答,“通用格式”是 Numpy 数组)跨度>
-
(甚至 Numpy 数组也是更高级别的抽象)
标签: python python-3.x astropy fits pyfits