comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: IDL QUESTIONS (INTERPOLATION)
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: IDL QUESTIONS (INTERPOLATION) [message #78359] Mon, 21 November 2011 11:00 Go to next message
zolile mtumela is currently offline  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 Go to previous messageGo to next message
zolile mtumela is currently offline  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 Go to previous messageGo to next message
David Fanning is currently offline  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 Go to previous messageGo to next message
Jeremy Bailin is currently offline  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 Go to previous message
David Fanning is currently offline  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.")
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: unicode conversion
Next Topic: Re: IDLDoc Error

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Oct 09 07:06:08 PDT 2025

Total time taken to generate the page: 0.96294 seconds