iwa-panda1

Manage Weather Data by International Weather Agency (Version 1)
Log | Files | Refs

commit 921c68c6e1a4fd79279733b0830e2d615ba6928f
parent 57e8323bae3a1bfb4bbd78ed0fccaccdf92d2080
Author: Kninteman <[email protected]>
Date:   Tue,  4 Apr 2023 12:54:54 +0200

Update datavalidator.php

Diffstat:
Mdatavalidator.php | 24++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/datavalidator.php b/datavalidator.php @@ -5,42 +5,42 @@ * Validates the temperature against the average of the last 30 rows for the given station name. * * @param string $station The station name to validate against. - * @param float $temperatuur The temperature value to validate. + * @param float $temperature The temperature value to validate. * @param Redis $redis The Redis connection object. * @return float Returns the correct temperature. */ -function validate_temperature($station, $temperatuur, $redis) { +function validate_temperature($station, $temperature, $redis) { // Return the correct temperature validated with last 30 values. //Deze checkt of het de eerste value is en maakt 2 queues aan en knalt de waardes erin. if(!$redis->exists('values'.$station)) { - $redis->lpush('values'.$station, $temperatuur); - $redis->lpush('average'.$station, $temperatuur); + $redis->lpush('values'.$station, $temperature); + $redis->lpush('average'.$station, $temperature); return 0; } //Als het aantal values de 30 nog niet bereikt heeft, berekend hij gewoon het gemiddelde en voegt de value toe aan de queue else { if($redis->llen('values'.$station) < 3) { - $avg = ($redis->rpop('average'.$station) * $redis->llen('values'.$station) + $temperatuur) / ($redis->llen('values'.$station) + 1); + $avg = ($redis->rpop('average'.$station) * $redis->llen('values'.$station) + $temperature) / ($redis->llen('values'.$station) + 1); $redis->lpush('average'.$station, $avg); - $redis->lpush('values'.$station, $temperatuur); + $redis->lpush('values'.$station, $temperature); return 0; } //Bij 30 values zal de volgende value eerst gecheckt worden met het bekende gemiddelde en eventueel aangepast worden. //Daarna zal deze toegevoegd worden aan de value en average queue. De laatste waarde zal eruit gehaald worden. else { $current_avg = $redis->lIndex('average'.$station, 0); - if(abs(($temperatuur - $current_avg) / $current_avg) > 0.2) { - $temperatuur = $current_avg; - $new_avg = (($redis->rpop('average'.$station) * 3) - $redis->rpop('values'.$station) + $temperatuur) / 3; + if(abs(($temperature - $current_avg) / $current_avg) > 0.2) { + $temperature = $current_avg; + $new_avg = (($redis->rpop('average'.$station) * 3) - $redis->rpop('values'.$station) + $temperature) / 3; $redis->lpush('average'.$station, $new_avg); - $redis->lpush('values'.$station, $temperatuur); + $redis->lpush('values'.$station, $temperature); return -1; } else { - $new_avg = (($redis->rpop('average'.$station) * 3) - $redis->rpop('values'.$station) + $temperatuur) / 3; + $new_avg = (($redis->rpop('average'.$station) * 3) - $redis->rpop('values'.$station) + $temperature) / 3; $redis->lpush('average'.$station, $new_avg); - $redis->lpush('values'.$station, $temperatuur); + $redis->lpush('values'.$station, $temperature); return 1; } }