Re: IDL QUESTIONS (INTERPOLATION) [message #78359] |
Mon, 21 November 2011 11:00  |
zolile mtumela
Messages: 50 Registered: September 2011
|
Member |
|
|
On Nov 21, 7:54 pm, David Fanning <n...@dfanning.com> wrote:
> zolile mtumela writes:
>
>> Hi all,
>> I have interpolated some data, which I think I did well, the data
>> looks like this
>> time (s) velocity
>> 24785555 -8.90000
>> ...
>> I want to create time axis in hours, I need help on time convetion, I
>> wrote a program like this
>> File = Dialog_pickfile(Filter = '*.txt')
>
>> ;read the data
>> rows = File_lines(file)
>> data = Fltarr(2,rows)
>> openr,Lun,file,/Get_lun
>> ReadF,lun, data
>> b =floor(min(data[0,*])); start time
>> e = ceil(max(data[0,*])); end time
>> x = Scale_vector(Findgen(e-b+1),b,e)
>> y = interpol(data[1,*], data[0,*],x); interpolating data
>> ;draw the plots
>> plot,data[0,*],data[1,*],linestyle=2 ; for original data
>> oplot,x,y,color=120 ; newly interpolated velocity data
>
>> end
>> I want to covert that time in two hour in the plot.
>
> Maybe you want something like this:
>
> rows = File_lines(file)
> data = Dblarr(2,rows)
> openr,Lun,file,/Get_lun
> ReadF,lun, data
> data[0,*] = data[0,*] - Min(data[0,*]) ; Elasped time
> b =floor(min(data[0,*])); start time
> e = ceil(max(data[0,*])); end time
> x = Scale_vector(Findgen(e-b+1),b,e)
> y = interpol(data[1,*], data[0,*],x); interpolating data
> ;draw the plots
> cgplot,data[0,*]/3600.,data[1,*], xtitle='Hours' ; for original data
> cgplots,x/3600.,y,color='red', PSYM=3 ; newly interpolated
> velocity data
>
> end
>
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming:http://www.idlcoyote.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")- Hide quoted text -
>
> - Show quoted text -
cgplot,data[0,*]/3600.,data[1,*], xtitle='Hours' ; for original data
cgplots,x/3600.,y,color='red', PSYM=3 ; newly interpolated
velocity data
end
Thank so much David, for time axis it looks ok.
I am bit confused why at the y-axis(velocity), my program plot big
values which are not in the data. I got big values like(500)
After interpolation, Is it necessary to resample data? Are any better
way to use interpolation in this kind of data.
Thank so much for ur tireless support and help
Zolile
|
|
|
Re: IDL QUESTIONS (INTERPOLATION) [message #78360 is a reply to message #78359] |
Mon, 21 November 2011 10:50   |
zolile mtumela
Messages: 50 Registered: September 2011
|
Member |
|
|
On Nov 21, 7:54 pm, David Fanning <n...@dfanning.com> wrote:
> zolile mtumela writes:
>
>> Hi all,
>> I have interpolated some data, which I think I did well, the data
>> looks like this
>> time (s) velocity
>> 24785555 -8.90000
>> ...
>> I want to create time axis in hours, I need help on time convetion, I
>> wrote a program like this
>> File = Dialog_pickfile(Filter = '*.txt')
>
>> ;read the data
>> rows = File_lines(file)
>> data = Fltarr(2,rows)
>> openr,Lun,file,/Get_lun
>> ReadF,lun, data
>> b =floor(min(data[0,*])); start time
>> e = ceil(max(data[0,*])); end time
>> x = Scale_vector(Findgen(e-b+1),b,e)
>> y = interpol(data[1,*], data[0,*],x); interpolating data
>> ;draw the plots
>> plot,data[0,*],data[1,*],linestyle=2 ; for original data
>> oplot,x,y,color=120 ; newly interpolated velocity data
>
>> end
>> I want to covert that time in two hour in the plot.
>
> Maybe you want something like this:
>
> rows = File_lines(file)
> data = Dblarr(2,rows)
> openr,Lun,file,/Get_lun
> ReadF,lun, data
> data[0,*] = data[0,*] - Min(data[0,*]) ; Elasped time
> b =floor(min(data[0,*])); start time
> e = ceil(max(data[0,*])); end time
> x = Scale_vector(Findgen(e-b+1),b,e)
> y = interpol(data[1,*], data[0,*],x); interpolating data
> ;draw the plots
> cgplot,data[0,*]/3600.,data[1,*], xtitle='Hours' ; for original data
> cgplots,x/3600.,y,color='red', PSYM=3 ; newly interpolated
> velocity data
>
> end
>
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming:http://www.idlcoyote.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")- Hide quoted text -
>
> - Show quoted text -
Thank you David it looks ok for time.
Based to data the y-axis(velocity axis), It plotted big values for y-
axis but in my data there are no big values such as 500.
I am bit confused on resampling data, Is it necessary to resample data
after interpolation.
In my program is any better way to use interpolation
Thank so much for ur tireless support and help
Many thanks
Zolile
|
|
|
Re: IDL QUESTIONS (INTERPOLATION) [message #78362 is a reply to message #78360] |
Mon, 21 November 2011 09:54   |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
zolile mtumela writes:
>
> Hi all,
> I have interpolated some data, which I think I did well, the data
> looks like this
> time (s) velocity
> 24785555 -8.90000
> ...
> I want to create time axis in hours, I need help on time convetion, I
> wrote a program like this
> File = Dialog_pickfile(Filter = '*.txt')
>
> ;read the data
> rows = File_lines(file)
> data = Fltarr(2,rows)
> openr,Lun,file,/Get_lun
> ReadF,lun, data
> b =floor(min(data[0,*])); start time
> e = ceil(max(data[0,*])); end time
> x = Scale_vector(Findgen(e-b+1),b,e)
> y = interpol(data[1,*], data[0,*],x); interpolating data
> ;draw the plots
> plot,data[0,*],data[1,*],linestyle=2 ; for original data
> oplot,x,y,color=120 ; newly interpolated velocity data
>
> end
> I want to covert that time in two hour in the plot.
Maybe you want something like this:
rows = File_lines(file)
data = Dblarr(2,rows)
openr,Lun,file,/Get_lun
ReadF,lun, data
data[0,*] = data[0,*] - Min(data[0,*]) ; Elasped time
b =floor(min(data[0,*])); start time
e = ceil(max(data[0,*])); end time
x = Scale_vector(Findgen(e-b+1),b,e)
y = interpol(data[1,*], data[0,*],x); interpolating data
;draw the plots
cgplot,data[0,*]/3600.,data[1,*], xtitle='Hours' ; for original data
cgplots,x/3600.,y,color='red', PSYM=3 ; newly interpolated
velocity data
end
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|
Re: IDL QUESTIONS (INTERPOLATION) [message #78364 is a reply to message #78362] |
Mon, 21 November 2011 08:13   |
Jeremy Bailin
Messages: 618 Registered: April 2008
|
Senior Member |
|
|
On 11/21/11 8:59 AM, zolile mtumela wrote:
> Hi all,
> I have interpolated some data, which I think I did well, the data
> looks like this
> time (s) velocity
> 24785555 -8.90000
> 24785675 -6.90000
> 24785795 -5.00000
> 24785915 -15.4000
> 24786035 -1.80000
> 24786155 21.5000
> 24786275 -2.70000
> 24786395 1326.90
> 24786515 0.100000
> 24786635 69.6000
> 24786755 -624.900
> 24786875 263.700
> 24786995 30.3000
> 24787115 157.000
> 24787235 488.300
> 24787355 25.6000
> 24787475 40.6000
> 24787595 32.5000
> 24787715 21.2000
> 24787835 13.6000
> 24787955 92.4000
> 24788075 37.0000
> 24788195 7.50000
> 24788315 4.80000
> 24788435 8.30000
> 24788555 43.4000
> 24788675 26.2000
> 24788795 36.7000
> 24788915 17.6000
> 24789035 -39.2000
> 24789155 -76.5000
> 24789275 -31.7000
> 24789395 -31.3000
> 24789515 -20.0000
> 24789635 1.10000
> I want to create time axis in hours, I need help on time convetion, I
> wrote a program like this
> File = Dialog_pickfile(Filter = '*.txt')
>
> ;read the data
> rows = File_lines(file)
> data = Fltarr(2,rows)
> openr,Lun,file,/Get_lun
> ReadF,lun, data
> b =floor(min(data[0,*])); start time
> e = ceil(max(data[0,*])); end time
> x = Scale_vector(Findgen(e-b+1),b,e)
> y = interpol(data[1,*], data[0,*],x); interpolating data
> ;draw the plots
> plot,data[0,*],data[1,*],linestyle=2 ; for original data
> oplot,x,y,color=120 ; newly interpolated velocity data
>
> end
> I want to covert that time in two hour in the plot.
>
> Thank you in advance for ur time
> Zolile
>
>
>
>
Divide by 3600.0?
-Jeremy.
|
|
|
Re: IDL QUESTIONS (INTERPOLATION) [message #78508 is a reply to message #78359] |
Mon, 21 November 2011 12:15  |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
zolile mtumela writes:
> Thank so much David, for time axis it looks ok.
> I am bit confused why at the y-axis(velocity), my program plot big
> values which are not in the data. I got big values like(500)
> After interpolation, Is it necessary to resample data? Are any better
> way to use interpolation in this kind of data.
I don't know. There were big values in the data you
sent us. I don't think it is necessary to resample
the data. It seems to track the real data exactly. :-)
> Thank so much for ur tireless support and help.
Yes, I was just having lunch with one of my
sons, encouraging him to not follow in his
father's footsteps. Rather, to find a job
that he loves that actually pays a living
wage. :-)
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|