Forum GraphWeather

Forum d'aide GraphWeather
Nous sommes actuellement le Jeu Mars 28, 2024 3:19 pm

Le fuseau horaire est UTC+1 heure




Publier un nouveau sujet Répondre au sujet  [ 34 message(s) ]  Aller vers la page 1, 2, 3  Suivant
Auteur Message
 Sujet du message:
MessagePublié: Sam Mars 31, 2007 11:07 am 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Bonjour à tous,

J'ai installé PhpGrphweather, qui a priori fonctionne bien.
Le seul truc c'est que je me prend la tête dans la mise en page.

Est ce qu'il y'a une ame charitable pour me mettre sur la voie?

Voila ce que ca donne:
http://nuage.webnature.net:7070/meteo/graphweather.php

Et voila a quoi je souhaiterai que cela ressemble:
http://www.webnature.net/index.php?page=station

En gros je n'ai pas besoin du windspeed et du rainfall (car mes capteurs ne sont pas installés...)

Merci de votre aide ...

Ps: pour la petite histoire, je passe de Graphweather a phpgraphweather, pour une question d'OS (je n'ai plus windows sur mon serveur, même en Vmware) ;-)


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Sam Mars 31, 2007 1:34 pm 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : Lun Mars 20, 2006 11:16 am
Message(s) : 3356
Localisation : Montréal
Salut,

PhpGraphWeather n'est pas prévu pour que les graphs soient modifiés. Tu peux le faire mais il va falloir réécrire completement une partie du script, et c'est le plus difficile car il faut maitriser JPGraph et tout ce qui est placements. Si tu t'y connais un peu en php c'est faisable, faut juste y passer une matinée complète.

Antoine.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Sam Mars 31, 2007 1:35 pm 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Lol d'accord ... je vais y aller a taton (je connais un peu php), merci pour le renseignement ;-)


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Lun Avr 02, 2007 9:43 am 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Juste un autre renseignement ...

Sur le deuxième graph (pluie et vent), il y'a un axe avec la date et l'heure.
J'ai reussi a faire a peu près ce que je voulais, sauf que je n'arrive pas a mettre cet axe sous le premier graph.
Si tu as juste un indice après je me débrouillerai ...


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Lun Avr 02, 2007 10:06 am 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Il suffit de commenter cette ligne:
//$graph->xaxis->HideLabels() ;

J'ai trouvé entre temps ;-)


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Lun Avr 02, 2007 3:09 pm 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
J'ai reussi a faire ca:
http://www.webnature.net/index.php?page=station

Est ce que quelqu'un a un idée pour faire en sorte que l'image par défaut soit celle du jour?
Car si je ne remplie pas le formulaire, il n'y a pas de graph par défaut ...
Je suis un peu Hors-Sujet, mais il ne me manque pas grand chose ;-)


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Lun Avr 02, 2007 7:55 pm 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : Lun Mars 20, 2006 11:16 am
Message(s) : 3356
Localisation : Montréal
Tu dois aller modifier graphweather.php pour afficher un graph par défaut. Mais il me semblait que c'etait déjà le cas non ? dans ce passage :

Code :
if (!isset($resolution)) $resolution=4;
if (!isset($update)) $update=0;

if (isset($month)&&isset($day)&&isset($year))
{
   $start=mktime(0,0,0,$month,$day,$year);
   $stop=$start+$delta*24*3600;
}
else
{
   $sql="SELECT MAX(`timestamp`) FROM data";
   $query=mysql_query($sql);
   $list=mysql_fetch_array($query);
   if (isset($list[0])) $LAST_UPDATE=$list[0];
   else {

   echo "Empty database";
   $LAST_UPDATE=time();

   }

   $DELTA=$LAST_UPDATE-86400;

   $minutes =date("i",$DELTA);
   $seconds =date("s",$DELTA);
   $start=$DELTA-$seconds-$minutes*60;
   $stop=$LAST_UPDATE;

   $day =date("d",$start);
   $month=date("m",$start);
   $year =date("y",$start);
}


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Lun Avr 02, 2007 9:58 pm 
Hors-ligne
Membre

Inscription : Sam Sep 30, 2006 9:48 pm
Message(s) : 26
Localisation : rouen
Bonjour Tout le monde,

J'ai mis un peu de temps a voir comment fonctionner jpgraph. Mais c'est une bibliotheque qui permet de faire pas mal de truc sympa.
Je me suis donc permis de faire quelque modif sur le source mis a dispo par Titoine, et j'ai crée un nouveau script qui permet de sortir les stats annuelles.

Vous pouvez voir un resultat ici :
http://meteo.rouen.free.fr/stat.html

Si vous le souhaitez je peux vous faire parvenir ce script.

A +

Yves

_________________
http://meteo.rouen.free.fr/


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mar Avr 03, 2007 10:42 am 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
J'arrive a peu près a faire ce que je veux :p, c'est génial jpgraph!

Il me reste juste deux questions:

L'axe des températures va jusqu'a 86 °C, est ce que je peux faire en sorte qu'il ne mette que les t° min et max de la période?



EDIT : j'ai trouvé pour ca:
Et comment faire pour afficher les données courantes dans "min and max", car je souhaiterais faire comme dans Graphweather, afficher les mini, maxi et actuel ...
J'ai fait une nouvelle requete pour afficher les derniers enregistrements ....



Si quelqu'un a la solution ...

PS: si vous avez le temps ... je ne veux pas paraitre ennuyeux avec mes questions :p

Voici le résultat:http://www.webnature.net/index.php?page=station


Dernière édition par siegfried le Mar Avr 03, 2007 11:08 am, édité 1 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mar Avr 03, 2007 1:10 pm 
Hors-ligne
Membre

Inscription : Sam Sep 30, 2006 9:48 pm
Message(s) : 26
Localisation : rouen
Bonjour Siegfried,

Pour ton echelle de temp, le pb vient sans doute du fait de la courbe d'humidité.
En effet sur ton graph tu as 3 types de données sur l'axe des ordonnées (temp en °C, pression en mb, et humidite en %). Il faut utilser la commande ynaxis[n] pour la pression et l'humidté. Et la commande yaxis pour l'echelle des température.

/* Axe des ordonnées pour la température à gauche*/
$graph->yaxis->HideFirstTicklabel() ;
$graph->yaxis->SetFont(FF_COMIC,FS_NORMAL,8);
$graph->yaxis->title->SetFont(FF_COMIC,FS_NORMAL,10);
$graph->yaxis->title->SetColor('red');
$graph->yaxis->SetColor('red');
$graph->yaxis->title->Set("Température (C°)");
$graph->yaxis->title->SetMargin(10);
$graph->yaxis->SetTextLabelInterval(1);
$graph->yscale->ticks->Set($YTICK_INTERVAL+1,1);
$graph->ygrid->Show(true ,false);

/* Axe des ordonnées pour la pression a droite */
$graph->SetYScale(0,"int",$y1min-10,$y1max+10);
$graph->ynaxis[0]->SetTickSide(SIDE_LEFT);
$graph->ynaxis[0]->SetColor('lime');
$graph->ynaxis[0]->SetFont(FF_COMIC,FS_NORMAL,8);
$graph->ynaxis[0]->title->SetFont(FF_COMIC,FS_NORMAL,10);
$graph->ynaxis[0]->title->Set("Pression (hPa)");
$graph->ynaxis[0]->title->SetMargin(15);
$graph->ynaxis[0]->title->SetColor('lime');
$graph->ynaxis[0]->SetPosAbsDelta($MARGIN_MIDDLE_H1);
$graph->ynaxis[0]->SetTitleSide(SIDE_RIGHT);

/* Axe des ordonnées pour l'humidité a droite */
$graph->SetYScale(1,"int",0,100);
$graph->ynaxis[1]->SetTickSide(SIDE_RIGHT);
$graph->ynaxis[1]->SetColor('blue@0.8');
$graph->ynaxis[1]->SetFont(FF_COMIC,FS_NORMAL,8);
$graph->ynaxis[1]->title->SetFont(FF_COMIC,FS_NORMAL,10);
$graph->ynaxis[1]->title->Set("Humidité (%)");
$graph->ynaxis[1]->title->SetColor('blue@0.8');
$graph->ynaxis[1]->SetPosAbsDelta($MARGIN_MIDDLE_H1+60);
$graph->ynaxis[1]->SetTitleSide(SIDE_RIGHT);




Enfin pour determiner les min et max de la période sélectionner voila ce que j'ai ajouter dans le fichier graph.php :

.........
while ($list=mysql_fetch_array($query))
{
$y1data[$i]=$list[0];//press
$y2data[$i]=$list[1];//humi
$y3data[$i]=$list[2];//temp
$y4data[$i]=$list[3];//pt rose
$y5data[$i]=$list[4];//fact vent
$count[round($list[5])]=$count[round($list[5])]+1;//dir vent
$y6data[$i]=$list[6];//vit vent
$y7data[$i]=$list[7];//pluie


switch($MYSQL_TIMESTAMP)
{
case 0 :
$timestamp[$i]=$list[8];
break;
default: case 1:
sscanf($list[8],"%4d%2d%2d%2d%2d%2d",$a_year,$a_month,$a_day,$a_hours,$a_minutes,$a_seconds);
$timestamp[$i]=intval(mktime($a_hours,$a_minutes,$a_seconds,$a_month,$a_day,$a_year,-1));
break;
}

/* AJOUT DU CODE SUIVANT POUR AFFICHER LES MINI ET MAXI SUR LA PERIODE SELECTIONNEE */
if ($y1data[$i] > $y1max)
{
$y1max = $y1data[$i];
$y1tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y1data[$i] < $y1min)
{
$y1min = $y1data[$i];
$y1tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y2data[$i] > $y2max)
{
$y2max = $y2data[$i];
$y2tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y2data[$i] < $y2min)
{
$y2min = $y2data[$i];
$y2tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y3data[$i] > $y3max)
{
$y3max = $y3data[$i];
$y3tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y3data[$i] < $y3min)
{
$y3min = $y3data[$i];
$y3tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y4data[$i] > $y4max)
{
$y4max = $y4data[$i];
$y4tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y4data[$i] < $y4min)
{
$y4min = $y4data[$i];
$y4tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y6data[$i] > $y6max)
{
$y6max = $y6data[$i];
$y6tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y6data[$i] < $y6min)
{
$y6min = $y6data[$i];
$y6tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y7data[$i] > $y7max)
{
$y7max = $y7data[$i];
$y7tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y7data[$i] < $y7min)
{
$y7min = $y7data[$i];
$y7tmin =date("H:i d/m",$timestamp[$i]);
}

$i++;
}


.......
/* FIN AJOUT DU CODE SUIVANT POUR AFFICHER LES MINI ET MAXI SUR LA PERIODE SELECTIONNEE */




.......

/* AFFICHAGE DES RESULTATS */

$MINMAX=sprintf(" .::: Min / Max :::.n");
$MINMAX.=$char_width;
$MINMAX.= sprintf("Pression : %.1f (%s) / %.1f (%s)n",$y1min,$y1tmin,$y1max,$y1tmax);
$MINMAX.=sprintf("Humidité : %d (%s) / %d (%s)n",$y2min,$y2tmin,$y2max,$y2tmax);
$MINMAX.=sprintf("Température : %.1f (%s) / %.1f (%s)n",$y3min,$y3tmin,$y3max,$y3tmax);
$MINMAX.=sprintf("Point de rosé : %.1f (%s) / %.1f (%s)n",$y4min,$y4tmin,$y4max,$y4tmax);
$MINMAX.=sprintf("Facteur de vent : %.1f / %.1f n",$y5min,$y5max);
$MINMAX.=sprintf("Vent Max : %.1f km/hn",$y6max);
$MINMAX.=sprintf("Total pluie : %.1f mmn",$total_rainfall);

.........


Voila si tu as des questions n'hesite pas.

Au fait ton site est super chouette , son look est vraiment bien.

A +

Yves

_________________
http://meteo.rouen.free.fr/


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mar Avr 03, 2007 1:37 pm 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Bonjour Yves,

Merci pour toutes ces infos!
Je vais m'y atteler et je posterai le résultat


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mar Avr 03, 2007 3:29 pm 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Super pour ynaxis[n] ... le résultat est impeccable.

Par contre j'ai toujours le même soucis pour la température ... je cherche.
Je vais quand meme faire une recherche dans ma base SQL pour voir si il n'y a pas eu un bug dans les températures ...
Edit: pas de données éronnées dans la base ... je ne comprend pas ... mais je cherche activement :-)


Dernière édition par siegfried le Mar Avr 03, 2007 5:11 pm, édité 1 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mar Avr 03, 2007 8:34 pm 
Hors-ligne
Membre

Inscription : Sam Sep 30, 2006 9:48 pm
Message(s) : 26
Localisation : rouen
Re,

Pour moi ton problème vient de la definition de l'echelle de l'axe Yaxis.
Verifie la ligne qui fait réference à : SetYscale

Il faut indiquer les valeurs min et max de ton axe. Par exemple quelque chose de ce type la :

$graph->SetYScale(0,"int",$y1min-10,$y1max+10);

_________________
http://meteo.rouen.free.fr/


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mar Avr 03, 2007 9:36 pm 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
Merci Yves de ton aide :p


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: Mer Avr 04, 2007 8:49 am 
Hors-ligne
Membre

Inscription : Lun Juil 31, 2006 1:08 pm
Message(s) : 44
J'ai mis ca:

$graph->SetScale("lin",$y3min-10,$y3max+10,$_GET['start'],$_GET['stop']);

Ca m'a l'air d'être ok...

J'ai pris la variable y3mxx qui correspond à la température.

J'ai aussi fait un bout de code pour traduire les champs "tendency" et "forecast".

Vous pouvez vois le résultat ici:

http://www.webnature.net/ en cliquant sur le lien Météo (car j'ai fait en sorte qu'il soit dynamique pour le timestamp) :-)


Dernière édition par siegfried le Mer Avr 04, 2007 4:30 pm, édité 1 fois.

Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 34 message(s) ]  Aller vers la page 1, 2, 3  Suivant

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
cron
POWERED_BY
Traduction et support en françaisHébergement de site