Source code for image_tools.deconv

"""
Trivial clean implementation
"""
import numpy as np
#from astropy.nddata import convolve

[docs]def clean(s, g, niter=100, gain=0.1, threshold=1.25): """ A trivial 1D implementation of the CLEAN algorithm """ g = g/g.max() result = np.zeros_like(s) kern = np.zeros_like(s) mid = kern.size/2 kern[mid] = 1 sig = np.convolve(kern,g,mode='same') for ii in xrange(niter): peak = s.argmax() mx = s[peak] result[peak] += mx*gain sig *= mx*gain sig = np.roll(sig,peak-mid) s = s - sig sig /= mx*gain return result,s