Damien49 Posté(e) 6 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Partager Posté(e) 6 octobre 2017 Je suis en train d'éplucher le fichier XML de WeatherLinkIP. Pour rappel c'est ici : http://www.weatherlink.com/xml.php?user=nom_station&pass=mot_de_passe Si ça peut en intéresser j'ai compilé quelques codes récupéré ici et là : <?php $user = "meteobell";$password = "mot_de_passe"; //WeatherLink Identifiants $file = file_get_contents('http://www.weatherlink.com/xml.php?user='.$user.'&pass='.$password); $xml=simplexml_load_string($file); foreach($xml->observation_time_rfc822 as $time_tmp){} //RFC822 format foreach($xml->temp_c as $temperature){} foreach($xml->relative_humidity as $hum){} foreach($xml->dewpoint_c as $dew){} foreach($xml->pressure_mb as $press){} foreach($xml->wind_mph as $wind_tmp){} //en mph foreach($xml->wind_degrees as $dir){} foreach($xml->davis_current_observation->rain_day_in as $rain_tmp){} //en inches foreach($xml->davis_current_observation->solar_radiation as $solar){} foreach($xml->davis_current_observation->uv_index as $uv){} foreach($xml->davis_current_observation->wind_day_high_mph as $wind_day_tmp){} foreach($xml->davis_current_observation->temp_day_low_f as $tminf); foreach($xml->davis_current_observation->temp_day_high_f as $tmaxf); $wind = round($wind_tmp * 1.6093,1); $wind_day = round($wind_day_tmp * 1.6093,1); $rain = round($rain_tmp * 24.4,1); $tmax = round((5/9) * ($tmaxf - 32),1); $tmin = round((5/9) * ($tminf - 32),1); function degToCompass($dir) { $val=floor(($dir/22.5)+.5); $arr=["Nord","NNE","NE","ENE","Est","ESE", "SE", "SSE","Sud","SSO","SO","OSO","Ouest","ONO","NO","NNO"]; return $arr[($val % 16)];} ini_set("date.timezone", "Europe/Paris"); date_default_timezone_set('Europe/Paris'); //Heure été/hiver $time = strtotime($time_tmp);$date = date("d-m-Y à H:i", $time); ?> <p> Le <?php echo $date; ?> </p> <p> Température : <?php echo $temperature.' °C'; ?> </p> <p> Humidité Relative : <?php echo $hum.' %'; ?> </p> <p> Point de Rosée : <?php echo $dew.' °C'; ?> </p> <p> Pression : <?php echo $press.' hpa'; ?> </p> <p> Vent en Rafale : <?php echo $wind.' km/h'; ?> </p> <p> Direction du Vent : <?php echo degToCompass($dir).' ('.$dir.'°)'; ?> </p> <p> Précipitations du Jour : <?php echo $rain.' mm'; ?> </p> <p> Ensoleillement : <?php echo $solar.' w/m²'; ?> </p> <p> Plus Forte Rafale de Vent du Jour : <?php echo $wind_day.' km/h'; ?> </p> <p> Température Minimum du Jour (Tn) : <?php echo $tmin.' °C'; ?> </p> <p> Température Maximum du Jour (Tx) : <?php echo $tmax.' °C'; ?> </p> Mais je me demandais en fait tout simplement la différence par exemple entre temp_day_low_f temp_day_high_f et temp_in_day_low_f temp_in_day_high_f Le truc tout bête sûrement, mais là je sèche ^^ D'ailleurs si vous avez un lien vers une description de tous les paramètres du fichier XML je suis preneur (pas trouvé). Lien à poster Partager sur d’autres sites More sharing options...
seb05 Posté(e) 6 octobre 2017 Haut Champsaur - Orcières - Hameau des Tourrengs - 1280m Partager Posté(e) 6 octobre 2017 il y a une heure, Damien49 a dit : temp_day_low_f temp_day_high_f et temp_in_day_low_f temp_in_day_high_f Le truc tout bête sûrement, mais là je sèche ^^ A première vue je dirais que temp_day c'est la température extérieure et que temp_in_day c'est la température intérieure. 1 Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 6 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 6 octobre 2017 Haha mais c'est bien sûr ^^ Pas sûr que ça intéresse les gens de savoir combien il fait dans ma maison Lien à poster Partager sur d’autres sites More sharing options...
seb05 Posté(e) 6 octobre 2017 Haut Champsaur - Orcières - Hameau des Tourrengs - 1280m Partager Posté(e) 6 octobre 2017 Effectivement j'aurais un doute comme toi Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 6 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 6 octobre 2017 Bon je vais profiter du sujet pour répertorier tous les autres paramètres que je pige pas ou un peu flou <suggested_pickup><suggested_pickup_period> <pressure_in> <observation_age> <et_day><et_month><et_year> <rain_storm_in> <thsw_index_day_high_f><thsw_index_month_high_f><thsw_index_year_high_f> <wind_ten_min_avg_mph> Lien à poster Partager sur d’autres sites More sharing options...
alsavosges Posté(e) 6 octobre 2017 Goldbach-Altenbach (68) 705 m Versant Sud du Grand Ballon (1424 m) Partager Posté(e) 6 octobre 2017 Il y a 2 heures, Damien49 a dit : Mais je me demandais en fait tout simplement la différence par exemple entre : temp_day_low_f temp_day_high_f et temp_in_day_low_f temp_in_day_high_f - temp low : température mini - temp high : températures maxi Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 6 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 6 octobre 2017 Euh oui mais ça j'avais compris quand même ^^ C'est le "in" qui posait problème, mais seb05 m'a répondu. 1 Lien à poster Partager sur d’autres sites More sharing options...
clodmu Posté(e) 6 octobre 2017 Île Maurice Partager Posté(e) 6 octobre 2017 Bonjour Damien49, Si tu vas ICI tu auras tout Weathelink en français téléchargeable en PDF. 1 Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 7 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 7 octobre 2017 Il y a 8 heures, clodmu a dit : Bonjour Damien49, Si tu vas ICI tu auras tout Weathelink en français téléchargeable en PDF. Super, mais j'ai pas trouvé la description du fichier XML. Je recherche notamment aussi toutes les occurrences que peut prendre : <pressure_tendency_string> Car comme le résultat est en anglais, j'aimerais mettre une fonction str_replace pour le traduire ou le remplacer par une image. Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 7 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 7 octobre 2017 <wind_ten_min_avg_mph> est-ce que ça serait pas le vent moyen en fait (des 10 dernières minutes et en mph)? Lien à poster Partager sur d’autres sites More sharing options...
_Joel_ Posté(e) 7 octobre 2017 Belgique Partager Posté(e) 7 octobre 2017 Il y a 2 heures, Damien49 a dit : Super, mais j'ai pas trouvé la description du fichier XML. Je recherche notamment aussi toutes les occurrences que peut prendre : <pressure_tendency_string> Car comme le résultat est en anglais, j'aimerais mettre une fonction str_replace pour le traduire ou le remplacer par une image. A priori je dirais ceci : "Steady", "Rising Slowly", "Rising Rapidly", "Falling Slowly", "Falling Rapidly" mais c'est une simple supposition de ma part 1 Lien à poster Partager sur d’autres sites More sharing options...
_Joel_ Posté(e) 7 octobre 2017 Belgique Partager Posté(e) 7 octobre 2017 Il y a 23 heures, Damien49 a dit : Bon je vais profiter du sujet pour répertorier tous les autres paramètres que je pige pas ou un peu flou <et_day><et_month><et_year> <thsw_index_day_high_f><thsw_index_month_high_f><thsw_index_year_high_f> Evapotranspiration (ET) (day, month, year) Indice THSW (température ressentie ?) max en °F ? Lien à poster Partager sur d’autres sites More sharing options...
_Joel_ Posté(e) 7 octobre 2017 Belgique Partager Posté(e) 7 octobre 2017 Il y a 23 heures, Damien49 a dit : Bon je vais profiter du sujet pour répertorier tous les autres paramètres que je pige pas ou un peu flou <suggested_pickup><suggested_pickup_period> <pressure_in> <observation_age> <et_day><et_month><et_year> <rain_storm_in> <thsw_index_day_high_f><thsw_index_month_high_f><thsw_index_year_high_f> <wind_ten_min_avg_mph> <suggested_pickup>15 minutes after the hour</suggested_pickup> <suggested_pickup_period>60</suggested_pickup_period> Ca ressemble au moment et à la période idéaux pour prendre les données : à l'heure 15 toutes les 60 min ? <rain_storm_in> "in" veut dire inches (non, ce n'est pas la pluie à l'intérieur ) Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 7 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 7 octobre 2017 Super merci Joel, ça m'aide pas mal en effet. Citation Indice THSW (température ressentie ?) max en °F ? Y'a une différence avec l'humidex ? <heat_index_c> Lien à poster Partager sur d’autres sites More sharing options...
_Joel_ Posté(e) 7 octobre 2017 Belgique Partager Posté(e) 7 octobre 2017 il y a 6 minutes, Damien49 a dit : Super merci Joel, ça m'aide pas mal en effet. Y'a une différence avec l'humidex ? <heat_index_c> Je ne suis pas un grand spécialiste mais humidex = température + humidité "THSW incorpore les effets thermiques du rayonnement solaire direct et les effets de refroidissement du vent sur notre perception de la température " Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 7 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 7 octobre 2017 Ok. En tout cas vraiment une riche idée de la part de WeatherLink d'avoir mis un fichier XML à disposition. Il est en plus vraiment hyper complet. Par contre dommage d'avoir aucune explication dessus ^^ Lien à poster Partager sur d’autres sites More sharing options...
fafou Posté(e) 8 octobre 2017 Partager Posté(e) 8 octobre 2017 (modifié) En regardant de plus près ce fichier xml, je constate que les températures en fahrenheit suivantes : windchill, heat index, dew point, thsw sont arrondies à l'unité. Si vous regardez dans la fenêtre "summary" de weatherlink, ces valeurs en fahrenheit sont affichées avec une décimale. Après vérification, cette décimale est tronquée lorsque les données sont envoyées à weatherlink.com. Cela explique des différences de quelques dixième entre la température affichée dans ce fichier xml et les données affichées dans weatherlinksur le PC. Modifié 8 octobre 2017 par fafou Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 8 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 8 octobre 2017 La décimale affiché dans summary est toujours un 0. Donc je vois pas de différence entre 58°F ou 58.0°F Et ce sont des données qui de toute façon ne méritent pas un degré de précision au 10ème étant donné leur validité scientifique plus que discutable. A mon avis ça vient simplement du fait que pour l'affichage du site ils utilisent la même fonction php round($val,1), c'est donc normal qu'on se retrouve avec une virgule au 10eme sur toutes les valeurs, même si ça correspond à rien. Je fais la même chose pour mon site (voir code plus haut). Lien à poster Partager sur d’autres sites More sharing options...
fafou Posté(e) 8 octobre 2017 Partager Posté(e) 8 octobre 2017 La décimale peut être comprise entre 1 et 9. Il y a donc une différence entre 58.5 et 58.0. Si tu regardes ce champ: <temp_f>51.6</temp_f> la température en fahrenheit a une décimale. Si tu regardes les autres champs <windchill_f>, <dewpoint_f>, la valeur est toujours arrondie à un entier. Il n'y a aucune décimale contrairement à <temp_f>. Ton paramètre $température n'est pas arrondie avec round car il est égal à temp_c qui provient lui même de temp_f qui n'a pas été arrondi à l'entier inférieur ou supérieur. Ce n'est pas un pb d'affichage du site car les données sont tronquées avant d'être envoyées sur weatherlink.com. Le point où je te rejoins, c'est que q'une précision au dixième sur ce type de température ressentie n'est pas significatif. Par contre il est intéressant de le savoir pour comprendre pourquoi des valeurs que tu vas récupérer sur xml ne correspondent pas exactement à ce que tu peux lire sur weatherlink sur ton PC. Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 9 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 9 octobre 2017 Quel que soit le moment où je regarde, j'ai toujours une décimale de 0 en °F pour le Heat Index, le Wind chill ou le DewPoint. Et pour ces 3 indices, il n'y a pas de décimales sur le fichier XML en effet. On parle bien de la même chose ? Parce que je vois pas de problème perso. Lien à poster Partager sur d’autres sites More sharing options...
fafou Posté(e) 9 octobre 2017 Partager Posté(e) 9 octobre 2017 Quand je parle de weatherlink, c'est vraiment le logiciel PC. J'ai fait une capture d'écran pour m'expliquer. la capture montre une fenêtre du logiciel weatherlink avec la windows "summary" puis le fichier xml récupérer sur weatherlink.com avec la commande que tu as donnée. Sur la capture on trouve : Weatherlink summary XML capture Heat Index 9.2°C 9.4°C/49°F Wind Chill 9.4°C 8.9°C/48°F Heat Index 4.8°C 5°C/41F Si je calcule les températures en °F de ma fenêtre weatherlink summary j'obtiens 9.2 -> 48.5°F arrondi à 49°F sur la capture XML ce qui donne 9.4°C ((49-32)/1.8) 9.4 -> 48.9°F arrondi à 48°F sur la capture XML ce qui donne 8.9°C ((48-32)/1.8) 4.8 -> 40.6°F arrondi à 41°Fsur la capture XML ce qui donne 5°C ((41-32)/1.8) Pourquoi la valeur 48.9 a été arrondi à 48 au lieu de 49 alors que 48.5 a été arrondi à 49, j'en ai aucune idée. Je vois des arrondis très bizarre certaines fois sur les captures XML par rapport à la fenêtre summary. Donc mon point est de souligner que les valeurs en fahrenheit sur le fichier XML sont arrondies à l'unité par rapport aux valeurs en fahrenheit que l'on a dans le logiciel weatherlink sur cette fenêtre summary. Ce qui explique pourquoi les valeurs en °C diffèrent de quelques dixièmes de °C entre xml et weatherlink summary. Bref, j'espère avoir été un peu plus clair Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 9 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 9 octobre 2017 Ok en effet on ne parlait pas de la même chose. Bon après ce ne sont de toute façon pas des valeurs à prendre au pied de la lettre Par contre si ce que tu pointes est aussi vrai pour les valeurs plus physique, effectivement ça mérite réflexion. Lien à poster Partager sur d’autres sites More sharing options...
fafou Posté(e) 9 octobre 2017 Partager Posté(e) 9 octobre 2017 A priori, de ce que j'ai regardé, cela ne concerne pas les valeurs mesurées par les capteurs mais uniquement les températures qui sont calculées. Merci pour ton code ci-dessus, je vais l'utiliser pour récupérer les min et max journaliers, mensuels et annuels pour ma station. Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 9 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 9 octobre 2017 J'ai encore un peu amélioré mon code depuis : Si ça peut aider : <?php $user = "meteobell";$password = "mdp"; //WeatherLink Identifiants $file = file_get_contents('http://www.weatherlink.com/xml.php?user='.$user.'&pass='.$password); $xml=simplexml_load_string($file); foreach($xml->observation_time_rfc822 as $time_tmp){} //RFC822 format foreach($xml->temp_c as $temperature){} foreach($xml->relative_humidity as $hum){} foreach($xml->dewpoint_c as $dew){} foreach($xml->heat_index_c as $humidex){} foreach($xml->pressure_mb as $press){} foreach($xml->wind_mph as $wind_tmp){} //en mph foreach($xml->wind_degrees as $dir){} foreach($xml->windchill_c as $windchill){} foreach($xml->davis_current_observation->rain_day_in as $rain_tmp){} //en inches foreach($xml->davis_current_observation->rain_month_in as $rain_m_tmp){} foreach($xml->davis_current_observation->rain_year_in as $rain_y_tmp){} foreach($xml->davis_current_observation->solar_radiation as $solar){} foreach($xml->davis_current_observation->uv_index as $uv){} foreach($xml->davis_current_observation->wind_day_high_mph as $wind_day_tmp){} foreach($xml->davis_current_observation->temp_day_low_f as $tminf){} foreach($xml->davis_current_observation->temp_day_high_f as $tmaxf){} foreach($xml->davis_current_observation->wind_ten_min_avg_mph as $wind_moy_tmp){} //en mph foreach($xml->davis_current_observation->pressure_tendency_string as $press_tend){} //en mph $wind = round(floatval($wind_tmp) * 1.6093,1); $wind_day = round(floatval($wind_day_tmp) * 1.6093,1); $wind_moy = round(floatval($wind_moy_tmp) * 1.6093,1); $rain = round(floatval($rain_tmp) * 25.4,1); $rain_month = round(floatval($rain_m_tmp) * 25.4,1); $rain_year = round(floatval($rain_y_tmp) * 25.4,1); $tmax = round((5/9) * (floatval($tmaxf) - 32),1); $tmin = round((5/9) * (floatval($tminf) - 32),1); function degToCompass($dir) { $val=floor(($dir/22.5)+.5); $arr=array("Nord","NNE","NE","ENE","Est","ESE", "SE", "SSE","Sud","SSO","SO","OSO","Ouest","ONO","NO","NNO"); return $arr[($val % 16)];} function PressTendImg($press_tend) { $press_tend=str_replace("Steady","/Images/VP2/stable.png",$press_tend); $press_tend=str_replace("Falling Slowly","/Images/VP2/fleche_bas.png",$press_tend); $press_tend=str_replace("Rising Slowly","/Images/VP2/fleche_haut.png",$press_tend); $press_tend=str_replace("Falling Rapidly","/Images/VP2/fleche_bas1.png",$press_tend); $press_tend=str_replace("Rising Rapidly","/Images/VP2/fleche_haut1.png",$press_tend); return $press_tend; } function PressTendString($press_tend) { $press_tend=str_replace("Steady","Stable",$press_tend); $press_tend=str_replace("Falling Slowly","Baisse Lentement",$press_tend); $press_tend=str_replace("Rising Slowly","Augmente Lentement",$press_tend); $press_tend=str_replace("Falling Rapidly","Baisse Rapidement",$press_tend); $press_tend=str_replace("Rising Rapidly","Augmente Rapidement",$press_tend); return $press_tend; } ini_set("date.timezone", "Europe/Paris"); date_default_timezone_set('Europe/Paris'); //Heure été/hiver $time = strtotime($time_tmp);$date = date("d-m-Y à H:i", $time); ?> Le <?php echo $date; ?> Température : <?php echo $temperature.'°C'; ?> Tn : <?php echo $tmin.'°C'; ?> Tx : <?php echo $tmax.'°C'; ?> Humidité Relative : <?php echo $hum.' %'; ?> Point de Rosée : <?php echo $dew.'°C'; ?> Humidex : <?php echo $humidex.'°C'; ?> Vent en Rafale : <?php echo $wind.' km/h'; ?> Windchill : <?php echo $windchill.'°C'; ?> Vent Rafale Max du jour : <?php echo $wind_day.' km/h'; ?> Direction du vent : <?php echo degToCompass($dir);?> Vent Moyen : <?php echo $wind_moy.' km/h';?> Pression : <?php echo $press.' hpa'; ?> Tendance Pression : <img title="<?php echo PressTendString($press_tend); ?>" src="<?php echo PressTendImg($press_tend); ?>" /> Précipitations : <?php echo $rain.' mm'; ?> Mensuel : <?php echo $rain_month.' mm'; ?> Annuel : <?php echo $rain_year.' mm'; ?> Lien à poster Partager sur d’autres sites More sharing options...
Damien49 Posté(e) 12 octobre 2017 La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire) Auteur Partager Posté(e) 12 octobre 2017 J'ai toujours un doute concernant : wind_ten_min_avg_mph wind_mph Wind_mph c'est le vent en rafale instantanée, c'est à dire dans la seconde pratiquement. Dès que je fais F5 ça change de valeur. A la limite je voudrais afficher plutôt le vent en rafale sur 10mn, ça donnerait une valeur un peu plus stable et réelle, plutôt qu'un truc qui fait constamment le yoyo et donc illisible. Et c'est là que je me demande si <wind_ten_min_avg_mph> est bien en fait le vent moyen du coup. Lien à poster Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant