Plot dates with year-doy-time format

Hi--I'm on the Voyager spacecraft team and would like to plot telemetry from the spacecraft by UTC earth-receive time in a format like that shown in the attached image from our ground data system (yy-doy-hh:mm or equivalent; the important part is to have day of year in the label).  I can imagine making ticks and labels to match this for a special case, but I'd like to have axes labels and ticks that scale automatically when I zoom.   Is that possible?

Thanks--Jay

Example date-time axis with yy-doy-hh:mm format

Wow, it is really great to see someone from the Voyager team here! I think even without the Igor team adding a DOY option, your request could be achieved by using manually prepared 'user ticks' and an update function which triggers whenever you change the axis range. Would it be possible to provide a simple example experiment with some data to play around with (it does not need to contain real data of course)? The main problem with this approach would be to determine a reasonable number of labelled ticks according to the available axis space. But these issues are solvable in principle, especially if you force the ticks to be an integer number of days apart.

I'm also excited to see someone from Voyager here.  It's pretty impressive that those probes are still working and that teams were able to fix the recent communications issues.

I made a first pass at implementing the function that chozo described.  It uses a window hook to update user ticks based on the current axis ranges.  I first tried this with a free axis hook, but that hook got called even when you resize the graph window (without changing axis limits), which slows things down a lot.  The window hook requires a little more work, but makes the user experience nicer. 

I didn't try to implement any fancy code for calculating auto ticks.  Right now there are three cases based on the shown time interval: if the interval is less than 2 days, the ticks are every 6 hours; if the interval is less than a week, the ticks are every day; and if the interval is longer than a week the ticks are every 2 days.  Some of the math for calculating the number of ticks might be a little off, but it generally works.  You would have to modify the code if you want nicer time intervals, but what I have should get you started.

Adding a DOY option to the axis date and time formats would be useful.  LabVIEW has an "advanced editing mode" for formatting tick labels where you can customize your date/time format, and it not only includes DOY but week of year.

Hi Chozo and KZarzana,

Thanks for the quick response!  I'm sorry I didn't respond earlier, but I've been out on travel with intermittent email access.  I'll try these functions when I get back!   

It is amazing that both spacecraft are still working.  We're still trying to figure out some things that were done 50 years ago when they were designed in order to troubleshoot issues!