[AstroPy] Image combine
Perry Greenfield
perry at stsci.edu
Wed Mar 7 08:30:51 EST 2012
Hi Jose,
Anytime you iterate over every pixel in a loop, you are going to find
that it is very slow. You want to be operating on at least 1000 pixels
at a time (ideally more than 10,000) to avoid numpy overhead. Using
masks to do the sigma clipping would be much faster (though not as
optimized as doing it in C as others mention).
Perry
On Mar 7, 2012, at 3:43 AM, Jose Miguel Ibáñez wrote:
> Hi !
>
> Right Kathleen, I mostly refer to the rejection, masking, scaling ...
> algorithms; the idea is to avoid to install all the PyRAF staff only
> because the nice iraf.imcombine task.
> I have tried to implement some of those features, but for the moment
> the main problem is that my routine is extremely slow (~2min)
> following the next schema:
>
> import numpy as np
>
> ndim = 2048
>
> cube = np.random.rand(32,ndim, ndim)
> result = np.zeros([ndim, ndim], np.float32)
>
> def combine(cube, result):
>
> for ii in range(ndim):
> for jj in range(ndim):
> result[ii, jj] = my_sigma_clip(cube[:,ii,jj])
> return result
>
>
> However, the next numpy sentence is very fast (less than 1 second )
>
>>> median_result = np.median(cube,0)
More information about the AstroPy
mailing list