-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanemometer.py
More file actions
29 lines (23 loc) · 894 Bytes
/
anemometer.py
File metadata and controls
29 lines (23 loc) · 894 Bytes
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
#import numpy as np
from complex_sensor import ComplexSensor
class AnemometerWithTachometer(ComplexSensor):
def __init__(self, sensors, arm_length_meters):
super().__init__()
self.sensor = sensors['Tachometer']
self.arm_length_meters = arm_length_meters
def get_wind_speed(self):
rotation_period = self.sensor.get_value()['measurements'][0]['value']
if not rotation_period:
return 0
rotation_speed = 2*3.1416*(1/rotation_period)
wind_speed_m_s = rotation_speed * self.arm_length_meters
wind_speed_km_h = 3.6 * wind_speed_m_s
return wind_speed_km_h
def prepare_output(self):
prepared_output = {
'timestamp': time.time(),
'wind_speed': self.get_wind_speed(),
}
return prepared_output
def get_value(self):
return self.prepare_output()