Est-il possible d'extraire du fichier history.txt d'autres valeurs que $CURRENT, $MIN, $MAX, etc., (par exemple la valeur située 3 lignes au dessus de $CURRENT) et de faire des calculs sur plusieurs variables ?
c'est pas très clair, hein ?
bon, pourquoi cette question à la noix ?
voilà, comme j'incrémente le fichier history.txt qu'une fois toutes les 5 mn, certaines courbes, comme la vitesse du vent par exemple, sont en dents de scie, du fait des variations assez importantes (un coup on tombe pile sur une rafale, le coup d'après on tombe dans un moment de pétole, etc.)
En affichant une valeur moyenne calculée a partir des 3 ou 5 dernières valeurs, on aurait une courbe plus lissée.
bon, bref, comment qu'on fait ?
j'ai cherché sur le web, mais j'ai pas trouvé de site expliquant ce langage.
y'a bien ce site : http://artichow.org/ , mais ça vole déja trop haut pour moi et je ne suis pas sûr qu'il s'agisse de la mème chose qu'ici.
sur ce, bonne nuit.
où l'on cause feuilles de style et variables ...
Dernière modification par jdny le mer. janv. 24, 2007 11:35 pm, modifié 1 fois.
- jturlier
- Membre
- Messages : 3149
- Inscription : mar. août 22, 2006 8:38 am
- Localisation : 34410 Sérignan - Languedoc
- Contact :
Si les données sont exportées sur une base SQL, il est toujours possible de faire une moyenne glissante sur plusieurs minutes, heures ou jours en créant une view ( le plus simple pour l'exploitation ultérieure) et de traiter cette source de données ds GW.
Désolé pour le langage ésotérique comme dirait Coulet !
Jean
Un petit exemple (MySql ou DB2 ou postgresSQL ...) ci-dessous pour les amateurs, avec une moyenne glissante sur 10 jours pour des mini maxi et moyenne à partir de recdates (timestamps formatés AAAAMMJJHHMMSS ) :
-- CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`
SQL SECURITY DEFINER VIEW `resjour10` AS select `r`.`recdate` AS `recdate`,
(select format(avg(`r1`.`tmini`),1) AS `format(avg(tmini),1)`
from `resjour` `r1` where ((`r1`.`recdate` <= `r`.`recdate`) and (`r1`.`recdate` >= (`r`.`recdate` - 10)))) AS `tmini10`,
(select format(avg(`r2`.`tmaxi`),1) AS `format(avg(tmaxi),1)`
from `resjour` `r2` where ((`r2`.`recdate` <= `r`.`recdate`) and (`r2`.`recdate` >= (`r`.`recdate` - 10)))) AS `tmaxi10`,
(select format(avg(`r3`.`tmoy`),1) AS `format(avg(tmoy),1)`
from `resjour` `r3` where ((`r3`.`recdate` <= `r`.`recdate`) and (`r3`.`recdate` >= (`r`.`recdate` - 10)))) AS `tmoy10`,
(select format(avg(`r4`.`pmoy`),1) AS `format(avg(pmoy),1)`
from `resjour` `r4` where ((`r4`.`recdate` <= `r`.`recdate`) and (`r4`.`recdate` >= (`r`.`recdate` - 10)))) AS `pmoy10`,
(select format(avg(`r1`.`hmini`),1) AS `format(avg(hmini),1)`
from `resjour` `r1` where ((`r1`.`recdate` <= `r`.`recdate`) and (`r1`.`recdate` >= (`r`.`recdate` - 10)))) AS `hmini10`,
(select format(avg(`r2`.`hmaxi`),1) AS `format(avg(hmaxi),1)`
from `resjour` `r2` where ((`r2`.`recdate` <= `r`.`recdate`) and (`r2`.`recdate` >= (`r`.`recdate` - 10)))) AS `hmaxi10`,
(select format(avg(`r3`.`hmoy`),1) AS `format(avg(hmoy),1)`
from `resjour` `r3` where ((`r3`.`recdate` <= `r`.`recdate`) and (`r3`.`recdate` >= (`r`.`recdate` - 10)))) AS `hmoy10`,
(select format(avg(`r11`.`tmini`),1) AS `format(avg(tmini),1)`
from `resjour` `r11` where ((`r11`.`recdate` <= `r`.`recdate`) and (`r11`.`recdate` >= (`r`.`recdate` - 3)))) AS `tmini3`,
(select format(avg(`r12`.`tmaxi`),1) AS `format(avg(tmaxi),1)`
from `resjour` `r12` where ((`r12`.`recdate` <= `r`.`recdate`) and (`r12`.`recdate` >= (`r`.`recdate` - 3)))) AS `tmaxi3`,
(select format(avg(`r13`.`tmoy`),1) AS `format(avg(tmoy),1)`
from `resjour` `r13` where ((`r13`.`recdate` <= `r`.`recdate`) and (`r13`.`recdate` >= (`r`.`recdate` - 3)))) AS `tmoy3`,
(select format(avg(`r14`.`pmoy`),1) AS `format(avg(pmoy),1)`
from `resjour` `r14` where ((`r14`.`recdate` <= `r`.`recdate`) and (`r14`.`recdate` >= (`r`.`recdate` - 3)))) AS `pmoy3`,
(select format(avg(`r1`.`hmini`),1) AS `format(avg(hmini),1)`
from `resjour` `r1` where ((`r1`.`recdate` <= `r`.`recdate`) and (`r1`.`recdate` >= (`r`.`recdate` - 3)))) AS `hmini3`,
(select format(avg(`r2`.`hmaxi`),1) AS `format(avg(hmaxi),1)`
from `resjour` `r2` where ((`r2`.`recdate` <= `r`.`recdate`) and (`r2`.`recdate` >= (`r`.`recdate` - 3)))) AS `hmaxi3`,
(select format(avg(`r3`.`hmoy`),1) AS `format(avg(hmoy),1)`
from `resjour` `r3` where ((`r3`.`recdate` <= `r`.`recdate`) and (`r3`.`recdate` >= (`r`.`recdate` - 3)))) AS `hmoy3`
from `resjour` `r` group by 1
Désolé pour le langage ésotérique comme dirait Coulet !
Jean
Un petit exemple (MySql ou DB2 ou postgresSQL ...) ci-dessous pour les amateurs, avec une moyenne glissante sur 10 jours pour des mini maxi et moyenne à partir de recdates (timestamps formatés AAAAMMJJHHMMSS ) :
-- CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`
SQL SECURITY DEFINER VIEW `resjour10` AS select `r`.`recdate` AS `recdate`,
(select format(avg(`r1`.`tmini`),1) AS `format(avg(tmini),1)`
from `resjour` `r1` where ((`r1`.`recdate` <= `r`.`recdate`) and (`r1`.`recdate` >= (`r`.`recdate` - 10)))) AS `tmini10`,
(select format(avg(`r2`.`tmaxi`),1) AS `format(avg(tmaxi),1)`
from `resjour` `r2` where ((`r2`.`recdate` <= `r`.`recdate`) and (`r2`.`recdate` >= (`r`.`recdate` - 10)))) AS `tmaxi10`,
(select format(avg(`r3`.`tmoy`),1) AS `format(avg(tmoy),1)`
from `resjour` `r3` where ((`r3`.`recdate` <= `r`.`recdate`) and (`r3`.`recdate` >= (`r`.`recdate` - 10)))) AS `tmoy10`,
(select format(avg(`r4`.`pmoy`),1) AS `format(avg(pmoy),1)`
from `resjour` `r4` where ((`r4`.`recdate` <= `r`.`recdate`) and (`r4`.`recdate` >= (`r`.`recdate` - 10)))) AS `pmoy10`,
(select format(avg(`r1`.`hmini`),1) AS `format(avg(hmini),1)`
from `resjour` `r1` where ((`r1`.`recdate` <= `r`.`recdate`) and (`r1`.`recdate` >= (`r`.`recdate` - 10)))) AS `hmini10`,
(select format(avg(`r2`.`hmaxi`),1) AS `format(avg(hmaxi),1)`
from `resjour` `r2` where ((`r2`.`recdate` <= `r`.`recdate`) and (`r2`.`recdate` >= (`r`.`recdate` - 10)))) AS `hmaxi10`,
(select format(avg(`r3`.`hmoy`),1) AS `format(avg(hmoy),1)`
from `resjour` `r3` where ((`r3`.`recdate` <= `r`.`recdate`) and (`r3`.`recdate` >= (`r`.`recdate` - 10)))) AS `hmoy10`,
(select format(avg(`r11`.`tmini`),1) AS `format(avg(tmini),1)`
from `resjour` `r11` where ((`r11`.`recdate` <= `r`.`recdate`) and (`r11`.`recdate` >= (`r`.`recdate` - 3)))) AS `tmini3`,
(select format(avg(`r12`.`tmaxi`),1) AS `format(avg(tmaxi),1)`
from `resjour` `r12` where ((`r12`.`recdate` <= `r`.`recdate`) and (`r12`.`recdate` >= (`r`.`recdate` - 3)))) AS `tmaxi3`,
(select format(avg(`r13`.`tmoy`),1) AS `format(avg(tmoy),1)`
from `resjour` `r13` where ((`r13`.`recdate` <= `r`.`recdate`) and (`r13`.`recdate` >= (`r`.`recdate` - 3)))) AS `tmoy3`,
(select format(avg(`r14`.`pmoy`),1) AS `format(avg(pmoy),1)`
from `resjour` `r14` where ((`r14`.`recdate` <= `r`.`recdate`) and (`r14`.`recdate` >= (`r`.`recdate` - 3)))) AS `pmoy3`,
(select format(avg(`r1`.`hmini`),1) AS `format(avg(hmini),1)`
from `resjour` `r1` where ((`r1`.`recdate` <= `r`.`recdate`) and (`r1`.`recdate` >= (`r`.`recdate` - 3)))) AS `hmini3`,
(select format(avg(`r2`.`hmaxi`),1) AS `format(avg(hmaxi),1)`
from `resjour` `r2` where ((`r2`.`recdate` <= `r`.`recdate`) and (`r2`.`recdate` >= (`r`.`recdate` - 3)))) AS `hmaxi3`,
(select format(avg(`r3`.`hmoy`),1) AS `format(avg(hmoy),1)`
from `resjour` `r3` where ((`r3`.`recdate` <= `r`.`recdate`) and (`r3`.`recdate` >= (`r`.`recdate` - 3)))) AS `hmoy3`
from `resjour` `r` group by 1
Dernière modification par jturlier le ven. févr. 02, 2007 1:49 pm, modifié 1 fois.
Jean
Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR
http://meteoserignan.ddns.net

"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"
Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR
http://meteoserignan.ddns.net

"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"