grosse erreur sur direction moyenne du vent

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 !
Répondre
mm91
Participation 6
Participation 6
Messages : 2581
Enregistré le : 31 mars 2007, 07:46
Localisation : 25 Km au sud-ouest de Paris FRANCE
Contact :

grosse erreur sur direction moyenne du vent

Message par mm91 » 05 nov. 2008, 17:17

Bonjour,
Dans ma page
http://icare.cinq.free.fr/meteo/courrent.html" onclick="window.open(this.href);return false;
est indiqué la direction du vent dominant.
Le tag utilisé est : %domwind_txt% qui donne bien la direction moyenne sur la période affichée (les dernières 24 heure dans mon cas).

Par contre dans ma page http://icare.cinq.free.fr/meteo/ws_speech.mp3" onclick="window.open(this.href);return false; j’ai voulu indiquer la moyenne de la direction du vent de la dernière heure.
Pour cela j’utilise le tag : %curminmaxhour[3,1,36]%
Avec :
3 = moyenne
1= sur une heure
36= direction du vent.

He bien je viens de m’apercevoir que cette valeur était fausse !
En effet, comme la direction est une valeur entre 0 et 360 degrés, si le vent oscille autour du nord : de 340 degrés à 20 degré par exemple, la moyenne sera de 180 degrés = SUD !! (340+20)/2=180

Remarque : c’est exactement le même problème (bien connu et jamais résolu par Werner !) de l’affichage sur les graphiques de la direction du vent avec la fonction « lissage » qui transforme un vent du nord en vent du sud !

Alors, les champions du tag, y a-t-il un moyen de calculer cette direction moyenne de vent sans faire cette grossière erreur ?
Michel
La Crosse WS2300 modifiée (pluvio, abri ventilé, mesure d'ensoleillement), Wswin32, Watchdog.
mon site météo

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par chriss » 05 nov. 2008, 21:49

Juste pour faire un essaie, quel est ton pas de réception ?
5 min il me semble.

mm91
Participation 6
Participation 6
Messages : 2581
Enregistré le : 31 mars 2007, 07:46
Localisation : 25 Km au sud-ouest de Paris FRANCE
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par mm91 » 05 nov. 2008, 22:15

chriss a écrit :Juste pour faire un essaie, quel est ton pas de réception ?
5 min il me semble.
Oui, 5mn.
J'ai vu qu'il y avait un tag qui faisait la moyenne des directions sur 10 mn: aucun intéret pour moi (2 mesures)

Je pensai plutôt à quelque chose qui ferait la moyenne à partir des direction en texte (et non en degrés), mais je ne vois pas trop comment.
Michel
La Crosse WS2300 modifiée (pluvio, abri ventilé, mesure d'ensoleillement), Wswin32, Watchdog.
mon site météo

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par chriss » 05 nov. 2008, 22:32

Essaie ceci Michel:

%unit_off%
%ws_setmem[1]=%ws_replacestr=+~~%valuechange[36]=10%%%
%ws_setmem[2]=%ws_replacestr=+~~%valuechange[36]=15%%%
%ws_setmem[3]=%ws_replacestr=+~~%valuechange[36]=20%%%
%ws_setmem[4]=%ws_replacestr=+~~%valuechange[36]=25%%%
%ws_setmem[5]=%ws_replacestr=+~~%valuechange[36]=30%%%
%ws_setmem[6]=%ws_replacestr=+~~%valuechange[36]=35%%%
%ws_setmem[7]=%ws_replacestr=+~~%valuechange[36]=40%%%
%ws_setmem[8]=%ws_replacestr=+~~%valuechange[36]=45%%%
%ws_setmem[9]=%ws_replacestr=+~~%valuechange[36]=50%%%
%ws_setmem[10]=%ws_replacestr=+~~%valuechange[36]=55%%%
%ws_setmem[11]=%ws_replacestr=+~~%valuechange[36]=60%%%
%ws_setmem[1]=%ws_calc[*]=%ws_getmem[1]%~-1~0%%
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[2]%~0%~%ws_getmem[3]%~0%%
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[4]%~0%~%ws_getmem[5]%~0%%
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[6]%~0%~%ws_getmem[7]%~0%%
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[8]%~0%~%ws_getmem[9]%~0%%
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[10]%~0%~%ws_getmem[11]%~0%%
%ws_setmem[1]=%ws_calc[/]=%ws_getmem[1]%~12~1%%
%ws_setmem[2]=%curval[36]%%
%ws_setmem[1]=%ws_calc1[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
%ws_getmem[1]%°
(%makewind_txt[%ws_getmem[1]%°]%)
%unit_on%

mm91
Participation 6
Participation 6
Messages : 2581
Enregistré le : 31 mars 2007, 07:46
Localisation : 25 Km au sud-ouest de Paris FRANCE
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par mm91 » 06 nov. 2008, 15:16

Merci Chriss pour cette réponse rapide.

J’ai fait un essai rapide, ça me donne bien une direction (sous la forme « 198.5° (S-SO) » ), mais je n’ai pas vérifié que c’était bien la moyenne sur une heure et surtout que ça marchait bien pour un vent oscillant autour du nord.
Eventuellement j’aimerai bien comprendre le principe de ton calcul de cette moyenne de direction de vent (pas le principe du tag, mais celui du calcul de la moyenne).

Bon, mais mon post c’était surtout pour signaler le problème au cas ou quelqu’un utiliserait ce même tag.

En fait, dans mon message vocale je ne veux pas compliquer, je vais plutôt remplacer la direction moyenne de la dernière heure par la direction moyenne des dernières 24 heures (%domwind_txt% comme dans le custom),
ou des dernières 10 mn (%avg10minwinddir_txt%) bien que dans mon cas la moyenne ne comporte que deux mesures.
ou la valeur actuelle : %wind_txtlong%

Je suis entrain de faire des essais et de choisir.
Michel
La Crosse WS2300 modifiée (pluvio, abri ventilé, mesure d'ensoleillement), Wswin32, Watchdog.
mon site météo

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par chriss » 06 nov. 2008, 16:22

Ok je t'explique en détails.
J'avais commencé par utiliser un tag qui s'appel arraywinddir renvoyant les X dernière valeurs de la direction du vent sans unité (ex: 20 30 200 35 ...) mais le problème est que je ne peut pas récupérer individuellement ces valeurs pour les additionner et faire la moyenne.
Donc j'utilise les tags %valuechange[36]=XX% qui renvoi la différence entre la valeur actuelle et la valeur il y a XX minutes. D'où les tags suivant:
%valuechange[36]=10%
%valuechange[36]=15%
%valuechange[36]=20%
Je n'utilise pas %valuechange[36]=5% car ce tag renvoi la valeur actuelle.
Ce tag renvoi des valeurs du type +30° ou -40°.
pour les calculs suivant j'appel Va la valeur actuelle et Vi la valeur il y a i minutes et Vdiff_i la différence entre les deux. Les Vi vont de 10 a 60 de 5 en 5.
Donc ce tag renvoie la valeurs Vdiff=Va - Vi soit Vi = Va - Vdiff.
Donc la moyenne que tu cherche se fait par le calcul suivant:
Moy=[Va + V10 + V15 + V20 +......+ V60] / 12 (je rappel que Va valeur actuelle = V5 valeur des 5 derniere minutes)
Maintenant on remplace chaque Vi par le calcul associé:
Moy=[Va + (Va-Vdiff_10) + (Va-Vdiff_15) + (Va-Vdiff_20) +.....+ (Va-Vdiff_60)] / 12
On peut remarquer que Va apparait 12 fois:
Moy=[12Va -Vdiff_10-Vdiff_15......-Vdiff_60] / 12
On peut sortir Va de la division:
Moy=Va + (-Vdiff_10-Vdiff_15-Vdiff_20...-Vdiff_60)/12
Je laisse le signe moins dans la paranthèse pour des raisons pratique de calcul avec wswin.
Voilà le calcul que fait mon tag.
Je sais que tu ne voulais pas savoir le principe du tag mais je te le dis au cas où si ca t'intéresse.
J'ai dis plus haut que %valuechange[36]=XX% renvoi des valeurs du type +30° ou -40°. Je met %unit_off% afin de supprimer le °.
Ensuite le "+" est gênant pour des calculs car pour les calculs j'ai besoin que de valeur et +30 n'est pas vraiment un valeur que les tags peuvent interpréter.
J'utilise le tag %ws_replacestr=+~~%valuechange[36]=10%% qui lui va remplacer le signe + par rien dès qu'il le trouve dans un valeurs. J'ai maintenant de vrai valeurs que je peux utiliser (ex: 30 , -50...Etc). Je mais c'est valeurs en mémoire pour les calculs suivant grâce au tag %ws_setmem[X]=...%
Ce qui explique les 11 lignes:
%ws_setmem[1]=%ws_replacestr=+~~%valuechange[36]=10%%%
%ws_setmem[2]=%ws_replacestr=+~~%valuechange[36]=15%%%
%ws_setmem[3]=%ws_replacestr=+~~%valuechange[36]=20%%%
.....
..
Ensuite le tag %ws_setmem[1]=%ws_calc[*]=%ws_getmem[1]%~-1~0%% multiplie par -1 la premiere valeurs car j'ai besoin de -Vdiff_10 comme l'a montré mon calcul.
Puis je fais que des soustraction des Vdiff enregistrés (je soustrais au fur et a mesure la valeur déjà soustraite):
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[2]%~0%~%ws_getmem[3]%~0%%
%ws_setmem[1]=%ws_calc1[-]=%ws_calc[-]=%ws_getmem[1]%~%ws_getmem[4]%~0%~%ws_getmem[5]%~0%%
....
..
Ensuite je divise le résultat des soustraction par 12 via le tag suivant:
%ws_setmem[1]=%ws_calc[/]=%ws_getmem[1]%~12~1%%
J'enregistre ensuite la valeur courant Va de la direction du vent via : %ws_setmem[2]=%curval[36]%%
J'additione ensuite Va au résultat après la division par 12
%ws_setmem[1]=%ws_calc1[+]=%ws_getmem[1]%~%ws_getmem[2]%~1%%
On obtient ainsi la moyenne que j'affiche:
%ws_getmem[1]%°
Et enfin le tag suivant convertit l'angle trouvé en direction en toutes lettres:
(%makewind_txt[%ws_getmem[1]%°]%)

%unit_on% (on réaffiche les unité pour les tags suivants).
Voilà, j'espère avoir été clair.
A+

mm91
Participation 6
Participation 6
Messages : 2581
Enregistré le : 31 mars 2007, 07:46
Localisation : 25 Km au sud-ouest de Paris FRANCE
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par mm91 » 06 nov. 2008, 17:18

OK, un grand merci pour ces explications claires.
C’est fascinant !
Je comprends à peu près le principe du calcul.

Mais à partir du moment où tu utilises toujours des valeurs en degrés, ne vas-tu pas retomber sur le même problème ? :
quand la valeur va passer par exemple de 350° à 10°, %valuechange[36]=XX% va renvoyer « -340 » et va fausser complètement la moyenne.
D’une façon générale il me semble qu'on ne pourra jamais faire une moyenne avec des valeurs qui ne sont pas continues sur l’espace de calcul.
Michel
La Crosse WS2300 modifiée (pluvio, abri ventilé, mesure d'ensoleillement), Wswin32, Watchdog.
mon site météo

mm91
Participation 6
Participation 6
Messages : 2581
Enregistré le : 31 mars 2007, 07:46
Localisation : 25 Km au sud-ouest de Paris FRANCE
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par mm91 » 06 nov. 2008, 18:23

le tag:
%avg10minwind%
me donnebien la moyenne des deux dernières vitesses de vent
(j'ai un pas de cinq minute, c'est donc bien les deux dernières mesure qu'il faut prendre: règle des intervalles)

mais le tag:
%avg10minwinddir%
me donne toujours la dernière direction du vent (et non la moyenne des deux dernières)

une explication ?
Michel
La Crosse WS2300 modifiée (pluvio, abri ventilé, mesure d'ensoleillement), Wswin32, Watchdog.
mon site météo

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Re: grosse erreur sur direction moyenne du vent

Message par chriss » 06 nov. 2008, 19:02

Pour répondre a la question sur mon tag, je ne suis pas sûr qu'on retrouve le problème de base.
En effet la on prend pas les valeurs en elles-même mais les écart.
Il faudra savoir si en passant de 350 a 10° le tag valu change nous donne +20 ou -340.
Je vais essayer d'approfondir.

Répondre