[SciPy-User] faster interpolations (interp1d)

James McCormac jmccormac01 at qub.ac.uk
Wed Mar 2 09:34:19 EST 2011


Hi Josef,
Do you mean, create the spectra then resample it afterwards? I can have a
look at ndimage.iterpolation.

Cheers
James



On Wed, March 2, 2011 1:56 pm, josef.pktd at gmail.com wrote:
> On Tue, Mar 1, 2011 at 9:03 AM, eat <e.antero.tammi at gmail.com> wrote:
>
>> 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
>>>>
>
> Just a thought since I don't know the details:
>
>
> using fft interpolation might be faster, e.g. signal.resample
>
>>>> t = np.linspace(0,10,25) x = np.sin(t) t2 = np.linspace(0,10,50) x2 =
>>>> signal.resample(x,50)
>
> scipy.ndimage.interpolation  should also be faster, if there is something
> that does what you want.
>
> Josef
>
>
>
>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>
>>
>> _______________________________________________
>> 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
>
>





More information about the SciPy-User mailing list