Hi,
I think the usefulness of the rebin function is to be simple and fast,
and the best would be to implement it in the core numpy, as a simple
method for smoothing and reshaping, without the need of using scipy.
For anything more sophisticated, the ndimage module as you suggest
should be used.
cheers,
Andrea

On Fri, Nov 11, 2011 at 07:07, Zachary Pincus <zachary.pin...@yale.edu> wrote:
> Hi Andrea,
>
> scipy.ndimage.zoom will do this nicely for magnification. (Just set the 
> spline order to 0 to get nearest-neighbor interpolation; otherwise you can 
> use higher orders for better smoothing.)
>
> For decimation (zooming out) scipy.ndimage.zoom also works, but it's not as 
> nice as a dedicated decimation filter that would average properly over the 
> area that's being squeezed into a single output pixel. (You'd have to choose 
> the spline order manually to approximate that.) I'm afraid I don't have 
> enough signal-processing background to know how to write a proper 
> general-purpose decimation filter -- basically, you convolve with whatever 
> bandlimiting filter (e.g. a gaussian, or do it in the Fourier domain), then 
> just do nearest-neighbor downsampling, but I'm never sure how to properly 
> choose the filter parameters!
>
> Between this and ndimage.zoom for magnifying, one could get together a much 
> better "rebin" function that in the edge cases of integer 
> magnification/minification should work the same as the IDL one. But the 
> participants in the old discussion you highlighted seemed unhappy with the 
> time/space used for proper decimation, so I'm not sure what really would be 
> best.
>
> Zach
>
>
> On Nov 11, 2011, at 1:41 AM, Andrea Zonca wrote:
>
>> hi,
>> I work in astrophysics where the most common programming language is
>> currently IDL.
>> A common request of people switching from IDL to python is the
>> implementation of the REBIN function, which either downsizes a 2d
>> array by averaging or increases its dimension by repeating its
>> elements. In both cases the new shape must be an integer factor of the
>> old shape.
>>
>> I believe it is a very handy function for quick smoothing of 2 dimensional 
>> data.
>>
>> I found a discussion about this topic in the archives:
>> http://thread.gmane.org/gmane.comp.python.numeric.general/885/focus=894
>>
>> Do you think it would be useful to add such function to numpy?
>>
>> I created a simple implementation to help in the discussion:
>> https://gist.github.com/1348792
>>
>> thanks,
>> Andrea Zonca
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to