les records un mois donné

Forum destiné aux problèmes de Tags, recherche d’une fonction, d’un calcul, Tag qui parait ne pas fonctionner, du Tag et rien que du Tag !
Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 24 nov. 2011, 20:25

webmaster a écrit : Oui bien entendu !
Mais quand je lis le code que tu as posté, ça n'a pas l'air d'être ce que tu fais.
Ah ? J'ai posté ceci :

Code : Tout sélectionner

if ($mois_soleil_min > $wswin_ad_mois_soleil_max) {$mois_soleil_min=$wswin_ad_mois_soleil_max; $mois_date_soleil_min=$wswin_ad_mois_date_soleil_max;}
if ($mois_soleil_max < $wswin_mois_soleil_max) {$mois_soleil_max=$wswin_mois_soleil_max; $mois_date_soleil_max=$wswin_mois_date_soleil_max;}
En fait, $wswin_ad_mois_soleil_max pourrait (ou devrait) s'appeler $wswin_ad_mois_soleil tout comme $wswin_mois_soleil_max devrait s'appeler $wswin_mois_soleil
Donc pour l'ensoleillement mini, je compare l'ensoleillement du même mois l'année dernière avec la valeur mini inscrite dans la base : if ($mois_soleil_min > $wswin_ad_mois_soleil_max)
Et pour le maxi, je compare l'ensoleillement du mois courant avec l’ensoleillement maxi qui figure dans la base : if ($mois_soleil_max < $wswin_mois_soleil_max)

Je ne vois pas où est l'erreur ???
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 24 nov. 2011, 21:23

Je ne me souvenais plus des noms de variables que tu avais utilisé.
Je suis donc maintenant d'accord avec toi.
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 25 nov. 2011, 07:39

Bonjour,
webmaster a écrit :Je ne me souvenais plus des noms de variables que tu avais utilisé.
Je suis donc maintenant d'accord avec toi.
Et je ne m'en souvenais plus non plus !!! Le suffixe _max m'a perturbé, je vais le supprimer !
Depuis que j'ai décoché "Quitter Programme & Start programme" dans Wswin, je n'ai plus de température à 0°C lors du premier relevé !
D'autre part, Wswin est démarré toutes les 5min 24h/24 Mais avec deux tâches différentes.
Mon PC météo n’étant pas très véloce, il faut environ 25 secondes entre le démarrage de wswin et la lecture des données.
Pour que les données soient au plus tôt sur le serveur,avec l'une des tâches, je démarre donc Wswin à 0h14min40s puis 0h19min40s et ainsi de suite toutes les 5min jusqu'à 23h54min40s.
Ce qui fait des données datées de 0h15, 0h20, etc.
Une autre tâche démarre wswin à 0h00 et 0h05. Si wswin relève les données au moment du changement de jour (ce qui serait possible avec la tâche précédente, à quelques secondes près), des variables peuvent rester "bloquées" sur la console. Par exemple, s'il pleut, la console gardera la valeur de la veille, bien que la pluvio soit enregistrée dans le datalogger.
extremes.php est exécuté toutes les 5 min de 0h17 à 23h57. Je laisse une marge le matin puisqu'il arrive que wswin affiche "aucune donnée reçue de la station sans fil". Dans ce cas, wswin_extremes.php n'est pas créé. Je n'ai jamais vu le phénomène se produire deux fois consécutives et encore moins trois fois. Mais trois précautions valent mieux qu'une !!!

Donc, pour l'instant tout baigne !
Encore merci.
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 27 févr. 2012, 20:26

Bonjour,

Je viens de me rendre compte d'une erreur ou plutôt d'un oubli dans mon code...
Aujourd'hui, je vois soleil maxi , 1:10h en 2010 alors qu'il y a eu 5:03h en 2011 !!!
Je jette donc un coup d’œil sur mes fichiers et je vois qu'il me manque des lignes dans extremes.php.

Voici un extrait de wswin_extremes.php

Code : Tout sélectionner

 ............................................................
    %ws_delline%%ws_setmem[55]=%ws_replacestr=minutes~~%sundaypast[%ws_day2%~%ws_month2%~2010]%%%
    %ws_delline%%ws_setmem[55]=%ws_replacestr=heures~~%ws_getmem[55]%%%
    %ws_delline%%ws_setmem[55]=%ws_replacestr= ~~%ws_getmem[55]%%%
    %ws_delline%%ws_setmem[56]=%ws_cutstr=0~1~%ws_getmem[55]%%%
    %ws_delline%%ws_setmem[57]=%ws_instr=-5~5~0: %ws_getmem[55]%%%
    %ws_delline%%ws_setmem[57]=%ws_replacestr= ~~%ws_getmem[57]%%%
    %ws_delline%%ws_setmem[58]=%ws_instr=-5~5~0:0 %ws_getmem[55]%%%
    %ws_delline%%ws_setmem[58]=%ws_replacestr= ~~%ws_getmem[58]%%%
    %ws_delline%%ws_setmem[59]=%ws_comparestrx=%ws_getmem[56]%~~%ws_getmem[58]%~%ws_getmem[57]%%%
    $wswin_2010_soleil_max='%ws_timetoval[%ws_getmem[59]%]%';
    $wswin_2010_date_soleil_max='%ws_day2%/%ws_month2%/2010';
	

    %ws_delline%%ws_setmem[55]=%ws_replacestr=minutes~~%sundaypast[%ws_day2%~%ws_month2%~-001]%%%
    %ws_delline%%ws_setmem[55]=%ws_replacestr=heures~~%ws_getmem[55]%%%
    %ws_delline%%ws_setmem[55]=%ws_replacestr= ~~%ws_getmem[55]%%%
    %ws_delline%%ws_setmem[56]=%ws_cutstr=0~1~%ws_getmem[55]%%%
    %ws_delline%%ws_setmem[57]=%ws_instr=-5~5~0: %ws_getmem[55]%%%
    %ws_delline%%ws_setmem[57]=%ws_replacestr= ~~%ws_getmem[57]%%%
    %ws_delline%%ws_setmem[58]=%ws_instr=-5~5~0:0 %ws_getmem[55]%%%
    %ws_delline%%ws_setmem[58]=%ws_replacestr= ~~%ws_getmem[58]%%%
    %ws_delline%%ws_setmem[59]=%ws_comparestrx=%ws_getmem[56]%~~%ws_getmem[58]%~%ws_getmem[57]%%%
    $wswin_ad_soleil_max='%ws_timetoval[%ws_getmem[59]%]%';
    $wswin_ad_date_soleil_max='%ws_day2%/%ws_month2%/%ws_calc[-]=%ws_year%~1~0%';
	
	$wswin_soleil_max='%sunday_d%';
	$wswin_date_soleil_max='%ws_date%';
Là, pas de problème, il y a bien le code pour l'année dernière, donc 2011.

Par contre, dans extremes.php, j'ai ceci :

Code : Tout sélectionner

.......................................................................
if ($rafale_max < $wswin_2007_rafale_max) {$rafale_max=$wswin_2007_rafale_max; $date_rafale_max=$wswin_2007_date_rafale_max; $heure_rafale_max=$wswin_2007_heure_rafale_max;}
if ($rafale_max < $wswin_2008_rafale_max) {$rafale_max=$wswin_2008_rafale_max; $date_rafale_max=$wswin_2008_date_rafale_max; $heure_rafale_max=$wswin_2008_heure_rafale_max;}
if ($rafale_max < $wswin_2009_rafale_max) {$rafale_max=$wswin_2009_rafale_max; $date_rafale_max=$wswin_2009_date_rafale_max; $heure_rafale_max=$wswin_2009_heure_rafale_max;}
if ($rafale_max < $wswin_2010_rafale_max) {$rafale_max=$wswin_2010_rafale_max; $date_rafale_max=$wswin_2010_date_rafale_max; $heure_rafale_max=$wswin_2010_heure_rafale_max;}
if ($rafale_max < $wswin_rafale_max) {$rafale_max=$wswin_rafale_max; $date_rafale_max=$wswin_date_rafale_max; $heure_rafale_max=$wswin_heure_rafale_max;}

if ($soleil_max < $wswin_2007_soleil_max) {$soleil_max=$wswin_2007_soleil_max; $date_soleil_max=$wswin_2007_date_soleil_max;}
if ($soleil_max < $wswin_2008_soleil_max) {$soleil_max=$wswin_2008_soleil_max; $date_soleil_max=$wswin_2008_date_soleil_max;}
if ($soleil_max < $wswin_2009_soleil_max) {$soleil_max=$wswin_2009_soleil_max; $date_soleil_max=$wswin_2009_date_soleil_max;}
if ($soleil_max < $wswin_2010_soleil_max) {$soleil_max=$wswin_2010_soleil_max; $date_soleil_max=$wswin_2010_date_soleil_max;}
if ($soleil_max < $wswin_soleil_max) {$soleil_max=$wswin_soleil_max; $date_soleil_max=$wswin_date_soleil_max;}
Il manque donc les lignes concernant l'année dernière !!!

Je suppose que ce devrait être ceci :

Code : Tout sélectionner

if ($rafale_max < $wswin_2007_rafale_max) {$rafale_max=$wswin_2007_rafale_max; $date_rafale_max=$wswin_2007_date_rafale_max; $heure_rafale_max=$wswin_2007_heure_rafale_max;}
if ($rafale_max < $wswin_2008_rafale_max) {$rafale_max=$wswin_2008_rafale_max; $date_rafale_max=$wswin_2008_date_rafale_max; $heure_rafale_max=$wswin_2008_heure_rafale_max;}
if ($rafale_max < $wswin_2009_rafale_max) {$rafale_max=$wswin_2009_rafale_max; $date_rafale_max=$wswin_2009_date_rafale_max; $heure_rafale_max=$wswin_2009_heure_rafale_max;}
if ($rafale_max < $wswin_2010_rafale_max) {$rafale_max=$wswin_2010_rafale_max; $date_rafale_max=$wswin_2010_date_rafale_max; $heure_rafale_max=$wswin_2010_heure_rafale_max;}
if ($rafale_max < $wswin_ad_rafale_max) {$rafale_max=$wswin_ad_rafale_max; $date_rafale_max=$wswin_ad_date_rafale_max; $heure_rafale_max=$wswin_ad_heure_rafale_max;}
if ($rafale_max < $wswin_rafale_max) {$rafale_max=$wswin_rafale_max; $date_rafale_max=$wswin_date_rafale_max; $heure_rafale_max=$wswin_heure_rafale_max;}

if ($soleil_max < $wswin_2007_soleil_max) {$soleil_max=$wswin_2007_soleil_max; $date_soleil_max=$wswin_2007_date_soleil_max;}
if ($soleil_max < $wswin_2008_soleil_max) {$soleil_max=$wswin_2008_soleil_max; $date_soleil_max=$wswin_2008_date_soleil_max;}
if ($soleil_max < $wswin_2009_soleil_max) {$soleil_max=$wswin_2009_soleil_max; $date_soleil_max=$wswin_2009_date_soleil_max;}
if ($soleil_max < $wswin_2010_soleil_max) {$soleil_max=$wswin_2010_soleil_max; $date_soleil_max=$wswin_2010_date_soleil_max;}
if ($soleil_max < $wswin_ad_soleil_max) {$soleil_max=$wswin_ad_soleil_max; $date_soleil_max=$wswin_ad_date_soleil_max;}
if ($soleil_max < $wswin_soleil_max) {$soleil_max=$wswin_soleil_max; $date_soleil_max=$wswin_date_soleil_max;}
C'est bien cela ?
Pour l'instant, dans le doute, j'ai rajouté des lignes pour 2011...
Merci.

Des corrections à faire dans ma base de données puisque aucune valeur de 2011 n'a été prise en compte pour janvier et février !!!
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 28 févr. 2012, 21:25

Bonsoir,
Tudgur a écrit :C'est bien cela ?
Pour l'instant, dans le doute, j'ai rajouté des lignes pour 2011...
Merci.
Effectivement, ces lignes sont bien manquantes dans ton code.
Nous en avons parlé je ne sais plus trop sur quelle page car il y en a pas mal.
Je me souviens même que ces lignes comparant l'année précédente ne doivent pas être retirées en Janvier 2013 contrairement à toutes les comparaisons précédentes qui ne serviront plus à rien après un an.
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 28 févr. 2012, 22:05

OK, merci beaucoup !
J'espère que tout se passera bien cette nuit pour le 29 février...
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 29 févr. 2012, 06:17

Salut !

Je constate que chez toi ça n'a pas mieux marché que chez moi...
La ligne 60 de la base de données contient les extrêmes de la ligne 59.
Un jour d'erreur tous les 4ans, ce n'est pas trop grave !
A moins que tu n'aies une solution ?

Bonne journée.
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 29 févr. 2012, 13:15

Bonjour,
Tudgur a écrit :Je constate que chez toi ça n'a pas mieux marché que chez moi...
Effectivement mais comment peux-tu le voir ?

Le problème est du à WsWin qui prend le 28 pour les années non bissextiles, ça se complique !
Je n'ai pas eu le temps de regarder en détail ce matin, mais la seule idée qui me vient comme ça, c'est de ne faire la comparaison que sur l'année 2008 pour la journée d’aujourd’hui.
Et à partir de l'année prochaine de ne faire la comparaison sur l'année précédente que si l'année n'est pas bissextile.

Mais si quelqu'un a une autre idée je suis preneur.
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 29 févr. 2012, 15:09

webmaster a écrit : Effectivement mais comment peux-tu le voir ?
Tout simplement dans ta rubrique Climatologie / Extrêmes !!!
webmaster a écrit :Le problème est du à WsWin qui prend le 28 pour les années non bissextiles, ça se complique !
....mais la seule idée qui me vient comme ça, c'est de ne faire la comparaison que sur l'année 2008 pour la journée d’aujourd’hui.
Et à partir de l'année prochaine de ne faire la comparaison sur l'année précédente que si l'année n'est pas bissextile.

Mais si quelqu'un a une autre idée je suis preneur.
Un peu lourd effectivement.
Il faudrait un fichier spécial pour chaque 29 février et un autre pour le reste du temps.
Puis une tache planifiée pour renommer les fichiers... dans 4ans.

edit : en fait, à partir d'octobre, nous n'aurons plus que la comparaison avec l'année précédente.
Donc, pour la journée du 29 février 2016, il me suffira de remplacer "ad" par 2012.
Auparavant (c'est à dire demain) j'aurais rempli manuellement la ligne du 29 avec les bons extrêmes.
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 29 févr. 2012, 21:51

Bonsoir,
Je pensais que tu voyais les ligne 59 et 60 !

Bon de mon coté j'ai ajouté un paragraphe année moins 4 dans le fichier WsWin.
Et pour la nuit, je n'ai laissé qu'une comparaison entre aujourd'hui et -004 dans la page PHP.
Je remettrai les lignes retirées demain matin, l'ajout de ligne dans le code Wswin n'est pas gênant.

Je regarderai d'ici 2016, mais un test sur la date du jour et l'année bissextile n'est pas si lourd que ça en PHP.
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 29 févr. 2012, 22:38

webmaster a écrit : Je regarderai d'ici 2016, mais un test sur la date du jour et l'année bissextile n'est pas si lourd que ça en PHP.
C'est vrai, y a pas l'feu au lac !!!
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 05 avr. 2012, 12:36

Bonjour.

Je m'adresse plus particulièrement au webmaster, toujours à propos de la base de données pour laquelle il a bien voulu me guider pas à pas...

Certaines villes, annoncent, à des fins touristiques, le nombre de jours de soleil par an. Par exemple, Briançon 300 jours.
Même si cela n'a pas une grande valeur en termes de meteo, serait-il possible de faire la même chose à partir de notre base de données ?
C'est à dire, afficher par exemple aujourd'hui le nombre de jours avec plus de 2h de soleil depuis le début de l'année, ce nombre étant mis à jours dès que les deux heures sont atteintes le jour courant ?
J'espère que je suis assez clair ! :wink:

Facilement réalisable ou pas ?
Ou peut-être est-ce faisable avec WsWin ?
Je ne voudrais en aucun cas abuser de ton temps !
Merci.
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 05 avr. 2012, 20:40

Bonsoir,

Pour pouvoir faire ce genre de chose, il faudrait une base avec l'ensemble des jours de l'année en cours, hors dans le cas présent nous n'avons que les les jours extrêmes de toutes les années.
Je ne vois pas de tag dans WsWin permettant de retrouver le nombre de jours dépassant deux heures d'ensoleillement depuis le début de l'année.
Il faut donc incrémenter une variable lors du dépassement du seuil de l'ensoleillement, soit avec WsWin, soit en PHP et l'enregistrer dans un petit fichier texte suffisant pour une simple valeur.

Je me penche la dessus ce week-end pour voir comment aborder le problème.
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 06 avr. 2012, 08:03

Bonjour,
webmaster a écrit :...il faudrait une base avec l'ensemble des jours de l'année en cours, hors dans le cas présent nous n'avons que les les jours extrêmes de toutes les années.
Suis-je bête ? (pour rester poli sur le forum :lol: )
webmaster a écrit :Il faut donc incrémenter une variable lors du dépassement du seuil de l'ensoleillement, soit avec WsWin, soit en PHP et l'enregistrer dans un petit fichier texte suffisant pour une simple valeur.
Je me penche la dessus ce week-end pour voir comment aborder le problème.
Ne te casse quand même pas trop la tête ; et puis dimanche, il y a œufs à aller chercher dans le jardin, les cloches seront revenues de Rome...
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 08 avr. 2012, 19:15

Bon c'est un peu taillé à la serpe, mais fonctionnel !
Déjà ton idée de reprendre la base, avec le recul n'est pas si mauvaise et facilite la tâche.
J'ai ajouté à la fin du fichier généré par WsWin ces deux tags:

Code : Tout sélectionner

    $soleil_possible ='%ws_timetoval[%ws_daylength%]%';
    $soleil_jour='%sunday_d%';
Le premier converti en décimal l'ensoleillement possible, le second l'ensoleillement décimal effectif.

J'ai ajouté une variable à la fin de la structure de la base nommée jour_soleil. Cette variable est de type INT et a pour valeur par défaut 0.

J'ai ensuite modifié le fichier extremess.php, celui qui est lancé toutes les heures (il me semble car j'ai dormi depuis...)
A la fin des tests jour et juste avant la ligne d'écriture, j'ai ajouté ces deux lignes:

Code : Tout sélectionner

$soleil_pourcent=(($soleil_jour*100)/$soleil_possible);
if ($soleil_pourcent > 25) {$jour_soleil = 1;}
Ton histoire de seuil à plus de deux heures, ne me parait pas adapté et j'ai opté pour un pourcentage plus malléable suivant les saisons.
Je calcule donc sur la première ligne le pourcentage d’ensoleillement effectif, puis, s'il dépasse 25% (seuil que j'ai choisi), j'impute 1 à la variable $jour_soleil.
J'ajoute maintenant à la fin de ma ligne d'écriture ma nouvelle variable de manière à l'inscrire dans la base.

Code : Tout sélectionner

...........date_soleil_max='$date_soleil_max',jour_soleil='$jour_soleil' WHERE id='$jour' ");
Il n'y a plus qu'à compter le nombre de jour ou le seuil est atteint sur l'ensemble de la base de manière à afficher le nombre de jour d'ensoleillement sur l'année glissante.

Code : Tout sélectionner

<?php
$variable = '0';
$db = mysql_connect('localhost', '*utilisateur*', '*pass*');
mysql_query("set names UTF8"); 
mysql_select_db('extremes',$db);
$sql = "SELECT * FROM mois WHERE jour_soleil='1'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
	$variable = $variable + 1;
    }    
mysql_close();

echo 'Il y a eu ',$variable,'jour(s) de soleil ces 365 derniers jours.';
?>
http://www.rieux-marne.net/meteo/climat ... s/test.php
C'est une approche, il y en a bien d'autre...
La seul chose qui me dérange c'est l'appel de fonction à l'affichage que je préférerai dans le fichier extremess.php de manière à stocker le cumul dans une autre variable.
Si l'on doit garder ce principe je modifierai un peu le code en gardant l'idée de base.

Bon encore un chocolat et j'arrête pour aujourd'hui :roll:
Cordialement

Rieux

Répondre