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.

Météo-Data

Membres
  • Compteur de contenus

    7
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Météo-Data

  1. Bonjour à tous, Ayant pris l'initiative de découvrir Grads, qui est apparement un programme assez polyvalent côté GFS, j'ai décidé de le télécharger et l'installer. Seulement à la compilation, il me fait plusieurs erreurs dans "gxX.c" et je n'ai rien trouvé en solution. Est-ce que quelqu'un a déjà eu affaire à ce problème ? Je suis sous Linux Debian et j'ai utilisé le fichier source à ce lien : http://iges.org/grads/downloads.html Merci pour votre aide, bon après-midi à vous. /emoticons/wink@2x.png 2x" width="20" height="20">
  2. Tout compte fait ça fonctionne ! C'est juste que les numéros de bases des variables du fichier GRB complet changent ... Je vais essayer de trouver une solution pour pouvoir s'y retrouver !
  3. Bonjour, Bon j'ai fais un test de la façon dont tu m'as dit Orage 33 ; j'ai essayé avec cette requête : perl get_gfs.pl data 2011120600 6 9 3 all "HGT.(10 mb|20 mb|30 mb)|TMP.(10 mb|20 mb|30 mb)" /destination Déjà à l'exécution il m'a demandé de rajouter all et des ' ou " de chaque côté. Le téléchargement s'est ensuite bien déroulé, sauf qu'à l'extraction des données avec wgrib2 il ne me trouve que HGT 10 mb et TMP 10 mb ... Ai-je encore fait une erreur ? Merci de l'aide. Nico.
  4. Bonsoir Guillaume. Personnellement, je te confirme que de combiner les 2 requêtes est impossible car j'ai essayé et je n'y suis pas arrivé ... Ce que j'ai fais au final, c'est employer la méthode spread (soit la 2ème que tu as présenté) et faire une extraction de chaque variable. Puis j'ai obtenu un résultat sous Linux grâce à PHP, comme je l'ai expliqué dans ce topic, en obtenant un seul fichier de sortie traitable sous Excel ou pour d'autres utilisation comme l'insertion MySQL : /topic/70514-wgrib2-changer-la-structure-des-fichiers-textes/'>http://forums.infoclimat.fr/topic/70514-wgrib2-changer-la-structure-des-fichiers-textes/ mais après sous Windows, à part faire tourner ce script sous EasyPHP, je ne connais pas de solution Pour le téléchargement, le mieux est avec get_gfs.pl qui est assez pratique. Bonne soirée
  5. D'accord je vais essayer de cette façon car après je vais certainement prendre plus de variables. Ah non pas cirrus, tu as dû confondre avec mon grade de nombre de post sur le forum, moi c'est Météo-Data /emoticons/tongue@2x.png 2x" width="20" height="20"> Non malheureusement je fais tout ça par console sous Linux distribution Debian qui est beaucoup plus évident pour ces manipulations, mais je suppose que ça ne doit pas être trop différent de la console sous Windows avec Cygwin ?? La modification que je cherche à apporter au fichier get_gfs.pl est tout simplement la gestion des variables et niveaux, à télécharger, par MySQL sans avoir besoin de passer par des arguments dans la ligne de commande. J'ai déjà réussi à programmer ça, sauf que je bloque à la syntaxe à adapter pour que la suite du script ne me prenne que les variables que j'ai choisi dans ma table MySQL ... Ma sortie de mon bout de code en Perl donnait ça à la place des arguments : UGRD:VGRD:TMP 300_mb:500_mb:850_mb Mais sous les conseils d'Orage 33, je vais l'adapter pour qu'elle donne ça : ABSV.(500 mb|700 mb|850 mb)|TMP.(500 mb|700 mb) Et je verrai ce que ça me donne ! Merci pour l'aide, je vous tiens au courant du résultat /emoticons/wink@2x.png 2x" width="20" height="20">. Bonne soirée !
  6. Bonsoir à tous, Après un peu de boulot côté récupération de GFS, je suis bloqué au-niveau des requêtes get_gfs.pl. J'ai déjà fais une recherche sur ce forum mais je n'ai pas trouvé de réponse à ma question ... Ma requête est par exemple : perl get_gfs.pl data 2011120406 6 9 3 UGRD:VGRD:TMP 300_mb:500_mb:850_mb /repertoire Soit Vent et Température sur les niveaux 300, 500 et 850 mb. Cependant à l'extraction des variables avec wgrib2, il ne me les trouve pas ... J'ai également essayé avec la méthode en REGEX expliquée sur la page web de la NOAA expliquant justement ce script mais rien n'y fait ... Peut-on mettre plus de 2 variables et plus de 2 niveaux dans la requête get_gfs.pl ainsi ? Merci pour votre aide. Bonne soirée.
  7. Bonjour, Ayant été confronté à ce même problème, j'ai relevé le défi en PHP. Voici ce que j'ai su obtenir ... Un peu galère et peut-être améliorable mais ça marche. J'ai une vingtaine de fichiers de variables pour une vingtaine d'échéances et mon serveur perso sous intel core i5 met environ 2s pour l'execution. <?/*fichiers de données d'entrée, sortant de wgrib2 sous ce schéma : longitude,latitude,donnée. fichiers sous ce nom : "nom-variable"."echeance"."extension" (dans mon script par exemple la CAPE à l'échéance +48h avec une extension .gfs : cape.48.gfs)fichier de sortie data.gfs sous ce schéma : echeance|longitude|latitude|variable 1|variable 2|...|variable n| */// Connexion BDD si variables en BDDmysql_connect("***","***","***");mysql_select_db("***");// Initialisation des Arrays vides$variables = array();$compo = array();// Création du array de variable (solution avec une table des variables en MySQL ; sinon un simple array des variables convient).// $variables = array($variable1);$req = mysql_query("SELECT * FROM variables");while($rep = mysql_fetch_array($req)) { $variables[] = $rep['nom']; } // Définition du run de départ, arrivée et le pas (6h à 60h par pas de 3h)$depart = 6;$fin = 60;$pas = 3;// Boucle des échéanceswhile($depart <= $fin) { // Boucle des Variables foreach($variables as $key => $value) { // Si échéance < 10, on rajoute un zéro devant if($depart < 10){$echeance = "0$depart";} else{$echeance = $depart;} // Mise en Array du fichier de données $fichier = file("/var/www/data/gfs/$value.$echeance.gfs"); // Incrémentation du Array $compo à 0 $inc = 0; // Lecture ligne par ligne du fichier de donnée foreach($fichier as $row2) { // Séparation des données $file = explode(',',$row2); // Suppression des espaces $lon = preg_replace("# #", "", $file[0]); $lat = preg_replace("# #", "", $file[1]); $val = preg_replace("# #", "", $file[2]); // Si nous sommes à la 1ère variable, alors on mets les coordonnées + valeur. Sinon on ajoute la valeur en fin de ligne. if($key == 0){$compo[$echeance][$inc] = "$lon|$lat|$val|";} else{$compo[$echeance][$inc] .= "$val|";} // On incrémente le array $compo $inc++; } } // Incrémentation de l'échéance $depart = $depart + $pas; } /*Si un print_r($compo); est fait, nous obtenons ce résultat :[06] => Array( longitude 1|latitude 1|variable 1|variable 2|...|variable n| longitude 1|latitude 2|variable 1|variable 2|...|variable n| longitude 1|latitude 3|variable 1|variable 2|...|variable n| longitude n|latitude n|variable 1|variable 2|...|variable n| etc ... );[09] => Array( longitude 1|latitude 1|variable 1|variable 2|...|variable n| longitude 1|latitude 2|variable 1|variable 2|...|variable n| longitude 1|latitude 3|variable 1|variable 2|...|variable n| longitude n|latitude n|variable 1|variable 2|...|variable n| etc ... );[0n] => Array( longitude 1|latitude 1|variable 1|variable 2|...|variable n| longitude 1|latitude 2|variable 1|variable 2|...|variable n| longitude 1|latitude 3|variable 1|variable 2|...|variable n| longitude n|latitude n|variable 1|variable 2|...|variable n| etc ... );etc ... etc ...Maintenant on créé le fichier de données*/// Création du fichier de donnée data.gfs$out = fopen("/var/www/data/gfs/data.gfs", "w");fseek($out, 0);// On introduit le schéma en 1ère ligne pour s'y retrouver (facultatif)fputs($out, "echeance|longitude|latitude|".implode("|", $variables)."|\n");// Boucle de parcours des échéancesforeach($compo as $key2 => $value2) { // Boucle d'écriture des données foreach($value2 as $key3 => $value3) { // Pour ne pas recopier chaque 1ère ligne des fichiers de sortie de wgrib2 (longitude,latitude,valeur ...) if($key3 != 0) { fputs($out, "$key2|$value3\n"); } } }// On ferme le fichier et éventuellement la BDD et c'est fini !fclose($out);mysql_close();?> Si questions n'hésitez pas. Cordialement.
×
×
  • Créer...