forked from snychka/python-decoding-sensor-data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsensor_app.py
More file actions
73 lines (65 loc) · 3.44 KB
/
Copy pathsensor_app.py
File metadata and controls
73 lines (65 loc) · 3.44 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Runner script for all modules
from datetime import date, datetime
from statistics import mean
from load_data import load_sensor_data
from house_info import HouseInfo
from temperature_info import TemperatureData
from humidity_info import HumidityData
from particle_count_info import ParticleData
from energy_info import EnergyData
##############################
# Do not remove these two lines
# They are needed to validate your unittest
data = []
print("Sensor Data App")
##############################
# Module 1 code here:
data = load_sensor_data()
house_info = HouseInfo(data)
print('\nLoaded records: {}'.format(len(data)))
# Module 2 code here:
test_area = 1
recs = house_info.get_data_by_area('id', rec_area=test_area)
print('\nHouse sensor records for area {} = {}'.format(test_area, len(recs)))
test_date = datetime.strptime('5/9/20', '%m/%d/%y')
recs = house_info.get_data_by_date('id', rec_date=test_date)
print('House sensor records for date {} = {}'.format(test_date.strftime('%d/%m/%Y'), len(recs)))
# Module 3 code here:
temperature_data = TemperatureData(data)
recs = temperature_data.get_data_by_area(rec_area=test_area)
print('\nHouse temperature sensor records for area {} = {}'.format(test_area, len(recs)))
print('\tMaximum: {0}, Minimum: {1} temperature'.format(max(recs), min(recs)))
recs = temperature_data.get_data_by_date(rec_date=test_date)
print('House temperature sensor records for date {} = {}'.format(test_date.strftime('%d/%m/%Y'), len(recs)))
print('\tMaximum: {0}, Minimum: {1} temperature'.format(max(recs), min(recs)))
# Module 4 code here:
humidity_data = HumidityData(data)
recs = humidity_data.get_data_by_area(rec_area=test_area)
print('\nHouse humidity sensor records for area {} = {}'.format(test_area, len(recs)))
print('\tAverage: {}% humidity'.format(mean(recs)))
recs = humidity_data.get_data_by_date(rec_date=test_date)
print('House humidity sensor records for date {} = {}'.format(test_date.strftime('%d/%m/%Y'), len(recs)))
print('\tAverage: {}% humidity'.format(mean(recs)))
particle_data = ParticleData(data)
recs = particle_data.get_data_by_area(rec_area=test_area)
concentrations = particle_data.get_data_concentrations(data=recs)
print('\nHouse Particle sensor records for area {} = {}'.format(test_area, len(recs)))
print('\tGood Air Quality Recs: {}'.format(concentrations['good']))
print('\tModerate Air Quality Recs: {}'.format(concentrations['moderate']))
print('\tBad Air Quality Recs: {}'.format(concentrations['bad']))
recs = particle_data.get_data_by_date(rec_date=test_date)
concentrations = particle_data.get_data_concentrations(data=recs)
print('\nHouse Particle sensor records for date {} = {}'.format(test_date.strftime('%d/%m/%Y'), len(recs)))
print('\tGood Air Quality Recs: {}'.format(concentrations['good']))
print('\tModerate Air Quality Recs: {}'.format(concentrations['moderate']))
print('\tBad Air Quality Recs: {}'.format(concentrations['bad']))
# Module 5 code here:
energy_data = EnergyData(data)
recs = energy_data.get_data_by_area(rec_area=test_area)
total_energy = energy_data.calculate_energy_usage(data=recs)
print('\nHouse Energy sensor records for area {} = {}'.format(test_area, len(recs)))
print('\tEnergyUsage:{:2.2} Watts'.format(total_energy))
recs = energy_data.get_data_by_date(rec_date=test_date)
total_energy = energy_data.calculate_energy_usage(data=recs)
print('\nHouse Energy sensor records for date {} = {}'.format(test_date.strftime('%d/%m/%Y'), len(recs)))
print('\tEnergyUsage:{:2.2} Watts'.format(total_energy))