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 #55944] Tue, 25 September 2007 07:09 Go to previous message
Pedro.Rodriguez.Pascu is currently offline  Pedro.Rodriguez.Pascu
Messages: 3
Registered: September 2007
Junior Member
On 24 sep, 14:49, "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.

Hello,

you may want to explore the possibilities of c() format.
Unfortunately, as far as I know, it cannot deal with time zones yet.

The following lines would do the job avoiding FOR loops:

fmt='(C(CYI4,1X,CMOI2,1X,CDI2,1X,CHI2,1X,CMI2,1X,CSF7.4))'
juls=DBLARR(N_ELEMENTS(dates))
READS,dates,juls,FORMAT=fmt
tz=LONG(STRMID(dates,24))
juls=juls-tz/24.


Pedro
[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: Sat Oct 11 07:11:00 PDT 2025

Total time taken to generate the page: 0.16281 seconds