Export: Time Stamps

Problem

The EPICS time stamps provide accuracy up to the nanosecond level and the ChannelArchiver saves those stamps without loss. The clocks of multiple I/O controllers can be synchronized to a high degree, so time stamps remain comparable even if the channels originate from different machines.
A problem arises when you compare different channels. The time stamps might differ slightly because a single CPU cannot scan several channels exactly at once. In addition, scan tasks on different machines are not synchronized, you might also want to compare channels that were scanned at different rates or were archived on change ('monitored').
The net result is that for a given exact point in time the archiver will seldom find more than one value. When exporting in a spreadsheet format, '#N/A' is used to indicate this:

Time A B
3/22/2000 17:02:28.700986000 0.0718241 #N/A
3/22/2000 17:02:28.701046000 #N/A -0.0860064
3/22/2000 17:02:37.400964000 0.0543581 #N/A
3/22/2000 17:02:37.510961000 #N/A -0.111776
...    
In the example, the time stamps of channels A and B are obviously "close", but since they are still different and cannot simply be put on a single line in a spreadsheet format.
You can still plot this data, even with interpolated lines, but calculations like "A-B" will always yield '#N/A' for the example above since either A or B is undefined.

Filling

When the "Fill" option is enabled, the previous value of a channel will be repeated, filling what used to end up as "#N/A" in the original data:
Time A B
3/22/2000 17:02:28.700986000 0.0718241 #N/A
3/22/2000 17:02:28.701046000 0.0718241 -0.0860064
3/22/2000 17:02:37.400964000 0.0543581 -0.0860064
3/22/2000 17:02:37.510961000 0.0543581 -0.111776
3/22/2000 17:02:39.410965000 0.139948 -0.111776
...    
The remaining '#N/A' entries are caused by special conditions, e.g. a disconnected channel. An initial undefined value appears because the filling mechanism starts only after the channel has a valid value.
To remind you that these time stamps are not the exact ones from the archive, a comment is added to the header of the exported data. (A similar remark is added for the following, time-stamp-changing operations)

Linear Interpolation

With linear interpolation, time stamps will be chosen with a fixed period as specified in the "Interpolate" field. The values are then interpolated from the raw values:
Time A B
3/22/2000 17:02:28.700986000 0.0718241 #N/A
3/22/2000 17:02:28.701046000 #N/A -0.0860064
3/22/2000 17:02:30.000000000 0.0692162 -0.089806
3/22/2000 17:02:32.000000000 0.065201 -0.0956562
3/22/2000 17:02:34.000000000 0.0611858 -0.101506
3/22/2000 17:02:36.000000000 0.0571706 -0.107357
Again some undefined values remain initially and whenever special conditions don't allow interpolation.