Page 5 sur 6

Re: Cours sur les tags

Posté : 30 janv. 2014, 15:25
par WakawaRider
webmaster a écrit :

Code : Tout sélectionner

%unit_off%
%ws_setmem[1]=%maxval_mpast[2~%ws_month2%~-005]%%
%ws_getmem[1]%<br>
%ws_setmem[2]=%ws_calc[+]=%ws_getmem[1]%~%maxval_mpast[2~%ws_month2%~-004]%~1%%
%ws_getmem[2]%<br>
%ws_setmem[3]=%ws_calc[+]=%ws_getmem[2]%~%maxval_mpast[2~%ws_month2%~-003]%~1%%
%ws_getmem[3]%<br>
%ws_setmem[4]=%ws_calc[+]=%ws_getmem[3]%~%maxval_mpast[2~%ws_month2%~-002]%~1%%
%ws_getmem[4]%<br>
%ws_setmem[5]=%ws_calc[+]=%ws_getmem[4]%~%maxval_mpast[2~%ws_month2%~-001]%~1%%
%ws_getmem[5]%<br>
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[5]%~%maxval_mpast[2~%ws_month2%~0000]%~1%%
%ws_getmem[6]%<br>
Moyenne sur 5 ans= %ws_calc[/]=%ws_getmem[6]%~5~1%%°C
%unit_on%
J’utilise également des historiques pour mes graphiques, c'est un peu le même principe.
Personnellement j'ai opté de travailler sur les cinq années glissantes, cela permet de figer le code.
Sinon l'autre solution est de faire un tableau qui remonte sur dix ans par exemple, les case vides se rempliront avec le temps.

Bon courage.
Bonjour Rieux
Comme Kalimero Je n'y connais rien en php, j'essaie donc de me débrouiller avec des tags que je transforme en variables javascript.
Je comprends le principe de ton utilisation de "ws_setmem - ws_getmem".
Je souhaite également pouvoir utiliser les moyennes mensuelles relevées par la station pour compléter les graphiques en ligne (comme celui-ci : http://www.meteo-anglade.fr/mto-anglade-analyse.html#G1).
Pour l'instant je travaille avec une feuille de calcul Excel mais je souhaiterai pouvoir mettre en place une variable qui me dispense du travail mensuel pendant quelques années.
Il faudrait donc que j'établisse un tableau regroupant les années déjà enregistrées et au moins 3 années à venir ... soit 10 ans au total.
Si je comprends bien le principe , cela va me prendre 10 places en "setmem" par variable et comme ce sont des variables mensuelles, cela fait 120 "setmem" par valeur de sensor, n'est-ce pas?
Tu vois où je veux en venir : Il n'y a que 64 places en "setmem" donc ce principe n'est pas applicable.
Existe-t-il une solution alternative ?
D'autre part, un tableau qui se rempli avec le temps c'est bien mais si je n'ai que 7 valeurs sur 10 par exemple, la division du total par 10 pour obtenir la moyenne donnera une valeur fausse ... ou je n'ai pas compris ton explication :cry:
Eclaire-moi stp !! :idea:
Cordialement

Re: Cours sur les tags

Posté : 30 janv. 2014, 21:22
par webmaster
Bonsoir,
Si je comprends bien tu veux calculer des moyennes sur 10 années glissantes.
Effectivement il n'existe pas assez de variable dans WsWin. Il me semble que l'on peut en augmenter le nombre en modifiant une variable dans le fichier wswin.cfg, mais même comme ça il n'y en aura pas assez.
Mais pourquoi n'utilises-tu pas les tags Season Average avec lesquels tu choisis la période de calcul ?

Ou alors je n'ai pas bien compris la question.

Bonne soirée

Re: Cours sur les tags

Posté : 31 janv. 2014, 10:53
par WakawaRider
webmaster a écrit :Bonsoir,
Si je comprends bien tu veux calculer des moyennes sur 10 années glissantes.
Bonsoir Rieux,
Dans l'absolu, le site "Météo Anglade" est prévu pour durer donc je souhaiterais plutôt des moyennes mensuelles qui ne soient pas glissantes.
Mais en explorant ton forum, les "années glissantes" sont tout je que j'ai trouvé pour répondre à mon attente...
webmaster a écrit : Mais pourquoi n'utilises-tu pas les tags Season Average avec lesquels tu choisis la période de calcul ?
J'ai regardé ces tags en effet, mais je ne vois pas ce qu'ils pourraient apporter de plus que les tags mensuels existants, puisque c'est sur eux que je souhaite établir une moyenne. A moins qu'il soit possible avec ces tags de rentrer plusieurs périodes pour un même tags; je pense à quelque chose de ce type : %Season Average[Pluie de janvier2007,janvier2008,janvier2009,etc...]%
Pour info, j'ai déjà créé un graphique avec les tags Season Average pour mettre en évidence les moyennes du printemps, de l'été, etc. mais ce n'est pas significatif du climat de Villeneuve sur Lot, j'ai donc retiré ce graphique du site pour ne pas le surcharger inutilement.
webmaster a écrit : Effectivement il n'existe pas assez de variable dans WsWin. Il me semble que l'on peut en augmenter le nombre en modifiant une variable dans le fichier wswin.cfg, mais même comme ça il n'y en aura pas assez.
Je suis arrivé à la même conclusion car je souhaite mettre en ligne les valeurs mensuelles moyennes relevées par la station depuis le 1er janvier 2007 des précipitations et des températures maxi-mini-moyennes...
Soit 48 variables calculées sur 7 ans ... et on va sur la 8eme ! :geek:
Et il me parait intéressant de disposer de ces références locales qu'on n'a pas chez Météo France (en tout cas pas dans les données publiques)
Ni aurait-il pas une solution en créant des tags imbriqués afin de ne pas être limité par le nombre de Setmem ? Et toujours avec le soucis, à défaut de variable, de construire une formule qui pourrait se "remplir" avec le temps sans avoir à la refaire chaque année.
S'il n'est pas possible de travailler sur des tags pour ces variables, existe-t-il un tuto pour l’utilisation du PHP avec WsWin (...pour un néophyte du PHP comme moi :???: )

Cordialement

Re: Cours sur les tags

Posté : 31 janv. 2014, 19:58
par webmaster
Bonsoir,
Je comprends mieux ce que tu cherches à faire.
Une solution est de faire générer des lignes de variables par WsWin dans un fichier txt et de les récupérer dynamiquement en java.
Par exemple une première ligne avec les températures mini de janvier-10ans, janvier-09ans, janvier-08ans.........janvier-01ans qui donnerait par exemple:-10.2,-5.8,-8.9,........-2.8
Idem pour les moyennes, maxis et pluviométrie et les mois suivants.
A la finale tu vas avoir un fichier comportant 48 lignes de 10 mesures.
Il ne reste plus qu'à importer ton fichier txt das ton code java et de récupérer les mesures dont tu as besoin sur les dix années glissantes afin de construire tes graphiques et calculer tes moyennes.

Maintenant il faut voir si un tel fichier n'est pas trop lourd à générer par WsWin, cela fait 480 mesures quand même.

Perso je passerai probablement par un template qui ne génère pas les pages à chaque relevé, mais sur un pas moins rapproché suivant ta configuration. Les tags que l'on peut utiliser dans les templates sont également beaucoup plus pratiques pour faire des séries comme tu veux le faire.

Une autre piste que tu peux exploiter c'est récupérer les lignes des fichiers nooa qui sont générer par WsWin, les mesures dont tu as besoin sont également déjà dedans.

Bonne soirée

Re: Cours sur les tags

Posté : 01 févr. 2014, 14:46
par WakawaRider
Bonjour Rieux
webmaster a écrit :Je comprends mieux ce que tu cherches à faire.
Une solution est de faire générer des lignes de variables par WsWin dans un fichier txt et de les récupérer dynamiquement en java.
Par exemple une première ligne avec les températures mini de janvier-10ans, janvier-09ans, janvier-08ans.........janvier-01ans qui donnerait par exemple:-10.2,-5.8,-8.9,........-2.8
Idem pour les moyennes, maxis et pluviométrie et les mois suivants.
A la finale tu vas avoir un fichier comportant 48 lignes de 10 mesures.
Il ne reste plus qu'à importer ton fichier txt das ton code java et de récupérer les mesures dont tu as besoin sur les dix années glissantes afin de construire tes graphiques et calculer tes moyennes.
C'est exactement le principe que j'applique pour l'instant pour obtenir les variables WsWin :
J'ai créé un fichier texte "varwswin.txt" avec une entête pour WsWin comme ceci :

Code : Tout sélectionner

<!-- %customfile=varwswin.js% --> 
/* D�claration des variables du programe WsWin */
var curval2 = "%curval[2]%"
var curval36 = "%curval[36]%"
var curval33 = "%curval[33]%"
var rainday = "%rainday%"

%unit_off%
var rain_mpast012007 = "%rain_mpast[01~2007]%"	//donn�es pluies mensuelles
var rain_mpast122013 = "%rain_mpast[12~2013]%"
var rain_mpast052014 = "%rain_mpast[05~2014]%"
var rain_mpast012015 = "%rain_mpast[01~2015]%"
%unit_on%
à partir de ce fichier, WsWin génère le fichier Javascript "varwswin.js" comme ceci :

Code : Tout sélectionner

/* D�claration des variables du programe WsWin*/
var curval2 = "7.8 �C"
var curval36 = "275 �"
var curval33 = "1006.7 mbar"
var rainday = "8.6 mm"

var rain_mpast012007 = "29.4"	//donn�es pluies mensuelles
var rain_mpast122013 = "58.4"
var rain_mpast052014 = "0.0"
var rain_mpast122015 = "--"
Comme on peut le voir dans cet exemple, WsWin renvoi "0" pour les mois de l'année qui ne sont pas encore passé et "--" pour les mois des années à venir.
Cela met en évidence mon problème. je ne sais pas comment faire une fonction Javascript qui calculerai la moyenne des valeurs différentes de "0" ou "--". C'est pour ça que je cherche une alternative avec les tags.
Au passage, j'en profite pour te demander si tu connais le tag pour récupérer les caractères spéciaux en UTF8 ??

Cependant, l'exemple que tu me proposes est intéressant dans le sens où la variable ainsi générée ne serait composée que des mois passés, donc adieu les problèmes de "0" et de "--".
En revanche on aurait le même problème si l'on souhaite intégrer dans la moyenne les mois passés de l'année en cours, n'est-ce pas ?
webmaster a écrit : Maintenant il faut voir si un tel fichier n'est pas trop lourd à générer par WsWin, cela fait 480 mesures quand même.
Perso je passerai probablement par un template qui ne génère pas les pages à chaque relevé, mais sur un pas moins rapproché suivant ta configuration. Les tags que l'on peut utiliser dans les templates sont également beaucoup plus pratiques pour faire des séries comme tu veux le faire.
Mon fichier texte génère actuellement presque 1000 variables calculées par WsWin toutes les minutes. C'est donc possible.
Mais tu as raison, il faudrait alléger le travail de WsWin qui est assez lent dans cet exercice.
Il suffit de faire un copier-coller des résultats obtenus dans le fichier .js vers le fichier .txt qui les a générés pour les tags qui sont des constantes, c'est à dire tous les tags comportant "past" dans leur formule... Et bien entendu on peut également alléger le travail de l'interpréteur javascript en remplaçant les variables javascript par leurs valeurs numériques .... C'est un petit travail de nettoyage que je fais à mes heures perdues :lol:
webmaster a écrit :Une autre piste que tu peux exploiter c'est récupérer les lignes des fichiers nooa qui sont générer par WsWin, les mesures dont tu as besoin sont également déjà dedans.
Je n'ai pas encore mis le nez dans ces fichiers, je vais regarder cela de plus près

Cordialement

Re: Cours sur les tags

Posté : 02 févr. 2014, 21:14
par webmaster
Bonsoir,
WakawaRider a écrit :Comme on peut le voir dans cet exemple, WsWin renvoi "0" pour les mois de l'année qui ne sont pas encore passé et "--" pour les mois des années à venir.
Cela met en évidence mon problème. je ne sais pas comment faire une fonction Javascript qui calculerai la moyenne des valeurs différentes de "0" ou "--". C'est pour ça que je cherche une alternative avec les tags.
Ce n'est pas trop mon truc le java !
Mais je pense que c'est certainement plus simple de cherche comment faire que de chercher à le faire avec WsWin.
WsWin est un outils génial mais qui a ses limites. Il est beaucoup plus facile d'extraire les données de son choix pour les traiter dynamiquement en Java, PHP ou autre.
WakawaRider a écrit : Au passage, j'en profite pour te demander si tu connais le tag pour récupérer les caractères spéciaux en UTF8 ??
Essaie %ansitoutf8_on%

Bonne soirée

Re: Cours sur les tags

Posté : 03 févr. 2014, 12:03
par WakawaRider
webmaster a écrit :Essaie %ansitoutf8_on%
Je viens de tester cette commande mais elle ne fonctionne pas.
Il est précisé que cette commande n'est valide que dans un template. Or dans mon cas il s'agit de générer un fichier ".js" c'est donc sans doute la cause du problème.

Re: Cours sur les tags

Posté : 03 févr. 2014, 12:45
par webmaster
Bonjour,

Bien vu, essaie celui là alors: %ws_replaceforutf8[ton texte]%

Re: Cours sur les tags

Posté : 03 févr. 2014, 15:09
par WakawaRider
Parfait !
Là ça marche :Panneau-Merci:
Voici un aperçu de la transformation :
le code initial dans le fichier texte :

Code : Tout sélectionner

var ws_moonlastq = "%ws_moonlastq%"	// (Dernier quartier)
var ws_moonfirstq = "%ws_moonfirstq%"	// (Premier Quartier)
var ws_moonfull = "%ws_moonfull%"		// (Prochaine Pleine Lune)
var ws_moonnew = "%ws_moonnew%"		// (Prochaine Nouvelle Lune)
ça donnait ceci :
Image
Le nouveau code :

Code : Tout sélectionner

var ws_moonlastq = "%ws_replaceforutf8[%ws_moonlastq%]%"	// (Dernier quartier)
var ws_moonfirstq = "%ws_replaceforutf8[%ws_moonfirstq%]%"	// (Premier Quartier)
var ws_moonfull = "%ws_replaceforutf8[%ws_moonfull%]%"		// (Prochaine Pleine Lune)
var ws_moonnew = "%ws_replaceforutf8[%ws_moonnew%]%"		// (Prochaine Nouvelle Lune)
Ce qui donne maintenant ceci :
Image
voici le script dans la page html pour la construction du tableau avec les variables javascript:

Code : Tout sélectionner

<script>
document.write('<table class="t4"><tr><td rowspan="9"  style="padding: 5px"><img src="images/'+ws_moongif+'" vertical-align="bottom" width="140px" alt=""></td></img><th>Phase actuelle de la Lune</th><td> '+ws_moonphase+' (0% = <img src="images/moon0.gif" vertical-align="bottom" width="20px" alt="">, 100% = <img src="images/moon14.gif" vertical-align="bottom" width="20px" alt="">)</td></tr><tr><th>Dernier Quartier</th><td>'+ws_moonlastq+'</td></tr><tr><th>Premier Quartier</th><td>'+ws_moonfirstq+'</td></tr><tr><th>Prochaine Pleine Lune</th><td>'+ws_moonfull+'</td></tr><tr><th>Prochaine Nouvelle Lune</th><td>'+ws_moonnew+'</td></tr><tr><th>Age de la Lune</th><td>'+ws_moonage+'</td></tr><tr><th>Levé de la Lune</th><td>'+ws_moonrise+'</td></tr><tr><th>Lune au Zénith</th><td>'+ws_moontransit+'</td></tr><tr><th>Couché de la Lune</th><td>'+ws_moonset+'</td></tr></table>')</script>
Il ne reste plus qu'à appliquer cette méthode pour tous les tags qui renvoient des lettres accentuées et ainsi pouvoir supprimer de mes scripts la fonction ".replace(/�/g, "é")" que j'avais collé un peu partout !!

Je n'abandonne pas mon intention de départ pour les valeurs mensuelles enregistrées par la station, mais je vais aller piocher un peu plus dans le javascript.... Affaire à suivre :roll:

Cordialement
Laurent

Re: Cours sur les tags

Posté : 05 févr. 2014, 14:35
par WakawaRider
webmaster a écrit :Une solution est de faire générer des lignes de variables par WsWin dans un fichier txt et de les récupérer dynamiquement en java.
Par exemple une première ligne avec les températures mini de janvier-10ans, janvier-09ans, janvier-08ans.........janvier-01ans qui donnerait par exemple:-10.2,-5.8,-8.9,........-2.8
Idem pour les moyennes, maxis et pluviométrie et les mois suivants.
Bonsoir Rieux,
Je suis toujours à la recherche du Graal :geek:
J'essaie de construire ces lignes de variables pour les exploiter en javascript, mais je ne suis pas très doué avec les tags décidément...
Voici ce que j'ai écrit pour obtenir un tableau javascript contenant les valeurs de hauteur de pluie des mois de mars (par exemple) sur les 20 dernières années écoulées :

Code : Tout sélectionner

var rain_mpast03 = new Array(%rain_mpast[03~001]%,%rain_mpast[03~002]%,%rain_mpast[03~003]%,%rain_mpast[03~004]%,%rain_mpast[03~005]%,%rain_mpast[03~006]%,%rain_mpast[03~007]%,%rain_mpast[03~008]%,%rain_mpast[03~009]%,%rain_mpast[03~010]%,%rain_mpast[03~011]%,%rain_mpast[03~012]%,%rain_mpast[03~013]%,%rain_mpast[03~014]%,%rain_mpast[03~015]%,%rain_mpast[03~016]%,%rain_mpast[03~017]%,%rain_mpast[03~018]%,%rain_mpast[03~019]%,%rain_mpast[03~020]%)
Mais WsWin me renvoie ça :

Code : Tout sélectionner

var rain_mpast03 = new Array(--------------------%rain_mpast[03~011]%,%rain_mpast[03~012]%,%rain_mpast[03~013]%,%rain_mpast[03~014]%,%rain_mpast[03~015]%,%rain_mpast[03~016]%,%rain_mpast[03~017]%,%rain_mpast[03~018]%,%rain_mpast[03~019]%,%rain_mpast[03~020]%)
Peux-tu me dire où sont mes erreurs ?

Cordalement
Laurent

Re: Cours sur les tags

Posté : 05 févr. 2014, 21:41
par webmaster
Bonsoir,
Il y a un nombre maximum de tag que l'on peut mettre sur une seule ligne.

Code : Tout sélectionner

var rain_mpast03 = new 
Array(
%rain_mpast[03~001]%,%rain_mpast[03~002]%,%rain_mpast[03~003]%,%rain_mpast[03~004]%,
%rain_mpast[03~005]%,%rain_mpast[03~006]%,%rain_mpast[03~007]%,%rain_mpast[03~008]%,
%rain_mpast[03~009]%,%rain_mpast[03~010]%,%rain_mpast[03~011]%,%rain_mpast[03~012]%,
%rain_mpast[03~013]%,%rain_mpast[03~014]%,%rain_mpast[03~015]%,%rain_mpast[03~016]%,
%rain_mpast[03~017]%,%rain_mpast[03~018]%,%rain_mpast[03~019]%,%rain_mpast[03~020]%
)
Mais l'usage de ce tag est %rain_mpast[mm~aaaa]% mm pour le mois, aaaa pour l'année.
Là il te manque un chiffre en admettant que tu cherches la pluviométrie des mois de mars de 2001 à 2020 !

Re: Cours sur les tags

Posté : 05 févr. 2014, 22:07
par WakawaRider
Bonsoir Rieux,
Merci de cette réponse rapide.
Quel est le nombre maximum de tags que l'on peut mettre sur une seule ligne ?
Je pensais avoir lu que la numérotation de l'année "0000" correspondait à l'année en cours et "001" l'année précédente, "002" l'avant dernière année etc... Mais je peux aussi me débrouiller avec des tags indiquant des années précises si ce n'est pas possible autrement ?...

Cordialement
Laurent

Re: Cours sur les tags

Posté : 05 févr. 2014, 23:01
par webmaster
WakawaRider a écrit : Bonsoir Rieux,
Je pensais avoir lu que la numérotation de l'année "0000" correspondait à l'année en cours et "001" l'année précédente, "002" l'avant dernière année etc...
Je ne sais plus pour le nombre de tags.
L'année doit toujours comporter quatre caractères, 0000 pour l'année en cours, -001 pour l'année précédente, -002 pour celle d'avant et ainsi de suite.

Re: Cours sur les tags

Posté : 07 févr. 2014, 15:44
par WakawaRider
Bonjour Rieux,
J'avais complètement zappé le fait que le 4éme caractère était le signe.
Après quelques tests, le nombre maximum de tags sur une même ligne semble être de 10.
voici donc mes variables réécrites dans le fichier texte :

Code : Tout sélectionner

%unit_off%
var rain_mpast03a = "%rain_mpast[03~0000]%,%rain_mpast[03~-001]%,%rain_mpast[03~-002]%,%rain_mpast[03~-003]%,%rain_mpast[03~-004]%,%rain_mpast[03~-005]%,%rain_mpast[03~-006]%"
var rain_mpast03b = "%rain_mpast[03~-007]%,%rain_mpast[03~-008]%,%rain_mpast[03~-009]%,%rain_mpast[03~-010]%,%rain_mpast[03~-011]%,%rain_mpast[03~-012]%,%rain_mpast[03~-013]%"
var rain_mpast03c = "%rain_mpast[03~-014]%,%rain_mpast[03~-015]%,%rain_mpast[03~-016]%,%rain_mpast[03~-017]%,%rain_mpast[03~-018]%,%rain_mpast[03~-019]%,%rain_mpast[03~-020]%"
%unit_on%
et voici ce que me renvoie WsWin pour le mois de mars avec mes donnée depuis janvier 2007 dans mon fichier Javascript :

Code : Tout sélectionner

var rain_mpast03a = "0.0,86.6,42.0,28.0,51.0,26.6,74.6"
var rain_mpast03b = "64.0,--,--,--,--,--,--"
var rain_mpast03c = "--,--,--,--,--,--,--"
A noter que pour ce qui m'intéresse, c'est à dire la moyenne sur les vingt dernières années et l'année en cours, j'ai besoin de 21 variables.
Donc 3 lignes de tags.
Le javascript n'accepte pas le retour à la ligne à l'intérieur d'une variable donc je crée 3 variables.
Il ne me reste plus qu'à en faire le traitement pour supprimer les "--" et le "0.0" du mois non commencé de l'année en cours, créer 3 tableaux et les concaténer avant de calculer la moyenne ... Je ne suis pas informaticien alors ça me promet de longues heures de recherche ! ...A moins qu'un lecteur du forum super calé en javascript ne vienne à mon secours :pancarte-bienvenue5

Cordialement
Laurent

Re: Cours sur les tags

Posté : 17 févr. 2014, 22:23
par WakawaRider
Bonsoir
J'ai réussi (en me faisant aider) à écrire la fonction Javascript pour le calcul des moyennes mensuelles enregistrées par la station depuis sa mise en place.
Est-ce que ce sujet a une place dans le forum ?
Si oui, dans quelle rubrique ?
Cordialement
Laurent