Aller au contenu

Ce tchat, hébergé sur une plateforme indépendante d'Infoclimat, est géré et modéré par une équipe autonome, sans lien avec l'Association.
Un compte séparé du site et du forum d'Infoclimat est nécessaire pour s'y connecter.

ZHB

Membres
  • Compteur de contenus

    385
  • Inscription

  • Dernière visite

Tout ce qui a été posté par ZHB

  1. Arf, j'ai retrouvé la réponse à ma question. Il suffit de faire ceci : wgrib2 fichier.grb2 -match_inv > output.txt Bonjour, Je reviens vers vous parce que je ne me souviens plus quelles commandes à executer pour récupérer la listes des paramètres pouvant être extraits avec wgrib2. J'ai réussi à perdre le fichier ou j'avais tout indiqué et ça fais maintenant bien 1 heure que je cherche sur le net en vain. Il y avait en effet moyen de générer un fichier contenant tout ces paramètres à partir des fichiers grib. Ces paramètres étaient en partie composé de comme ceci : "(:PRMSL:mean sea level:)", "(:TMAX:2 m above ground:)", etc. et sont à extraire avec egrep. Merci beaucoup à celui qui pourra m'indiquer à nouveau comment générer ce fichier, Vince
  2. Salut, Très belle réalisation, avec des informations bien présentées un design agréable et une navigation facile. Quant à l'application Android/Iphone j'ai regardé les captures d'écran et je la téléchargerai sans hésiter si j'habitais dans le coin. Vince
  3. Oui, c'est fort probable pour les températures. J'avoue que je suis encore en phase de réglages, faut que je trouve un bon compromis. J'espère corriger ces détails prochainement. En tout cas merci pour ta remarque !
  4. Salut, Oulah non, ce n'est pas moi qui les fait "à la main" ; ce serait impossible pour toutes les localités. Il s'agit de prévisions établies automatiquement à l'aide du modèle wrf-nmm, donc moi j'interviens au niveau de l'interprétation des résultats.
  5. Bonjour, Je vous informe de la présence d'un concours de photographies sur le site prevision-meteo.ch vous permettant de gagner deux abonnements d'une année à la revue "Météo Magazine". Pour participer au concours il suffit d'ajouter une photo à la galerie d'ici au 17 janvier ou alors de l'envoyer par e-mail. Plus d'informations ici : http://www.prevision-meteo.ch/concours ------------------------------------------------------------------------------------------------------------------------ Après plusieurs mois de développement je vous présente mon nouveau site météo. Celui-ci remplace le site meteoromandie . ch que j'ai réalisé en 2008. Vous trouverez sur cette nouvelle version du site de Météo pour la Suisse, France et Belgique : des prévisions à la base pour la Suisse mais également pour la Belgique et la France sous forme de carte nationales, par régions ou par localités. des prévisions plus spécialisées (pollens, vents, coupes, etc.) de nombreuses observations synop principalement pour la Suisse sous forme de relevés horaires/journaliers/mensuels/annuels des cartes réalisées à partir de ces synop centrés sur la Suisse des dossiers sur le temps passé par exemple un almanach complet des ères géologiques à nos jours une galerie photo et encore quelques autres rubriques... Vous notterez que je n'ai pas tout terminé sur le site, il reste donc des liens qui ne fonctionne pas ou éventuellement des erreurs que je corrigerai au fil du temps. Je suis preneur de toutes remarques aussi bien positives que négatives.Cordialement Vince
  6. Bonjour, J'ai modifié l'adresse de récupération de mon fichier pour la stations de St-Triphon en Suisse. La nouvelle adresse se trouve ici : http://www.prevision-meteo.ch/uploads/weatherlink/st_triphon.txt Je vous remercie par avance pour la modification, Cordialement Vince
  7. Hum, effectivement j'aurais pu mettre tout ça dans la table t_correspondre mais c'étais pour ne pas avoir un champs t_min, t_max, temps_matin, temps_apres-midi, bref pour éviter de répéter les champs et me laisser plus de souplesse. Cependant ta solution est aussi bonne. Il n'a pas encore appris le PHP ni le SQL, mais rien n'empêche de le faire en lui expliquant les principes, c'est plus pour rendre service et qu'il ait qqch de fonctionnel et pratique pour réaliser ses prévisions. Pour la suite je continuerai un peu demain /emoticons/smile@2x.png 2x" width="20" height="20">
  8. Hum, pour ma part je partirai sur une solution un peu différente. Je pense que que c'est se compliquer à la réalisation et à la maintenance de réaliser 1 table par échéance. Je te propose une solution avec 3 tables différentes : t_ville, t_prevision, t_prevision_detail. La table t_prevision serait la table principale contenant les prévisions. J'entends par la que chaque envoi du formulaire ajouterai 1 enregistrement dans la table comprenant les prévisions pour les villes désirées avec le détail du type de temps. La table t_ville serait la table contenant les différentes villes pour lesquelles réaliser les prévisions. La table t_prevision_detail serait la table contenant les détails de la prévision pour chaque ville (température, temps prévu, vent, etc.). Voilà pour le principe. Maintenant si on transpose ce raisonnement en MCD (modèle conceptuel des données) puis MLD (modèle logique des données) on va obtenir quelque chose du genre ; tu remarquera qu'au final une nouvelle table t_correspondre est ajoutée pour le bon fonctionnement du tout. Cette table t_correspondre permet de faire le lien entre la prévision du jour enregistrée dans la table t_prevision et les prévisions pour différentes villes (une prévision étant composée de plusieures villes). Ainsi on évite une redondance des données enregistrées pour chaque prévision. Le champs cor_quand permettra quant à lui de définir si la prévision est effectuée pour le matin, l'aprè-midi ou alors la journée complète. Ceci fait il faut maintenant créer tout ça dans la base de données. Ci-dessous la requête SQL nécessaire générée avec MySQLWorkbench : SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;USE `mydb` ;-- ------------------------------------------------------- Table `mydb`.`t_prevision`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `mydb`.`t_prevision` (`id_prevision` SMALLINT NOT NULL AUTO_INCREMENT ,`pre_date` DATE NOT NULL ,`pre_limite_stratus` INT(4) UNSIGNED NULL ,`pre_indice_confiance` ENUM('Très faible', 'Faible', 'Normal', 'Elevé', 'Très élevé') NOT NULL ,`pre_date_maj` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,`pre_autheur` VARCHAR(35) NULL ,PRIMARY KEY (`id_prevision`) )ENGINE = InnoDB;-- ------------------------------------------------------- Table `mydb`.`t_ville`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `mydb`.`t_ville` (`id_ville` SMALLINT NOT NULL AUTO_INCREMENT ,`vil_nom` VARCHAR(85) NOT NULL ,`vil_latitude` DECIMAL(7,4) NOT NULL ,`vil_longitude` DECIMAL(7,4) NOT NULL ,PRIMARY KEY (`id_ville`) )ENGINE = InnoDB;-- ------------------------------------------------------- Table `mydb`.`t_prevision_detail`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `mydb`.`t_prevision_detail` (`id_prevision_detail` SMALLINT NOT NULL AUTO_INCREMENT ,`predet_temperature` SMALLINT(3) NOT NULL ,`predet_temps` VARCHAR(25) NOT NULL ,`predet_force_vent` SMALLINT(3) UNSIGNED NULL ,`predet_dir_vent` ENUM('N', 'NE', 'E', 'SE', 'S', 'SO', 'O', 'NO') NULL ,`idx_ville` SMALLINT NOT NULL ,PRIMARY KEY (`id_prevision_detail`, `idx_ville`) ,INDEX `fk_t_prevision_detail_t_ville1` (`idx_ville` ASC) ,CONSTRAINT `fk_t_prevision_detail_t_ville1`FOREIGN KEY (`idx_ville` )REFERENCES `mydb`.`t_ville` (`id_ville` )ON DELETE NO ACTIONON UPDATE NO ACTION)ENGINE = InnoDB;-- ------------------------------------------------------- Table `mydb`.`t_correspondre`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `mydb`.`t_correspondre` (`idx_prevision` SMALLINT NOT NULL ,`idx_ville` SMALLINT NOT NULL ,`cor_quand` ENUM('Matin', 'Après-midi', 'Journée') NOT NULL ,PRIMARY KEY (`idx_prevision`, `idx_ville`) ,INDEX `fk_t_prevision_has_t_ville_t_ville1` (`idx_ville` ASC) ,INDEX `fk_t_prevision_has_t_ville_t_prevision` (`idx_prevision` ASC) ,CONSTRAINT `fk_t_prevision_has_t_ville_t_prevision`FOREIGN KEY (`idx_prevision` )REFERENCES `mydb`.`t_prevision` (`id_prevision` )ON DELETE NO ACTIONON UPDATE NO ACTION,CONSTRAINT `fk_t_prevision_has_t_ville_t_ville1`FOREIGN KEY (`idx_ville` )REFERENCES `mydb`.`t_ville` (`id_ville` )ON DELETE NO ACTIONON UPDATE NO ACTION)ENGINE = InnoDB;SET SQL_MODE=@OLD_SQL_MODE;SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; Maintenant que la base de données est réalisée il faut créer les formulaires HTML permettant de mettre à jour les prévisions. Je pense que le plus simple est de créer 2 formulaires ; le premier étant le formulaire permettant de choisir l'échéance de la prévision et renvoyant sur le formulaire permettant de définir le temps prévu. Le premier formulaire sera par conséquent le plus simple à réaliser puisqu'il se composera uniquement d'une liste déroulante permettant de sélectionner la date de prévision voulue. Le second formulaire un poil plus compliqué permettra de compléter les autres champs définis dans la base de données.
  9. Hello, Je t'ai complètement oublié... Pour commencer est-ce que tu peux me dire ce que tu veux afficher sur tes cartes de prévision ? température matin ? température après-midi ? temps matin, temps après-midi, vent ?, limite du zéro degré ? etc, etc, etc...
  10. Des températures supérieures à 30°C pendant 10 jours c'est arrivé surtout en 2006 il me semble avec 18 jours. Depuis 2003 je n'ai pas trouvé d'autre suite avec des températures > 30°C pendant plus de 10 jours. Quoi qu'il en soit je n'ai pas assez de relevés pour pouvoir constater cette tendance mais c'est vrai qu'avec ce que j'ai ça va plus sur le chaud en tout cas pour Sion.
  11. Je ferais comme ceci pour le fonctionnement principal : // date actuelle plus grande que date de mise à jour + durée du cache ?// détermier le type de fichier source (jpg, png, gif) ?// création du nouvelle image en fonction du format récupéré avec imagecreatefromXXX()// récupérer la couleur du pixel au point x, y donné avec imagecolorat()// Est-ce que l'image est en truecolor ? avec imageistruecolor() et en fonction du résultat récupérer les composantes r, g et b// construction du fichier de dernière mise à jour contenant les composantes déterminées et la date actuelle// appel de l'image créée avec PHP (avec balise en lui passant les paramètres de couleur, Pour le dernier point (appel de l'image créée avec PHP je ferai ceci : // récupération des couleurs passées en paraètre avec $_GET// détermination du niveau de vigilance selon la couleur par rapport à celle de Météo France// création d'une nouvelle image avec imagecreatefromXXX() (image de fond que l'on va remplir selon la couleur de la vigilance// définition des niveaux de couleurs désirés avec ImageColorAllocate()// selon le niveau de vigilance déterminé précédement remplissage de l'image de fond avec ImageFillToBorder()// ajout de la date de dernière mise à jour avec imagestring() Voilà pour un début, essaye de prendre point par point et de regarder comment tu pourrai faire ; je t'aiderai au fur et à mesure quand j'ai du temps.
  12. Salut, Tu peux très facilement le faire en récupérant sur l'image source (http://france.meteofrance.com/generated/integration/img/vigilance/fr.gif) les couleurs rgb d'un pixel se situant sur le département souhaité. Ensuite une fois que tu as la couleurs correspondant au niveau de vigilance tu peux remplir avec cette couleur (ou une différente selon ce que tu veux) une carte représentant ton département comme celle de la vigilance crue par exemple.
  13. Salut, Je n'y connais rien au méthodes de calcul mais tu trouvera peut être 1-2 éléments de réponse ici (il parlent nottement de la technique d'analyse "peak over threshold (POT)" : http://www.meteosuisse.admin.ch/web/en/research/completed_projects/nccr_climate_ii/returnperiod.html http://www.meteosuisse.admin.ch/web/fr/climat/climat_en_suisse/extremes_du_climat.html
  14. Ah, j'allais justement le signaler. Il y a maintenant même les données horaires enfin pour l'instant celle de 10UTC qui ne sont plus relevés.
  15. Ici ciel majoritairement voilé. Le foehn se renforce actuellement et la température monte en flèche....il fait actuellement 26.8°C !
  16. ZHB

    Installation VP2...

    Pour le scellement beton c'est pas forcément un problème à démonter, pas besoin d'en mettre 1 tonne. Après c'est cerain que ça mettra un peu plus de temps à démonter qu'une solution avec poteau directement dans la terre. Pour ma part j'ai fais un trou pas trop gros ni trop petit pour le scellement. J'ai ensuite ajouté un de ces gros tubes en plastique utilisé pour les canalisations que j'ai placé au centre à la verticale en essayant de le mttre le plus verticalement possible justement (je l'ai callé avec des pierres). Ensuite j'ai ajouté du beton autour et j'ai attendu que ça prenne. Pour finir j'ai placé le mat dans ce tuyeau en m'assurant qu'il soit bien vertical et j'ai coulé le reste de beton dedans.
  17. C'est assez logique, lors de l'installation il faut aligner la girouette avec le nord (configuration d'usine), donc si la vis n'est pas assez serrée la girouette tournera plus que la bague surlaquelle elle est fixée, un décalage de plusieurs degrés se fera et par conséquent la girouette sera alignée avec le vent mais tu n'aura pas la vraie direction sur ta console. Pour réaligner le tout tu peux suivre les instructions qui se trouvent page 28 : http://www.weathershop.com/manuals/6152_vp2_iss.pdf
  18. ZHB

    Thermo-hygrographe

    Merci à vous deux pour ces réponses. Effectivement pour les cheveux j'avais pas pensé au gras, mais malheureusement ils sont tous coupés... J'essayerai de les laver et de remettre tout ça (pour le fabricant je sais pas du tout qui c'est il n'y a pas d'inscription visible ou alors j'ai mal regardé) ; c'est plus pour essayer d'avoir qqch qui fonctionne à peu près plutot que d'avoir qqch de cassé au fond d'un placard. Sinon pas besoin de pile, il est mécanique !
  19. Bonjour, J'ai fais l'aquisition il y a quelques années d'un thermo-hygrographe sur ebay. Celui-ci semble fonctionner correctement (je dois quand même remettre des cheveux pour la partie hygrometrie) mais je ne sais pas comment utiliser la partie écrivant sur le papier. Sur ce lien : http://fr.wikipedia.org/wiki/Thermo-hygrographe il est marqué que le tracé se fait avec 2 stylos. Savez-vous ce qui est entendu par stylo ?? L'embout ressemble à un embout fonctionnement avec de l'encre mais je doute que ce soit ce qu'il faut. Voici la partie en question : Si vous avez des pistes pour son utilisation je suis volontiers preneur ! Merci
  20. A toi de juger ; Rainy Days reprends les mêmes données que meteox donc une màj toutes les 15 minutes. Ok c'est pas optimal mais l'application est simple et efficace, de plus elle affiche les précipitations sur l'Euopre, Amérique du Nord/Sud. Te toute façon tu peux l'essayer elle est gratuite pour sa version avec un bandeu publicitaire. Quant à Radar Météo pour l'Est de la france et la Suisse il s'agit de cette image, donc màj toutes les 10 minutes : http://www.landi.ch/meteo/fra/niederschlagsradar_20325.aspx (aussi gratuit) Dans le même genre il y a aussi "sat24.com - realtime satellite" pour les images satellites.
  21. Salut, Il y a Rainy Days, qui reprend apparement les mêmes sources que meteox, et pour l'est de la France et la Suisse l'application Radar Météo.
  22. Salut, J'ai fais il y a peu quelque chose de similaire à ce que tu veux faire. Tu dis disposer d'un capteur de rayonnement solaire donc pour la couverture nuageuse je pense que tu ne pourra pas faire autrement qu'avec ce paramètre. Comme on te l'a dit l'idéal serai d'avoir un capteur de précipitations afin de savoir quand il pleut. Pour déterminer l'état du ciel il va falloir que tu fasse une différence entre la courbe théorique d'ensoleillement maximum en fonction de la latitude, longitude, date et heure et ta courbe réelle d'ensoleillement (celle du capteur). L'inconvénient de cette méthode c'est que tu pourra pas faire de prévisions pour la nuit... En ayant fait quelques tests, j'ai obtenu d'assez bons résultats avec ces valeurs : Différence entre la courbe "théorique" et "prévue" - état du ciel >75% - Très nuageux Entre 50% et 75% - Nuageux Entre 20% et 50% - Eclaircies Entre 10% et 20% - Quelques passages nuageux <10% - Ensoleillé. Après il faut que tu essaye d'adapter en fonction de ce que tu observes. Pour le calcul de l'ensoleillement théorique qu'il devrait y avoir j'ai fais ceci en PHP : //calcul du rayonnement solaire en fonction de l'heure et de la date définie public function getTheoricalRadiation() { // Récupération de la date à la quelle doit être calculé l'ensoleillement $strDate = $this->forecastDate; $timestamp = strtotime($strDate); $intN = date('z', $timestamp); // jours dans l'année de la prévision $intYear = date('Y', $timestamp); //A full numeric representation of a year, 4 digits $chrMonth = date('n', $timestamp); // Numeric representation of a month, without leading zeros $chrDay = date('j', $timestamp); // Day of the month without leading zeros // Récupération de l'heure à la quelle doit être calculé l'ensoleillement $strHour = $this->forecastHour; $intHour = explode(':', $strHour); $chrHour = $intHour[0]; $chrMin = 0; $chrSec = 0; // number of days in a month $tab_ucharMonthDays = array(0,31,28,31,30,31,30,31,31,30,31,30); //Parcour le tableau qui contient le nombre de jour/mois for($i=0, $ulngNbDay = $chrDay; $i < $chrMonth; $i++) { //incrémente le nombre de jour $ulngNbDay += $tab_ucharMonthDays[$i]; } // année bissextile ? if(($intYear % 4 == 0) && (($intYear % 400 == 0) OR ($intYear != 100))) { $ulngNbDay++; } // donne la date Julian $dblHour = $chrHour + $chrMin / 60 + $chrSec / 3600; //trunc value $intLeap = intval((($intYear-1949)/4)); $dblJD = floatval(32916.5) + ((floatval($intYear-1949))* 365) + floatval($intLeap) + floatval($ulngNbDay) + (floatval($chrHour) /24); // The inout to the Atronomer's almanach is the difference between the Julian date and JD 2451545.0 (noon, 1 January 2000) $dblTime = $dblJD - 51545; // coordonnee Ecliptique // Mean longitude $dblMeanLong = 280.460 + (0.9856474 * $dblTime); $dblMeanLong = $dblMeanLong - floatval((360*(intval($dblMeanLong/360)))); if($dblMeanLong < 0) { $dblMeanLong += 360; } // Mean anomaly $dblMeanAnom = 357.528 + (0.9856003 * $dblTime); $dblMeanAnom = $dblMeanAnom - floatval((360*intval(($dblMeanAnom/360)))); if($dblMeanAnom < 0) { $dblMeanAnom += 360; } $dblMeanAnom *= DEG_2_RAD; //Ecliptic longitude and obliquity of ecliptic $dblEclipLong = $dblMeanLong + 1.915 * sin($dblMeanAnom) + 0.020 * sin(2*$dblMeanAnom); $dblEclipLong = $dblEclipLong - floatval((360*intval(($dblEclipLong/360)))); if($dblEclipLong < 0) { $dblEclipLong += 360; } $dblObliqEcli = 23.429 - 0.0000004 * $dblTime; $dblEclipLong *= DEG_2_RAD; $dblObliqEcli *= DEG_2_RAD; // Celestial coordinates // Right ascension and declinaton $dblNum = cos($dblObliqEcli) * sin($dblEclipLong); $dblDen = cos($dblEclipLong); $dblRa = atan($dblNum / $dblDen); if($dblDen < 0) { $dblRa += M_PI; } if(($dblDen >= 0) && ($dblNum < 0)) { $dblRa += TWO_PI; } $dblDec = asin(sin($dblObliqEcli) * sin($dblEclipLong)); //Local coordinates //Greenwich mean sidera time $dblGmst = 6.697375 + (0.0657098242 * $dblTime) + $chrHour; $dblGmst = $dblGmst - (24*intval(($dblGmst/24))); if($dblGmst < 0) { $dblGmst += 24; } //local mean sideral time $dblLmst = $dblGmst + (CST_FCST_LONGITUDE / 15); $dblLmst = $dblLmst - (24*intval(($dblLmst/24))); if($dblLmst < 0) { $dblLmst += 24; } $dblLmst *= 15*DEG_2_RAD; //Hour angle $dblHourAngle = $dblLmst - $dblRa; if($dblHourAngle < -M_PI) { $dblHourAngle += TWO_PI; } if($dblHourAngle > -M_PI) { $dblHourAngle -= TWO_PI; } //Latitude to radians $dblLatitude = CST_FCST_LATITUDE*DEG_2_RAD; //Azimuth and elevation $dblElevation = asin(sin($dblDec) * sin($dblLatitude) + cos($dblDec) * cos($dblLatitude) * cos($dblHourAngle)); $dblAzimuth = asin(-cos($dblDec) * sin($dblHourAngle) / cos($dblElevation)); $dblElevation_c = asin(sin($dblDec) / sin($dblLatitude)); if($dblElevation >= $dblElevation_c) { $dblAzimuth -= M_PI; } if(($dblElevation >= $dblElevation_c) && ($dblHourAngle > 0)) { $dblAzimuth += TWO_PI; } $dblElevation /= DEG_2_RAD; $dblAzimuth /= DEG_2_RAD; $dblLatitude /= DEG_2_RAD; // angle complémentaire $z = 90 - $dblElevation; //conversion en radian $z = deg2rad($z); //calcul de l'intensité globale $Iglobal = 1000 * cos($z); return $Iglobal; } //end getTheoricalRadiation Pour les constantes utilisées : ################ [calcul angle solaire] ################define('CST_FCST_LATITUDE', 46.521); // Latitude de la prévisiondefine('CST_FCST_LONGITUDE', 6.567); // Longitude de la prévisiondefine('TWO_PI', 2 * M_PI);define('DEG_2_RAD', M_PI / 180); Note : On considère 1000 comme maximum pouvant être atteint en intensité de rayonnement sous nos latitude, c'est pour ça qu'il y a ce 1000 à l'avant dernière ligne.
  23. ZHB

    Le topic du modèle WRF

    Ok, je pensais que ça mettrai plus de temps, c'est raisonable je trouve. Tu fais tourner ton modèle sur quelle config ? Pour les cartes il te suffit de regarder la source des cartes que ton contact à réalsé et comprendre ce qu'il à fait. Pour chaque commande regarde la description dans le manuel par exemple : http://www.iges.org/grads/gadoc/commandsatt.html
  24. ZHB

    Le topic du modèle WRF

    T'as déjà lancé le run ? parce qu'avec une maille de 1.2km ça doit en mettre du temps non ?
  25. Salut, J'ai commencé mais je n'ai effectivement pas beaucoup de temps pour avancer rapidement Qu'est-ce que tu as fais jusqu'à maintenant ? quels sont les problèmes ?
×
×
  • Créer...