Skip to content

v2.4.0

Latest
Compare
Choose a tag to compare
@bgreer101 bgreer101 released this 25 Oct 15:07

Added

  • New recommended data writing functions have been added AtriumSDK.write_segment, AtriumSDK.write_segments, AtriumSDK.write_time_value_pairs. These functions replace write_data_easy and write_data (although those functions will remain to support older code). These functions provide a simpler interface and write_segment(s) is designed to work directly with continuous strips of data which are found in many waveform storage formats, archives and streaming message formats.
  • A new buffer context manager AtriumSDK.write_buffer has been added for writing to AtriumDB, all writes with write_segment(s) and write_time_value_pairs within the buffers context will collect and combine the individual pieces of data and flush them to the dataset when they hit an efficient threshold, are manually flushed or exits the context so that the dataset can be built optimally without the need for external logic from the user.
  • You can now pass in your own custom FileHandler subclass so that AtriumDB can continue to work on otherwise not-supported file systems.
  • MacOS is still not supported by AtriumDB, but a helpful Error now alerts users attemping to run AtriumDB on a Mac.
  • A new function called AtriumSDK.load_device which replaces passing in the block_info param in get_data, it caches the file location of waveform data in RAM which then dramatically improves the performance of small data queries. Highly recommended when taking on large computation projects. After calling AtriumSDK.load_device the data queried will not reflect any new data added after AtriumSDK.load_device was called until it is called again.
  • A new param in AtriumSDK.get_data, return_nan_filled changes the return type to a continuous array of values from start_time_n to end_time_n with np.nan values filling in any gaps in data.
  • The Iterator is now powered by the Nan Filled Gap C function, which simplifies and speeds up the sorting/filling of window signals dictionaries.
  • Dramatically decreased the overhead of starting up a DatasetIterator for a large dataset by querying all relevant data at once and then organizing that information in RAM.

Fixed

  • All OS based file functions have been moved back into the FileHandler class so that those functions can be abstracted to other storage types in the future.
  • Gap based time format (time type 2) sorting and merging is now written with a much simpler and robust strategy.
  • Block merging now correctly handles a change in time/value type for a given measure-device, issuing a warning when types are mixed instead of throwing an error.

Removed

  • AtriumSDK.write_data_easy, AtriumSDK.write_data are no longer recommended for writing data to a dataset, see AtriumSDK.write_segment, AtriumSDK.write_segments, AtriumSDK.write_time_value_pairs in the Reference API and the Quick Start / Tutorial in the docs.