Exemplo n.º 1
0
def glass_ratio(statistics_subdir, filename, vlc_evaluation_w,
                vlc_evaluation_wo):
    data = "### Without glass\n"
    data += "throughput\n"
    data += utils.statistics.get_summary(
        vlc_evaluation_wo.get_throughput()) + "\n"
    data += "---\n"
    data += "error\n"
    data += utils.statistics.get_summary(vlc_evaluation_wo.get_error()) + "\n"
    data += "---\n"
    data += "### With glass\n"
    data += "throughput\n"
    data += utils.statistics.get_summary(
        vlc_evaluation_w.get_throughput()) + "\n"
    data += "---\n"
    data += "error\n"
    data += utils.statistics.get_summary(vlc_evaluation_w.get_error()) + "\n"
    data += "---\n"
    data += "### Ratio\n"
    data += "throughput: "
    data += str(
        ratio(vlc_evaluation_wo.get_throughput(),
              vlc_evaluation_w.get_throughput())) + "\n"
    data += "error: "
    data += str(
        ratio(vlc_evaluation_wo.get_error(), vlc_evaluation_w.get_error()))
    misc.log(data, statistics_subdir, filename)
Exemplo n.º 2
0
def print_statistics_ambient_light(data_directory, ambient_light):
    for led, ambient_light_intensities in ambient_light.items():
        output = ""
        for ambient_light, values in ambient_light_intensities.items():
            output += ambient_light + "\n"
            output += statistics.get_summary(values) + "\n"
            output += "------------------------------\n"
        filename = "ambient_light_" + led
        misc.log(output, data_directory, filename)
Exemplo n.º 3
0
def print_statistics(statistics_subdir, filename, data):
    throughput = list()
    error = list()
    for performance in data.values():
        throughput.extend(performance.get_throughput())
        error.extend(performance.get_error())
    data = "### Throughput" + "\n" + \
    statistics.get_summary(throughput) + "\n" + \
    "------------------------\n" + \
    "### Error"  + "\n" + \
    statistics.get_summary(error)
    misc.log(data, statistics_subdir, filename)
Exemplo n.º 4
0
def plot_evaluation_rounds(result_directory,
                           statistics_subdir,
                           min_latency,
                           max_latency,
                           stop_keyword="light_intensity"):
    latency = dict()
    for f in os.listdir(result_directory):
        if stop_keyword not in f:
            path = result_directory + f
            vlc_evaluation = DillSerializer(path).deserialize()
            latency[f] = vlc_evaluation.get_latency()
            data = latency_statistics(f, vlc_evaluation.get_latency())
            misc.log(data, statistics_subdir, f)
    latency_plot(statistics_subdir, latency, min_latency, max_latency)
Exemplo n.º 5
0
def print_ratio(subdir, filename, data):
    low = data[0].get_data_series()
    mid = data[1].get_data_series()
    high = data[2].get_data_series()
    
    def get_statistic(data_series):
        return round(numpy.mean(data_series), 2), round(numpy.std(data_series), 2)
    
    def get_statistic_line(mean, std):
        return "mean: " + str(mean) + ", std: " + str(std)
    
    output = "low\n"
    mean, std = get_statistic(low)
    output += get_statistic_line(mean, std) + "\n"
    output += "mid\n"
    mean, std = get_statistic(mid)
    output += get_statistic_line(mean, std) + "\n" 
    output += "high\n"
    mean, std = get_statistic(high)
    output += get_statistic_line(mean, std) + "\n"
    misc.log(output, subdir, filename)
Exemplo n.º 6
0
def orientation_performance(result_directory, statistics_subdir):
    min_throughput = -50
    min_error = -0.008
    max_throughput, max_error = parameters.get_max_throughput_error(
        result_directory)
    for f in os.listdir(result_directory):
        path = result_directory + f
        vlc_evaluation = DillSerializer(path).deserialize()
        parameters.throughput_error_plot(
            statistics_subdir,
            f,
            vlc_evaluation.get_throughput(),
            vlc_evaluation.get_error(),
            vlc_evaluation.duration_data,  #vlc_evaluation.get_data_period(),
            min_throughput,
            max_throughput,
            min_error,
            max_error)
        data = parameters.throughput_error_statistics(
            f, vlc_evaluation.get_throughput(), vlc_evaluation.get_error())
        misc.log(data, statistics_subdir, f)
Exemplo n.º 7
0
def main():
    data_directory = "vlc_distance/"
    result_directory = files.dir_results + data_directory
    statistics_subdir = data_directory
    distance_directed_led = dict()
    distance_pervasive_led = dict()
    
    for f in os.listdir(result_directory):
        if "light_intensity" in f:
            path = result_directory + f
            light_intensity = [item["intensity"] for item in misc.read_json(open(path))]
            data = statistics.get_summary(light_intensity)            
            misc.log(data, statistics_subdir, f)
        elif "morse" in f:
            distance = get_distance(f)
            path = result_directory + f
            vlc_evaluation = DillSerializer(path).deserialize()
            if "directed_led" in f:
                distance_directed_led[distance] = vlc_evaluation
            elif "pervasive_led" in f:
                distance_pervasive_led[distance] = vlc_evaluation
    
    min_throughput = -50
    min_error = -0.008
    
    max_throughput_pervasive, max_error_pervasive = find_max_throughput_error(distance_pervasive_led)
    max_throughput_directed, max_error_directed = find_max_throughput_error(distance_directed_led)
    max_throughput = max(max_throughput_pervasive, max_throughput_directed)
    max_error = max(max_error_pervasive, max_error_directed)
    
    filename = "directed_led"
    throughput_error_plot(statistics_subdir, filename, distance_directed_led, 4.30,
                          min_throughput, max_throughput, min_error, max_error)
    print_statistics(statistics_subdir, filename, distance_directed_led)
    
    filename = "pervasive_led"
    throughput_error_plot(statistics_subdir, filename, distance_pervasive_led, 1.60,
                          min_throughput, max_throughput, min_error, max_error)
    print_statistics(statistics_subdir, filename, distance_pervasive_led)