Data synchronisation ==================== Recorded data needs to be synchronized to link them before further processings. The [TimeStampedBuffer](../../argaze.md/#argaze.DataStructures.TimeStampedBuffer) class provides various methods to help in such task. ## Pop last before ![Pop last before](../../img/pop_last_before.png) The code below shows how to use [pop_last_before](../../argaze.md/#argaze.DataStructures.TimeStampedBuffer.pop_last_before) method in order to synchronise two timestamped data buffers with different timestamps: ``` python from argaze import DataStructures # Assuming A_data_record and B_data_record are TimeStampedBuffer instances with different timestamps for A_ts, A_data in A_data_record.items(): try: # Get nearest B data before current A data and remove all B data before (including the returned one) B_ts, B_data = B_data_record.pop_last_before(A_ts) # No data stored before A_ts timestamp except KeyError: pass ``` ## Pop last until ![Pop last until](../../img/pop_last_until.png) The code below shows how to use [pop_last_until](../../argaze.md/#argaze.DataStructures.TimeStampedBuffer.pop_last_until) method in order to synchronise two timestamped data buffers with different timestamps: ``` python from argaze import DataStructures # Assuming A_data_record and B_data_record are TimeStampedBuffer instances with different timestamps for A_ts, A_data in A_data_record.items(): try: # Get nearest B data after current A data and remove all B data before B_ts, B_data = B_data_record.pop_last_until(A_ts) # No data stored until A_ts timestamp except KeyError: pass ``` ## Get last before ![Get last before](../../img/get_last_before.png) The code below shows how to use [get_last_before](../../argaze.md/#argaze.DataStructures.TimeStampedBuffer.get_last_before) method in order to synchronise two timestamped data buffers with different timestamps: ``` python from argaze import DataStructures # Assuming A_data_record and B_data_record are TimeStampedBuffer instances with different timestamps for A_ts, A_data in A_data_record.items(): try: # Get nearest B data before current A data B_ts, B_data = B_data_record.get_last_before(A_ts) # No data stored before A_ts timestamp except KeyError: pass ``` ## Get last until ![Get last until](../../img/get_last_until.png) The code below shows how to use [get_last_until](../../argaze.md/#argaze.DataStructures.TimeStampedBuffer.get_last_until) method in order to synchronise two timestamped data buffers with different timestamps: ``` python from argaze import DataStructures # Assuming A_data_record and B_data_record are TimeStampedBuffer instances with different timestamps for A_ts, A_data in A_data_record.items(): try: # Get nearest B data after current A data B_ts, B_data = B_data_record.get_last_until(A_ts) # No data stored until A_ts timestamp except KeyError: pass ```