[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r14388 - gauger
From: |
gnunet |
Subject: |
[GNUnet-SVN] r14388 - gauger |
Date: |
Fri, 11 Feb 2011 04:30:22 +0100 |
Author: bartpolot
Date: 2011-02-11 04:30:22 +0100 (Fri, 11 Feb 2011)
New Revision: 14388
Added:
gauger/plot.gp
gauger/plot.sh
Modified:
gauger/gauger.py
Log:
Added smart data processing, avg and stddev generation, changed plot procedure
Modified: gauger/gauger.py
===================================================================
--- gauger/gauger.py 2011-02-10 22:40:09 UTC (rev 14387)
+++ gauger/gauger.py 2011-02-11 03:30:22 UTC (rev 14388)
@@ -24,15 +24,15 @@
"""
from socket import socket, AF_INET, SOCK_STREAM
import os
+import math
+
+# updateplot
def updateplot(host, data):
- filename = host + '/' + data
- tmpconf = open("tmpgnuplotconfig", "w")
- tmpconf.write("set terminal png; set output \"" + filename + ".png\"; plot
\"" + filename + "\" with line title\
- \"" + host + ", " + data + "\" lw 3 lt rgb \"green\"")
- tmpconf.close()
- os.system("gnuplot tmpgnuplotconfig")
-
+ """ Regenerates the plot for a given host / counter combination """
+ os.system("./plot.sh %s %s" % (host, data))
+
+
def gethostfromlogin(user, password):
try:
file = open("gauger.conf", "r")
@@ -49,10 +49,50 @@
file.close()
return ''
+
def add_data_to_file(datafile, revision, result):
- datafile.seek(0, 2)
- datafile.write(revision + ' ' + result + "\n")
+ datafile.seek(0, 0)
+ l = {}
+ for line in datafile.readlines():
+ try:
+ rev, val = line.split()
+ rev = int(rev)
+ val = float(val)
+ except ValueError:
+ continue
+ try:
+ l[rev].append(val)
+ except KeyError:
+ l[rev] = [val]
+ try:
+ l[int(revision)].append(float(result))
+ except KeyError:
+ l[int(revision)] = [float(result)]
+ except ValueError: # Allows for add_data_to_file(f, "", "")
+ pass # in order to reprocess the data
+ datafile.seek(0, 0)
+ processedfile = open(datafile.name + ".dat", "w")
+
+ k = l.keys()
+ k.sort()
+
+ for rev in k:
+ avg = 0.0
+ sum = 0.0
+ n = 0
+ for val in l[rev]:
+ avg += val
+ n += 1
+ datafile.write("%d %f\n" % (rev, val))
+ avg /= n
+ for val in l[rev]:
+ sum += (avg - val)**2
+ stddev = math.sqrt(sum / n)
+ processedfile.write("%s %f %f\n" % (rev, avg, stddev))
+ processedfile.close()
+
+
s1 = socket(AF_INET, SOCK_STREAM)
s1.bind(("0.0.0.0", 10111))
s1.listen(5)
@@ -77,14 +117,8 @@
if (not os.access(hostname, os.W_OK) or not os.path.isdir(hostname)):
print "Not a directory or not writable: ", hostname
continue
- #TODO:
- # - ~sort
- # - add
- # - calculate avg, stddev
- # - write to tmpfile
- # - plot tmpfile
- datafile = open(hostname + '/' + dataname, "a+")
+
+ datafile = open(hostname + '/' + dataname, "r+")
add_data_to_file(datafile, revision, result);
- #create_avg_file(datafile)
datafile.close()
updateplot(hostname, dataname)
Added: gauger/plot.gp
===================================================================
--- gauger/plot.gp (rev 0)
+++ gauger/plot.gp 2011-02-11 03:30:22 UTC (rev 14388)
@@ -0,0 +1,6 @@
+set terminal png;
+set output "FILENAME.png";
+set grid;
+plot \
+"FILENAME.dat" with line title "FILENAME" lw 3 lt rgb "#D3D3D3",\
+"FILENAME.dat" with yerrorbars notitle lw 1 lt rgb "#404040"
Added: gauger/plot.sh
===================================================================
--- gauger/plot.sh (rev 0)
+++ gauger/plot.sh 2011-02-11 03:30:22 UTC (rev 14388)
@@ -0,0 +1,4 @@
+#!/bin/sh
+cat plot.gp | \
+ sed -e "s/FILENAME/$1\/$2/g" | \
+ gnuplot
\ No newline at end of file
Property changes on: gauger/plot.sh
___________________________________________________________________
Added: svn:executable
+ *
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14388 - gauger,
gnunet <=