我试图用PyFITS从两个旧的FITS文件中创建一个新的FITS文件。在
import pyfits
from sys import stdout
from sys import argv
import time
file1 = argv[1]
file2 = argv[2]
hdu1 = pyfits.open(file1)
hdu2 = pyfits.open(file2)
new0 = hdu1[0]
new1 = hdu1[0]
sci1 = hdu1[0].data
sci2 = hdu2[0].data
for r in range(0, len(sci1)):
for c in range(0, len(sci1[r])):
add = sci1[r][c] + sci2[r][c]
new0.data[r][c] = add
for r in range(0, len(sci1)):
for c in range(0, len(sci1[r])):
print "(" + str(r) + ", " + str(c) + ") FirstVal = " + str(sci1[r][c]) + " || SecondVal = " + str(sci2[r][c])
print "\t New File/Add = " + str(new0.data[r][c])
它只输出第一个值,即sci1[r][c]
。这意味着变量根本没有被修改。如何修改?我对使用FITS很陌生。在
这里所做的是使},因此它修改了预期的变量,但打印循环会打印同一对象两次。
{5>如果你想复制一个引用的方法
sci1
成为对new0.data
的引用,这意味着对new0
的赋值也会改变{这也不是pyfits用来表示图像的numpy。而不是循环,而是将操作应用到整个数组,这在大多数情况下更容易读取并且速度更快。如果要添加两个拟合图像,这些图像表示为numpy arrays inplace:
或者,如果要从两个输入的总和中创建新图像:
^{pr2}$相关问题 更多 >
编程相关推荐