The System.Data.TimeSeries unit provides a high-performance engine for storing and querying time-indexed numerical data. It is optimized for scenarios like sensor logging, financial data, or performance monitoring.
uses System.Data.TimeSeries;
var ts := TimeSeries.Create;
// Add a sequence with a 3-second resolution
ts.AddSequence('cpu_load', 3);
// Store some samples
ts.StoreSample('cpu_load', 1, 10.5);
ts.StoreSample('cpu_load', 4, 15.0);
ts.StoreSample('cpu_load', 7, 12.2);
PrintLn('Stored samples: ' + ts.SequenceCount.ToString); Stored samples: 1
You can extract data from a sequence into standard arrays for processing or visualization.
uses System.Data.TimeSeries;
var ts := TimeSeries.Create;
ts.AddSequence('temp', 1);
ts.StoreSample('temp', 10, 22.5);
ts.StoreSample('temp', 11, 23.0);
var times : array of Integer;
var values : array of Float;
// Extract samples from time 0 to 20
ts.ExtractSamples('temp', 0, 20, times, values, [tseoIgnoreNulls]);
PrintLn('Found ' + times.Length.ToString + ' samples'); Found 2 samples
The ExtractSamples method supports options like tseoIgnoreNulls to filter out gaps in the data where no samples were recorded.