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

Home » Public Forums » archive » Re: Faster way to convert a string array of dates to julian dates
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Faster way to convert a string array of dates to julian dates [message #56028 is a reply to message #55960] Tue, 25 September 2007 11:31 Go to previous message
henrygroe is currently offline  henrygroe
Messages: 30
Registered: August 2003
Member
On Sep 24, 8:10 am, henryg...@gmail.com wrote:
> On Sep 24, 7:49 am, "Ryan." <rchug...@gmail.com> wrote:
>
>
>
>> Hi All,
>
>> I want to convert an string array of dates to julian numbers in the
>> most efficient way in IDL. The only way I can come up with doing it
>> is using a FOR loop but I'm hoping that some of you could help me to
>> utilize IDL's super-duper array manipulation strengths. This is what
>> I have:
>
>> date format: YYYY-MM-DD HH:MM:SS.FFFF+TT
>> F->fractions of a second
>> T->time zone specification (e.g. -05 for Eastern Standard Time, etc.)
>
>> I don't care much about the time zone because all the dates are given
>> in UTC. It doesn't need to be included in the conversion.
>
>> Given a string array like this:> dates = ['2007-09-21 12:15:00.0000+00', '2007-09-22 23:25:15.9999+00', ...]
>
>> I can convert it using this code:
>
>> juls = DBLARR(N_ELEMENTS(dates))
>> FOR i=0, N_ELEMENTS(dates)-1 DO BEGIN
>> splitdate = STRSPLIT(dates[i], ': +-', /EXTRACT)
>> juls[i] = JULDAY(splitdate[1], splitdate[2], splitdate[0],
>> splitdate[3], splitdate[4], splitdate[5])
>> ENDFOR
>
>> This works, but would like to know a more efficient way of converting
>> it because I do this quite often.
>
>> Thanks,
>> Ryan.
>
> If the format of your input strings are never changing (which you're
> pretty much implicitly assuming with strsplit anyway), then:
> juls = julday(strmid(dates,0,4),strmid(dates,5,2),strmid(dates,
> 8,2),strmid(dates,11,2),strmid(dates,14,2),strmid(dates,17,7 ))

WHOOPS! I didn't read the IDL help entry for julday closely enough.
For some reason they do Month, Day, Year, Hour, Minute, Second.
(Which makes little sense to me. I just assumed it was Year, Month,
Day....)
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: int of pixel and surrounding pixels
Next Topic: Re: ITK and IDL interface

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

Current Time: Sun Oct 12 09:41:26 PDT 2025

Total time taken to generate the page: 1.43997 seconds