summaryrefslogtreecommitdiffstats
path: root/docker/storperf-master/storperf/utilities/data_treatment.py
blob: 2368fd9c8416ca14a70a04156a11b06586342a48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
##############################################################################
# Copyright (c) 2016 CENGN and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################


def data_treatment(data_series):
    """
    This function aims at performing any necessary pre treatment on the
    data_series passed to the steady_state function before being passed
    under to the different math utilities (slope, range and average)
    so the data can match the requirements of each algorithm.
    The function returns a dictionary composed of three values that can be
    accessed with the following keys : 'slope_data', 'range_data' and
    'average_data'.
    The data_series is currently assumed to follow the pattern :
    [[x1,y1], [x2,y2], ..., [xm,ym]]. If this pattern were to change, or
    the input data pattern of one of the math module, this data_treatment
    function should be the only part of the Steady State detection module
    that would need to be modified too.
    """

    x_values = []
    y_values = []
    for l in data_series:
        x_values.append(l[0])
        y_values.append(l[1])

    treated_data = {
        'slope_data': data_series,  # No treatment necessary so far
        'range_data': y_values,  # The y_values only
        'average_data': y_values
    }

    return treated_data