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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| $heure_actuelle = time();
$heure_actuelle_human = date("H:i:s", $heure_actuelle);
$heure_pleine_heure_actuelle = getdate($heure_actuelle);
$scenario->setLog('heure actuelle : '. $heure_actuelle_human . "\n") ;
$latitude = 47.077363;
$longitude = 4.553420;
// récupération des infos du jour
$sun_info = date_sun_info(strtotime("now"), $latitude, $longitude);
foreach ($sun_info as $key => $val) {
$scenario->setLog("$key: " . date("H:i:s", $val) . "\n") ;
$scenario->setLog("$key: " . $val . "\n") ;
}
unset($key);
//$scenario->setLog("sunrise " . date("H:i:s", $val) . "\n") ;
// sauvegarde des infos du jour
$leve_soleil = $sun_info [sunrise];
$leve_soleil_human = date("H:i:s", $sun_info [sunrise]);
$heure_pleine_leve_soleil = getdate($leve_soleil);
$couche_soleil = $sun_info [sunset];
$couche_soleil_human = date("H:i:s", $sun_info [sunset]);
$heure_pleine_couche_soleil = getdate($couche_soleil);
$zenith_soleil = $sun_info [transit];
$zenith_soleil_human = date("H:i:s", $sun_info [transit]);
$scenario->setLog('\n');
$heure_en_cours = getdate();
$heure_pleine_en_cours = $heure_en_cours[hours];
$time_left_hour = $heure_pleine_couche_soleil[hours] - $heure_pleine_heure_actuelle[hours] -1;
$scenario->setLog('time left hour '.$time_left_hour);
/*
RELEVER ICI LES DONNEES DE METEORAMA A CHAQUE DEBUT D'HEURE
*/
$scenario->setlog('Relève données Météorama'.'/n');
If ($time_left_hour > 0) { //s'il reste au moins une plage horaire pour afficher la couverture nuageuse avant #heure_max#
for ($ii = 1; $ii <= $time_left_hour; $ii=$ii+1) {
$j = $heure_pleine_heure_actuelle[hours] + $ii;
$k = $j + 1;
//$heure_human_couv_nuageuse = date("H:i:s", $heure_pleine_heure_actuelle[hours]); ESSAI INTEGRATION HEURE HUMAINE DANS TABLEAU COUVERTURE NUAGEUSE POUR CONTROLER PLUS FACILEMENT
//$scenario->setlog($heure_human_couv_nuageuse);
$value_percent = cmd::byString('#[Météo][meteorama][+'.$ii.'h]#')->execCmd();
$scenario->setLog('Couverture nuageuse prévue de '.$j.'h à '.$k.'h : '.$value_percent);
$pos = strpos($value_percent, '%');
if ($pos !== false) { // caractère % trouvé dans la chaine
$valeur_couv_nuageuse = substr($value_percent, 0, -1); // suppression du caractère '%' à la fin de la valeur
} else {
$valeur_couv_nuageuse = $value_percent; // sinon c'est que la valeur récupérée n'avait pas de '%' on laisse donc telle quelle
}
// enregistrement du pourcentage de nuages prévu à l'heure qui arrive pour suivi au niveau d'un graph et comparaison avec la PROD solaire
if ($ii == 1) {
cmd::byString('#[Solaire][Position Soleil][Couv actuel]#')->event('"'.$valeur_couv_nuageuse.'"');
}
$couv_nuageuse[$j] = $valeur_couv_nuageuse;
$scenario->setLog('la variable $couv_nuageuse '.$j.' vaut '.$valeur_couv_nuageuse);
// Mise à jour du virtuel Couverture nuageuse Lacanche avec les informations
cmd::byString('#[Solaire][Position Soleil][Couv '.$j.'h-'.$k.'h]#')->event('"'.$valeur_couv_nuageuse.'"');
$timestamp_couv_nuageuse = mktime($j, 0, 0);
$scenario->setlog('timestamp couverture nuageuse'.$timestamp_couv_nuageuse);
$tableau_couv_nuageuse[$timestamp_couv_nuageuse] = array($j,$valeur_couv_nuageuse);
} }
// AFFICHER CES PUTAINS DE VALEUR DE $tableau_couv_nuageuse AVEC LA CLE
foreach($tableau_couv_nuageuse as $key=>$info) {
list($drink, $color) = $info;
$scenario->setlog($key.' '.$drink.' '.$color);
}
//$value_percent = cmd::byString('#[Solaire][meteorama solaire][+'.$i.'h]#')->execCmd();
// boucle de 1h avant lever de soleil à 1h après coucher de soleil qui affiche az et alt toutes les heures
$scenario->setlog('relève données azimut et hauteur soleil'.'/n');
for ($i = $leve_soleil-3600; $i <= $couche_soleil+3600; $i=$i+3600) {
$scenario->setLog('Timestamp -> '.$i);
$scenario->setLog('Heure -> '.date("H:i:s", $i));
$heure_human_az_ht = date("H:i:s", $i);
require_once dirname(__FILE__) . '/../../data/php/user.function.class.php';
list($ra,$dec)=userFunction::sunAbsolutePositionDeg($i);
list($az, $alt) = userFunction::absoluteToRelativeDeg($i, $ra, $dec, $latitude, $longitude);
$alt=$alt+userFunction::correctForRefraction($alt);
$az360=$az;
if (0 > $az360) $az360 = $az360 + 360;
$azimuth360 = $az360;
$altitude = $alt;
$azimuth360_round = round ($azimuth360,3);
$altitude_round = round ($altitude,3);
$scenario->setlog('azimut -> '.$azimuth360_round);
$scenario->setlog('altitude -> '.$altitude_round);
/*
TROUVER A QUELLE COUVERTURE NUAGEUSE CORRESPOND LE $i EN COURS DE TRAITEMENT
IL FAUT TROUVER UN MOYEN D'AJOUTER ICI UNE VARIABLE $couverture_nuageuse AU TABLEAU $tableau_couv_nuageuse
*/
foreach($tableau_couv_nuageuse as $key=>$info) {
list($drink, $color) = $info;
if ($i >= $key && $i <= ($key + 3600))
{
$scenario->setlog('c est dans la plage !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
}
$scenario->setlog($i.' '.$key.' '.$drink.' '.$color);
}
// construction d'un tableau d'index timestamp contenant heure humaine, azimut et altitude
$tableau_az_alt[$i] = array($heure_human_az_ht,$azimuth360_round,$altitude_round); // $tableau_az_alt[$i] = array($heure_human_az_ht,$azimuth360_round,$altitude_round,$couverture_nuageuse)
// nombre d'éléments dans le tableau a chaque itération
$scenario->setLog('nb ' .count($tableau_az_alt));
}
// nombre total d'éléments dans le tableau
$scenario->setLog('nb ' .count($tableau_az_alt));
// test pour voir s'il reste des choses de la veille dans le tableau
$scenario->setlog('essai affichage de données 1');
foreach($tableau_az_alt as $heure_humaine_az_ht){
//pour chaque élément de $tableau_az_alt crée la variable $element pour l'afficher
foreach($heure_humaine_az_ht as $element){
$scenario->setlog($element);
}
}
$scenario->setlog("essai affichage de données 2");
foreach($tableau_az_alt as $key => $essai){
//for ($i=0;$i<=2;$i=$i+1) {
$scenario->setlog($key.' '.$essai [0].' '.$essai [1].' '.$essai [2]);
//}
}
$scenario->setlog("essai affichage de données 3");
foreach($tableau_couv_nuageuse as $key => $essai){
//for ($i=0;$i<=2;$i=$i+1) {
$scenario->setlog($key.' '.$essai [0].' '.$essai [1]);
//}
} |
Partager