[SciPy-User] faster interpolations (interp1d)

eat e.antero.tammi at gmail.com
Tue Mar 1 09:03:34 EST 2011


Hi,

On Tue, Mar 1, 2011 at 1:01 PM, James McCormac <jmccormac01 at qub.ac.uk>wrote:

> Hi eat,
> Yes this code works fine, its not actually that bad on a 2x500 arrays ~5
> but the 500 length arrays are the shortest I can run with. I am analyzing
> CCD images which can go up 2000x2000 in length and breadth, meaning 2x2000
> 1d arrays after collapsing the spectra. This takes >20 sec per image which
> is much too long. Ideally the id like it to run as fast as possible
> (depending on how much accuracy I can maintain).
>
> Yes the code works fine its just a little slow, I've put timers in and 98%
> of the time is taken up by the interpolation.  Any improvement in
> performance would be great. I've slimmed  down the rest of the body as much
> as possible already.
>
Can you provide a minimal working code example, which demonstrates the
problem? At least you'll get better idea how it performs on some other
machine.


Regards,
eat

>
> Cheers
> James
>
>
> On 1 Mar 2011, at 07:31, eat wrote:
>
> Hi James,
>
> On Mon, Feb 28, 2011 at 5:25 PM, James McCormac <jmccormac01 at qub.ac.uk>wrote:
>
>> Hi eat,
>> you sent me a suggestion for faster 1d interpolations using matrices a few
>> weeks back but I cannot find the email anywhere when I looked for it
>> today.
>>
>> Here is a better explanation of what I am trying to do. For example I have
>> a 1d array of 500 elements. I want to interpolate them quadratically so
>> each array becomes 10 values, 50,000 in total.
>>
>> I have 500x500 pixels and I want to get 0.01 pixel resolution.
>>
>> code snipet:
>> # collapse an image in the x direction
>> ref_xproj=np.sum(refarray,axis=0)
>>
>> # make an array for the 1d spectra
>> x = np.linspace(0, (x_2-x_1), (x_2-x_1))
>>
>> # interpolation
>> f2_xr = interp1d(x, ref_xproj, kind='quadratic')
>>
>> # new x array for interpolated data
>> xnew = np.linspace(0, (x_2-x_1), (x_2-x_1)*100)
>>
>> # FFT of interpolated spectra
>> F_ref_xproj = fftpack.fft(f2_xr(xnew))
>>
>> Can I do this type of interpolation faster using the method you described
>> before?
>>
> I'll misinterpreted your original question and the method I suggested there
> is not applicable.
>
> To better understand your situation, few questions:
> - what you described above; it does work for you in technical sense?
> - if so, then the problem is with the execution performance?
> - what are your current timings?
> - how much you'll need to enhance them?
>
> Regards,
> eat
>
>>
>> Cheers
>> James
>>
>>
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
> -------------------------------------------------
> James McCormac
> jmccormac01 at qub.ac.uk
> Astrophysics Research Centre
> School of Mathematics & Physics
> Queens University Belfast
> University Road,
> Belfast, U.K
> BT7 1NN,
> TEL: 028 90973509
>
>
>
>
>
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20110301/5b0aea64/attachment.html>


More information about the SciPy-User mailing list