bath/data/aggregator.py

45 lines
1.0 KiB
Python

import json
import socket
import pandas as pd
import numpy as np
import sys
sys.path.append("./raspi-i2c")
import i2c2 as i2c
import matplotlib.pyplot as plt
timefrm = "%Y-%m-%d+%H:%M:%S"
def get_new_entry(setting={}):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 8888))
s.sendall(json.dumps(setting).encode())
response =json.loads(''.join(e.decode("utf-8") for e in s.recv(1024).split()[5:]))
s.close()
return response
if __name__ == '__main__':
pit = i2c.PIT()
try:
data = pd.read_csv("aggregate.csv")
except:
data = pd.DataFrame(pd.Series(get_new_entry())).T
print(data)
for i in range(100):
data = data.append(
pd.Series(get_new_entry()),
ignore_index=True)
print(i)
# whitespace would be removed when transmitted
data.systime = pd.to_datetime(data.systime, format=timefrm)
data.to_csv("aggregate.csv", date_format=timefrm, index=False)
data.plot('systime', 'pit_mon48v')
plt.savefig("aggregate.pdf")