La température avec normales saisonnière

Mettez un lien vers vos créations.

Modérateurs : jturlier, Météo Villarzel

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

La température avec normales saisonnière

Message par PascalWMR » 23 nov. 2014, 17:40

Bonjour

Voici un graphique qui à première vue est tous simple. Mais ça fait deux jours que je le cogite.
https://www.monsite-meteo.eu/PC/G-HS-Temperatures.php

Il représente la température avec, au milieu de la zone de traçage, ce qui semble être un yAxis.plotBands indiquant les températures normales de saison.

Mais que neni, ce graphique est un graphique de type areasplinerange tout comme l'est le graphique de l’amplitude thermique journalière de Pierre-André.

Le truc, est que je voulais justement un plotBands indiquant les mini et maxi de saison. Mais lors du changement de mois, la méthode conventionnelle si je puis dire, ne fonctionnait plus :cry: .
Alors :idea: j'ai eu l'idée de faire un graphique areasplinerange en m'inspirant de ce graphique de demo Highcharts http://www.highcharts.com/demo/arearange-line

Pour vous convaincre, faite un clic droit sur le graphique puis cliquez sur Afficher le code source de la page et vous constaterez que les données sont encodées en format array() si je puis dire.

Le nombre de données encodées dans ce graphique étant conséquent, il convient de limiter la période à afficher. Perso j'ai essayé sur 31 jours, mais là, même si le temps d'encodage est bon, ce qui pêche, c'est l'affichage du tooltip. Pourtant j'ai un processeur I7 950 cadencé à 3.07 Ghz

Bon aller pour ceux que ça intéresse, voici le code permettant d'encoder les données. :mrgreen:

Code : Tout sélectionner

<?php
// appel du script de connexion
require("../Scripts/mysqli_connect.php");                     
// On récupère le timestamp du dernier enregistrement
$sql="select max(tstamp) from data";
$query = mysqli_query($conn,$sql);                  
$list=mysqli_fetch_array($query);     

// On détermine le stop et le start de façon à récupérer dans la prochaine requête que les données des dernières xx heures
$stop=$list[0];
$start=$stop-(86400*2);

// Récupération des données sur les dernières 48 heures avec un tri ascendant sur le timestamp
$sql = "SELECT tstamp, outdoortemperature, windchill, dewpoint, outdoorheatindex FROM data where tstamp >= '$start' and  tstamp <= '$stop' ORDER BY 1";  
$query = mysqli_query($conn,$sql);                   
$i=0;
$tnnormales = array();
$outdoortemperature = array();
$windchill = array();
$dewpoint = array();
$outdoorheatindex = array();
while ($list = mysqli_fetch_assoc($query)) {      
if (date("I",time())==0) { 
	$time[$i]=($list['tstamp']+3600)*1000;
	$mois[$i]=(date("m",$list['tstamp']+3600));
	} 
else {
	$time[$i]=($list['tstamp']+7200)*1000;
	$mois[$i]=(date("m",$list['tstamp']+7200));
  } 
// Normales Mini et Maxi de la station météo France de Metz-Marly-Frescaty
if ($mois[$i]==01) {$tnmin[$i]=-0.5; $tnmax[$i]=4.8;}
elseif ($mois[$i]==02) {$tnmin[$i]=-0.4; $tnmax[$i]=6.6;}
elseif ($mois[$i]==03) {$tnmin[$i]=2.4; $tnmax[$i]=11;}
elseif ($mois[$i]==04) {$tnmin[$i]=4.7; $tnmax[$i]=15;}
elseif ($mois[$i]==05) {$tnmin[$i]=8.9; $tnmax[$i]=19.5;}
elseif ($mois[$i]==06) {$tnmin[$i]=12; $tnmax[$i]=22.7;}
elseif ($mois[$i]==07) {$tnmin[$i]=14.1; $tnmax[$i]=25.3;}
elseif ($mois[$i]==08) {$tnmin[$i]=13.6; $tnmax[$i]=24.8;}
elseif ($mois[$i]==09) {$tnmin[$i]=10.4; $tnmax[$i]=20.4;}
elseif ($mois[$i]==10) {$tnmin[$i]=7.1; $tnmax[$i]=15.1;}
elseif ($mois[$i]==11) {$tnmin[$i]=3.2; $tnmax[$i]=9;}
elseif ($mois[$i]==12) {$tnmin[$i]=0.7; $tnmax[$i]=5.5;}

$tnnormale[] = array($time[$i],(float)$tnmin[$i], (float)$tnmax[$i]);
$outdoortemperature[] = array($time[$i],(float)$list['outdoortemperature']*1);
$windchill[] = array($time[$i],(float)$list['windchill']*1);
$dewpoint[] = array($time[$i],(float)$list['dewpoint']*1);
$outdoorheatindex[] = array($time[$i],(float)$list['outdoorheatindex']*1);
$i++;

}
$FermerConnexion= mysqli_close($conn);
?>

<script type="text/javascript"> 
eval(<?php echo  "'var outdoortemperature =  ".json_encode($outdoortemperature)."'" ?>);  
eval(<?php echo  "'var windchill =  ".json_encode($windchill)."'" ?>);  
eval(<?php echo  "'var dewpoint =  ".json_encode($dewpoint)."'" ?>);  
eval(<?php echo  "'var outdoorheatindex =  ".json_encode($outdoorheatindex)."'" ?>);  
eval(<?php echo  "'var tnnormales= ".json_encode($tnnormale)."'" ?>);  

</script>
Sympa le Pascal :D

A+
Pascal
Modifié en dernier par PascalWMR le 11 nov. 2021, 09:36, modifié 1 fois.
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: La température avec normales saisonnière

Message par Météo Villarzel » 23 nov. 2014, 20:08

Salut Pascal,

Super, merci pour le partage, je vais certainement utiliser ta requête très prochainement.
Pour le moment je suis sur un autre projet, hors météo, quoi que.. ou je dois aussi jongler avec des bases de données, mais je vous en dirait un peu plus dans quelques jours.

Bonne soirée

A+
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: La température avec normales saisonnière

Message par JP54 » 24 nov. 2014, 19:00

Graphique très intéressant, merci beaucoup pour la partage.
Pour les normales de saisons, je pense que tu prends les températures moyennes maxi et moyenne mini de chaque mois
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: La température avec normales saisonnière

Message par PascalWMR » 25 nov. 2014, 09:33

Bonjour
JP54 a écrit : Pour les normales de saisons, je pense que tu prends les températures moyennes maxi et moyenne mini de chaque mois
Oui JP, c'est cela, je prends en référence les moyennes mini et maxi.

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: La température avec normales saisonnière

Message par JP54 » 25 nov. 2014, 18:35

Ok merci.
Il serait peut-être intéressant de faire ce graphique mais avec les températures moyennes journalières. Ce qui permettrait de voir ou se situe la moyenne de jour par rapport au moyenne maxi et mini.
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: La température avec normales saisonnière

Message par Javier » 25 nov. 2014, 19:34

Saludos Pascal

Très bonne idée et un beau graphique! :D

http://kocher.es/graficos-highcharts/te ... normal.php

Il ne reste plus qu'à affiner les couleurs.

Merci beaucoup
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: La température avec normales saisonnière

Message par PascalWMR » 26 nov. 2014, 05:06

Bonjour
JP54 a écrit :Ok merci.
Il serait peut-être intéressant de faire ce graphique mais avec les températures moyennes journalières. Ce qui permettrait de voir ou se situe la moyenne de jour par rapport au moyenne maxi et mini.
Oui JP je suis d'accord avec toi, mais un tel graphique existe déjà. Certe, il n'est pas encore en ligne mais il existait sur l'ancien site.

Par contre, ce que je voulais démontrer avec ce graphique, pour le quidam moyen, quand il le regarde, c'est de se dire, comme on nous le dis dans les prévisions météo à la télé, Est ce que la température qu'il fait en ce moment est normale. Fait plus chaud ou plus froid que ce qu'il devrait faire.
Voila, c'est l'idée de ce graphique, car tu le sais comme moi, la température moyenne ne reflète pas celle qu'il fait réellement. Surtout dans notre région, on peut très bien avoir des températures bien inférieures à la normale la nuit et dans la même journée, des températures bien supérieures à la normale. Une courbe moyenne, aplanirait cet écart et ferait rentrer la moyenne dans la moyenne si je puis dire.

Bonne journée

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: La température avec normales saisonnière

Message par JP54 » 26 nov. 2014, 06:43

Entièrement d'accord avec toi. J'avais bien compris pourquoi tu avais créé ce graphique.
Pour la petit histoire j'en ai entendu une bonne ce matin au info je pense que tu as déjà entendu la même. "Il a plu l'équivalent de deux mois de pluie en quelques heures"
Qui à mon avis ne veut rien dire vu qu'on ne dit pas combien est l'équivalent de deux mois de pluie et deux mois de pluie ici en Lorraine est totalement défférent de deux mois de pluie dans le sud. ça rejoint un peu ce qu'on entend régulièrement "Les températures sont dessus des normales" C'est combien les normales.
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: La température avec normales saisonnière

Message par Javier » 26 nov. 2014, 12:15

JP54 a écrit :Ok merci.
Il serait peut-être intéressant de faire ce graphique mais avec les températures moyennes journalières. Ce qui permettrait de voir ou se situe la moyenne de jour par rapport au moyenne maxi et mini.
Les valeurs de la température quotidienne maximale et minimale, nous les avons dans le tableau MiniMaxidata:

t_out_maxi
t_out_mini

Si nous pouvions obtenir la moyenne de ces valeurs pendant les années de fonctionnement de la station, nous aurions nos valeurs journalières "normales".

Le problème est de mettre cela en pratique :roll:
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: La température avec normales saisonnière

Message par Météo Villarzel » 18 déc. 2014, 23:03

Salut Pascal

Un truc de ouf, j'ai voulu essayer d'intégrer ta requête sur ce graphique
http://www.boock.ch/meteo/graphiques_ph ... rature.php

ça fonctionne nickel, sauf pour les mois d'août et septembre de toutes les années, j'ai recommencé 5 fois et toujours ces deux mois qui restent à 0

par exemple

http://www.boock.ch/meteo/graphiques_ph ... 18-10-2014

et mes normales sont OK

Code : Tout sélectionner

if 	   ($mois[$i]==01) {$tnmin[$i]=-2.5; $tnmax[$i]=3.0;}
elseif ($mois[$i]==02) {$tnmin[$i]=-2.2; $tnmax[$i]=4.9;}
elseif ($mois[$i]==03) {$tnmin[$i]=0.8; $tnmax[$i]=10.1;}
elseif ($mois[$i]==04) {$tnmin[$i]=3.4; $tnmax[$i]=14.1;}
elseif ($mois[$i]==05) {$tnmin[$i]=7.8; $tnmax[$i]=18.8;}
elseif ($mois[$i]==06) {$tnmin[$i]=11; $tnmax[$i]=22.3;}
elseif ($mois[$i]==07) {$tnmin[$i]=12.9; $tnmax[$i]=25.2;}
elseif ($mois[$i]==08) {$tnmin[$i]=12.7; $tnmax[$i]=24.5;}
elseif ($mois[$i]==09) {$tnmin[$i]=9.5; $tnmax[$i]=19.7;}
elseif ($mois[$i]==10) {$tnmin[$i]=6.1; $tnmax[$i]=14.1;}
elseif ($mois[$i]==11) {$tnmin[$i]=1.3; $tnmax[$i]=7.3;}
elseif ($mois[$i]==12) {$tnmin[$i]=-1.2; $tnmax[$i]=3.8;}

$tnnormale[] = array($time[$i],(float)$tnmin[$i], (float)$tnmax[$i]);
étranges :ugeek:

A+
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Répondre