INTERPOL question [message #15752] |
Wed, 09 June 1999 00:00 |
akk
Messages: 10 Registered: July 1998
|
Junior Member |
|
|
Hi All,
I am using IDL Version 5.2 (SUNOS Sparc) and am having some trouble
using the INTERPOL function in idl. I have several pairs of arrays of
data. One of the Array pairs is an array of time and the other array
holds a measurememt (i.e. data point) at the corresponding time. I have about five
such array pairs
(Pair1Time ; Pair1Data, Pair2Time; Pair2Data...Pair5Time ; Pair5Data) and
would like to add up the Data arrays (i.e. Pair1Data + Pair2Data +...+Pair5Data),
and Plot a graph of TotalDataData vs time.
However these arrays are not all the same size. The Pair1 arrays have 2000
elements and the number of elements in the other array pairs vary from
1800 to 147. Thus I need to use the INTERPOL function to interpolate some
of these arrays inorder to produce arrays with equal number of elements.
The Pair1 arrays (Pair1Time;Pair1Data) have the most data and thus I have
used them as the abscissa values for the result.
I used the following command to interplolate the arrays:
Pair2DataNew = Interpol (Pair2Time, Pair2Data, Pair1Time)
Pair3DataNew = Interpol (Pair3Time, Pair3Data, Pair1Time)
Pair4DataNew = Interpol (Pair4Time, Pair4Data, Pair1Time)
Pair5DataNew = Interpol (Pair5Time, Pair5Data, Pair1Time)
Sum = Pair1Data + Pair2DataNew + Pair3DataNew + Pair4DataNew + Pair5DataNew
Plot, Pair1Time vs Sum
However the above calls to interpol are often returning arrays with
negative values, and even arrays with values of Infinity.In addition the
values in the resulting arrays
Pair1DataNew...Pair5DataNew) are usually completely different than in the
orginal data arrays. All of the values in my original arrays are positive.
The Pair1Time & Pair1Data have 2000 elements and the Pair5Data array has
only 147 elements with values around .00066, but all the slots in
Pair5DataNew are assigned a value of Infinity.
I do not understand why the above calls to INTERPOL are returning arrays
with negative values, and arrays with values of Infinity. In addition I
do not unerstand why the returned arrays,from INTERPOL, often have
totally diffeent values than their original arrays
(i.e. values in Pair3Data differ greatly from Pair3DataNew). I thought by
using the INTERPOL function one could essentially produce/interpolate more
values similar to the existing values,
thus resulting in more data without altering the original data.
I understand there are 2 different calling sequences for INTERPOL, but I
do not understand the difference between a REGULAR and an IRREGULAR grid?
For regular grids: Result = INTERPOL(V, N);
For irregular grids: Result = INTERPOL(V, X, U);
Could someone help me out with my questions?
Thanks in Advance
- Anil (please rely to my email address)
-------------
|
|
|