static function calculateNoteWindFinder($previsionDate) { $tempMin = 10; $tempNav = 15; // Température ou ca devient sympa de naviguer $nbFoisInfMin = 0; $nbFoisInfNav = 0; $nbFoisSupNav = 0; foreach ($previsionDate->getListPrevision() as $prevision) { // si dans la tranche horaire de $prevision->getTime() if (NoteWind::isInGoodTime($prevision->getTime())) { $temp = $prevision->getTemp(); if ($temp != null) { if ($temp < $tempMin) { $nbFoisInfMin++; } elseif ($temp < $tempNav) { // si inférieur à tempNav mais sup à tempMin -> c'est bof mais on peut naviguer $nbFoisInfNav++; } else { // sup à tempNav -> COOOOL $nbFoisSupNav++; } } } } // On calcule la note $note = -1; if ($nbFoisSupNav + $nbFoisInfNav + $nbFoisInfMin > 0) { if ($nbFoisInfMin > 0) { // si inférieur à tempMin -> on ne navigue pas de la journnée $note = 0; } else { $note = ($nbFoisSupNav + $nbFoisInfNav * 0.5) / ($nbFoisSupNav + $nbFoisInfNav + $nbFoisInfMin); } } // else impossible de calculer la note: pas de données -> -1 return $note; }
static function calculateNoteMeteoFrance($previsionDate) { $isDanger = false; foreach ($previsionDate->getListPrevision() as $prevision) { // si dans la tranche horaire de $prevision->getTime() if (NoteWind::isInGoodTime($prevision->getTime())) { $meteo = $prevision->getMeteo(); if ($meteo == "a-o" || $meteo == "p-o") { // Danger lorsque: // "Averses orageuses" -> "a-o"; // "Pluies orageuses" -> "p-o"; $isDanger = true; } } } return $isDanger ? 0.5 : 1; }