toMirSeries

Converts MeasurementSeries.Rows to Mir Series.

?
Series!(T*, Contiguous, [2], D*)
toMirSeries
(
T = DateTime
D = double
)
(
MeasurementSeries.Rows rows
,
const(string)[] columns = null
)

Parameters

T

Time type. Default time type is DateTime. Supported types are SysTime, DateTime, and Date.

D

Data type. Default data type is double.

rows

MeasurementSeries rows

columns
Type: const(string)[]

List of columns (optional). The "time" colummn is ignored.

Return Value

Type: Series!(T*, Contiguous, [2], D*)

2D Mir Series.

Examples

1 import mir.series;
2 import std.datetime: DateTime;
3 
4 auto influxSeries = MeasurementSeries("coolness",
5     ["time", "foo", "bar"],
6     [
7         ["2015-06-11T20:46:02Z", "1.0", "2.0"],
8         ["2013-02-09T12:34:56Z", "3.0", "4.0"],
9     ]);
10 
11 auto series = influxSeries.rows.toMirSeries;
12 
13 // sort data if required
14 {
15     import mir.ndslice.algorithm: all;
16     import mir.ndslice.allocation: uninitSlice;
17     import mir.ndslice.topology: pairwise;
18 
19     if (!series.time.pairwise!"a <= b".all)
20     {
21         series.sort(
22             uninitSlice!size_t(series.length), // index buffer
23             uninitSlice!double(series.length)); // data buffer
24     }
25 }
26 
27 assert(series.time == [
28     DateTime(2013,  2,  9, 12, 34, 56),
29     DateTime(2015,  6, 11, 20, 46,  2)]);
30 
31 assert(series.data == [
32     [3.0, 4.0],
33     [1.0, 2.0]]);

Meta