Le rain_total.

Répondre
DiliaK
Membre
Messages : 57
Inscription : mar. mai 01, 2007 6:25 pm

Message par DiliaK »

Salut à tous,

J'avais un rain_total de plus de 480mm, en fait, je n'avais jamais réinitialisé cette donnée dans ma ws2300.
Pour exploiter les jauges de Yves, j'ai voulu utiliser rain_total en vue de le remettre à zéro tous les mois pour obtenir la mesure sur le mois.
J'ai donc mis mon rain_total à zero grace à un fichier cron (open2300 powah :) ).

C'est la catastrophe. Les données sont traitées en négatif et je me retrouve avec du -468mm. Exemple:

http://www.diliak.net/meteo/graphweathe ... 07&delta=1

Je pense qu'il faut revoir complètement la façon de calculer le niveau de pluie pour éviter de travailler avec le rain_total; rain_total étant amené à être remis à zéro. N'étant pas un pro du php ...

Je précise que je récupère les données dans une base sql.
Pat.
Il faut être con pour vivre avec les cons. J'ai essayé, on peut.
San Antonio.
La météo à Villeurbanne
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Message par TiToine »

Salut,

Il faudrait regarder où le cumule des précipitations est calculé.

Code : Tout sélectionner

$total_rainfall=$y7data[count($y7data)-1]-$y7data[0];
for($i=0;$i<count($y7data)-1;$i++)
{
	$y7data[$i]=$y7data[$i+1]-$y7data[$i];
}
$y7data[count($y7data)-1]=$y7data[count($y7data)-2]; //last value
Un essai de correction...en fait de réécriture complète de la boucle car elle était vraiment moche :

Code : Tout sélectionner

$total_rainfall=0;
for($i=count($y7data)-1;$i!=1;$i--)
{
	$y7data[$i]=$y7data[$i]-$y7data[$i-1];
        if ($y7data[$i]<0) $y7data[$i]=0;    // Le cas ou il y a eu une remise à zéro
        $total_rainfall += $y7data[$i];        // On cumule le relatif
}
$y7data[0]=0; // Valeur inconnue
Antoine.
DiliaK
Membre
Messages : 57
Inscription : mar. mai 01, 2007 6:25 pm

Message par DiliaK »

Je teste de suite Titoine ;)

Bon, ça a l'air effectivement mieux mais c'est pas encore ça.
N'y connaissant pas grand chose, je vois que le calcul fait une sorte de différence par rapport aux données stockées. C'est pour ça que dans le premier code en remettant à zero on partait dans les négatifs.
Maintenant ce n'est plus le cas mais si on prend des données sur plusieurs jours, le calcul va tenir compte du rain_total antérieur. La preuve en image :

http://www.diliak.net/meteo/graphweathe ... 7&delta=20

Le calcul n'est pas si simple que ça :P

De plus, si je vais à une date antérieure aux données, je n'ai plus le "jpgraph error".

Si on prend sur une journée, on retrouve un pic du rain_total antérieur à la remise à zero.

http://www.diliak.net/meteo/graphweathe ... 07&delta=1
http://www.diliak.net/meteo/graphweathe ... 07&delta=1
http://www.diliak.net/meteo/graphweathe ... 07&delta=1
Dernière modification par DiliaK le sam. mai 19, 2007 10:36 am, modifié 1 fois.
Pat.
Il faut être con pour vivre avec les cons. J'ai essayé, on peut.
San Antonio.
La météo à Villeurbanne
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Message par TiToine »

En fait il faudrait ajouter un test, je ne sais pas si ca vient de la mais on ne sait jamais, en plus j'ai fais une erreur dans les indices tssss :D :

Code : Tout sélectionner

$total_rainfall=0;
for($i=count($y7data)-1;$i>0;$i--)
{
   $y7data[$i]=$y7data[$i]-$y7data[$i-1];
   if ($y7data[$i]<0) $y7data[$i]=0;    // Le cas ou il y a eu une remise à zéro
   $total_rainfall += $y7data[$i];        // On cumule le relatif
}
if(count($y7data)>=1) $y7data[0]=0; // Valeur inconnue
DiliaK
Membre
Messages : 57
Inscription : mar. mai 01, 2007 6:25 pm

Message par DiliaK »

Je teste ça demain matin ;)

Bon, alors il n'y a plus les résidus comme précédemment. Par contre si on prend sur plusieurs jours avant une remise à zéro, ça cumule quand même le rain_total. Et à priori quand on prend à cheval sur une fin de mois, ça crée deux courbes :

http://www.diliak.net/meteo/graphweathe ... 7&delta=20
http://www.diliak.net/meteo/graphweathe ... 7&delta=20
Dernière modification par DiliaK le dim. mai 20, 2007 10:21 am, modifié 1 fois.
Pat.
Il faut être con pour vivre avec les cons. J'ai essayé, on peut.
San Antonio.
La météo à Villeurbanne
DiliaK
Membre
Messages : 57
Inscription : mar. mai 01, 2007 6:25 pm

Message par DiliaK »

Bon, à priori ça fonctionne mais si on sélectionne trop de jours, le script perd la boule et il apparait des données parasites; comme par exemple le rain_total d'avant la remise à zéro.
Comment "ralentir" le calcul ? :P
Pat.
Il faut être con pour vivre avec les cons. J'ai essayé, on peut.
San Antonio.
La météo à Villeurbanne
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Message par TiToine »

Sur 20 jours, le script doit utiliser la base intermediaire car sinon le graph est trop long a générer. Il faudrait que tu regardes les valeurs des précipitations absolues dans la base de données des moyennes voir si elles sont cohérentes.
Répondre