Skip to content

Instantly share code, notes, and snippets.

@OrangeTux
Last active December 28, 2015 20:59
Show Gist options
  • Save OrangeTux/7561930 to your computer and use it in GitHub Desktop.
Save OrangeTux/7561930 to your computer and use it in GitHub Desktop.
Average
setpoints = [a, b, c, d, e] # List with setpoints, ordered by time.
sum_values = 0
sum_seconds = 0
for index, current_setpoint in enumerate(setpoints):
try:
next_setpoint = setpoints[index+1]
except KeyError:
return
duration = next_setpoint.timestamp - current_setpoint.timestamp
triangle += ((current_setpoint.value + next_setpoint.value) * duration) / 2
# Voor het leesgemak
cur = current_setpoint.value
next = current_setpoint.value
if cur != 0 or next != 0 and cur != next:
lowest_value = cur if cur < next else next
square += lowest_value * duration
sum_values += triangle
sum_values += square
sum_seconds += next_setpoint.timestamp.timestamp - current_setpoint.timestamp.timestamp
# Average temperature in that period
average = sum_values / sum_seconds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment