修改像素值后写入新的拟合文件

时间:2017-08-17 20:25:40

标签: python fits pyfits

我有一个小问题。我知道有一些类似的问题,但我不知道我做错了因为他们不适合我,我会感激任何帮助。 我想更改拟合文件中的一些像素值。它们基本上是空点,我想用它们填充〜图像的平均像素值。 我喜欢这个:

from __future__ import division
import pyfits as fits
import numpy as np
obj1 = fits.open(raw_input('Name of the image to be improved? ')) 
data_obj1 = obj1[0].data
meanpix = np.mean(data_obj1)
noise = np.linspace(-meanpix,meanpix,100000)
shape = data_obj1.shape
result = np.zeros(shape)
for x in range(0,shape[0]):
    for y in range(0,shape[1]):       
        if data_obj1[x,y] > -5.48e-14 and data_obj1[x,y] < -5.46e-14:
            random_noise = np.random.choice(noise,1) 
            result[x,y] = random_noise
        else:
            result[x,y] = data_obj1[x,y]
out = obj1
out[0].data = result
out.writeto(raw_input('Name of the output file? '), clobber=True)

我知道它正在进行我想要做的操作,因为如果我打印结果[x,y]就应该是这样的。然而,当我打开生成的拟合文件时,它与开头时的完全相同。所以我可能不明白i)如何正确保存拟合文件或ii)如何正确构建我的新图像。有人能帮助我吗?

1 个答案:

答案 0 :(得分:-2)

除了@MSeifert解释的拼写错误之外,它只是一个可视化问题。请参阅评论以获得澄清!