In [4]:
import requests
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
In [115]:
r = requests.get("http://glenecho.stream:8080/list").json()
In [116]:
humidity = [i for i in r if i['measurement'] == 'humidity']
absolute_humidity = [i for i in r if i['measurement'] == 'absolute_humidity']
temp = [i for i in r if i['measurement'] == 'temperature' and i['sensor'] == 'bme680']
pressure = [i for i in r if i['measurement'] == 'pressure']
air = [i for i in r if i['measurement'] == 'gas_resistance']
depth = [i for i in r if i['measurement'] == 'depth']
In [117]:
humidity_value = np.array([i['value'] for i in humidity])
humidity_time = np.array([i['timestamp'] for i in humidity])
temp = np.array([i['value'] for i in temp])
pressure = np.array([i['value'] for i in pressure])
air_value = np.array([i['value'] for i in air])
air_time = np.array([i['timestamp'] for i in air])
depth = np.array([i['value'] for i in depth])
absolute_humidity = np.array([i['value'] for i in absolute_humidity])
In [57]:
plt.scatter(absolute_humidity[500:500+50], np.log(air_value[500:500+50]))
plt.xlim([5, 14])
plt.ylim([10.5, 13.5])
Out[57]:
In [25]:
import scipy.stats
In [60]:
for i in range(40):
offset = i * 25
regress = scipy.stats.linregress(absolute_humidity[offset:offset+50], np.log(air_value[offset:offset+50]))
if (regress.rvalue**2 > 0.6):
print(offset)
print(regress.slope, regress.intercept, regress.rvalue**2)
In [63]:
scipy.stats.linregress(absolute_humidity[:600], np.log(air_value[:600]))
Out[63]:
In [105]:
plt.plot(np.log(air_value[:600]) - (humidity_value[:600] * -0.06568911456870866 + 17.20480030645947))
plt.plot(np.log(air_value[:600]) - (humidity_value[:600] * -0.04557760735953077 + 15.977729131340379))
plt.plot(np.log(air_value[:600]) - 13)
Out[105]:
In [104]:
plt.plot(np.log(air_value[:600]))
plt.plot(np.log(air_value[:600]) - (humidity_value[:600] * -0.06568911456870866 + 17.20480030645947))
plt.plot(np.log(air_value[:600]) - (humidity_value[:600] * -0.04557760735953077 + 15.977729131340379))
Out[104]:
In [40]:
import pandas as pd
In [109]:
#plt.plot(np.log(air_value[:600]) - (absolute_humidity[:600] * -0.5276719332956944 + 16.086657918718224))
#plt.plot(np.log(air_value[:600]) - (absolute_humidity[:600] * -0.21747856090248932 + 13.652655460958453))
plt.plot(np.log(air_value[:600]) - 13)
Out[109]:
In [49]:
air_time[600]
Out[49]:
In [50]:
humidity_time[600]
Out[50]:
In [72]:
df = pd.DataFrame([i for i in r if i['measurement'] == 'max_volume'])
In [74]:
df['time'] = pd.to_datetime(df['timestamp'])
In [76]:
df.index = df['time']
In [99]:
plt.plot(df.groupby((df.index.hour + 17) % 24).median()['value'])
Out[99]:
In [95]:
plt.plot(df['time'],scipy.signal.medfilt(df['value'], 17))
Out[95]:
In [119]:
plt.plot(depth[:100])
Out[119]:
In [ ]: