XTF notes
Here are a few notes to help guide you through my XTF convertor programs. Slim pickins for now, but I plan on adding to this as I encounter the usual hangups that slow me down when trying to run my own software. Stay tuned and feel free to email me any suggestions.
Time synchronization
XTF packets have a millisecond time stamp that isn't always referenced to a meaningful absolute time (e.g ms since start of day, or ms since 1970). This means that all packets are relatively timed to millisecond precision, but the millisecond time stamp doesn't give an indication of the actual time. To time things absolutely, we need to know the time that corresponds to the 'zero' of the milliseconds time stamp. This is done through the establishment of what I call the 'basetime', it is done automatically through various methods, as outlined below. The algorithm that decides on the best method to use is sensitive to the sonar type (it must be able to distinguish between RESON and Simrad data). When the "sonar type" field in the XTF header is incorrect, you may have to "force" the packet synchronization method (done with -force_synch in the xtf conversion programs). The codes correspond to the options below.
- 0: XTF_SYNCHRO: Use the time stamp in the first XTF Bathy header to get an absolute time (to 0.01 sec resolution). The base-time is then established by subtracting the attitude millisecond time stamp of the XTF Bathy header. The RESON latency value is subtracted from this as well. All packets are then timed-absolutely by adding their millisecond time stamp to the base-time. This method is used when the Reson 81P processor has NOT been set up to take UTC time-stamps, i.e. the processor has no idea what time it is and the internal time stamps in the RESON bathymetry packets coming out of the Reson 81P have no meaningful time stamp. The packets arrive at the acquisition with a delay (in the RESON latency field) so this delay must be removed from the time-stamp applied by the acquisition system.
- 1: RESON_SYNCHRO: The RESON 81P has UTC time as an input, thus the bathymetry packets are correctly time-stamped when output from the 81P processor. In order to relatively time all the remaining packets in the XTF file, we use the attitude ms time-stamp. Thus, the base-time is constructed with the RESON UTC time-stamp minus the attitude ms time stamp. All packets are then timed by adding their ms time stamp to the base-time.
- 2: RESON_ORIENTATION_SYNCHRO: This uses the same logic as RESON_SYNCHRO, but it is a special case where the attitude ms time-stamp corresponds to ms since midnight. The base-time is considered to be 00:00:00.000 of the day specified by the RESON UTC time-stamp.
- 3: SIDESCAN_SYNCHRO: Same as XTF_SYNCHRO but doesn't subtract the RESON latency field. Also, the first sidescan telegram is used to establish the base-time.
- 4: SIMRAD_SYNCHRO: Used with Simrad sonars. The base-time is constructed with the time-stamp of the XTF Bathymetry header minus the ms time stamp in the Simrad bathymetry packet.
Last modified by J. Beaudoin, 20080110