Leg2027 Posté(e) 1 juillet 2022 Auteur Partager Posté(e) 1 juillet 2022 (modifié) Le 29/06/2022 à 20:33, _sb a dit : désolé pour le temps et l'énergie que tu as dépensé Ca serait plutôt à moi de m'excuser, c'est moi qui demande de l'aide ici ☺️ Mais j'ai réussi à faire quelques petites choses un peu meilleures aujourd'hui et hier. J'ai réussi à créer un exécutable get_grib.exe, mais je ne sais pas s'il fonctionne, je ne suis vraiment pas à l'aise avec le terminal. J'ai vu que l'outil CDO fonctionnait aussi mais uniquement avec des fichiers .nc (j'ai pris un fichier au hasard pour tester): AzureAD+ordi2113604@PNL-R9131HLL /bin $ cdo sinfov meteo.nc File format : NetCDF4 -1 : Institut Source T Steptype Levels Num Points Num Dtype : Parameter name 1 : unknown unknown c instant 1 1 499989 1 I32 : tri 2 : unknown unknown c instant 1 1 89695 2 I16 : MAPSTA 3 : unknown unknown v instant 1 1 89695 2 I16 : dir 4 : unknown unknown v instant 1 1 89695 2 I16 : hs 5 : unknown unknown v instant 1 1 89695 2 I16 : hsts 6 : unknown unknown v instant 1 1 89695 2 I16 : pdir0 7 : unknown unknown v instant 1 1 89695 2 I16 : pdir1 8 : unknown unknown v instant 1 1 89695 2 I16 : pdir2 9 : unknown unknown v instant 1 1 89695 2 I16 : phs0 10 : unknown unknown v instant 1 1 89695 2 I16 : phs1 11 : unknown unknown v instant 1 1 89695 2 I16 : phs2 12 : unknown unknown v instant 1 1 89695 2 I16 : pt0m10 13 : unknown unknown v instant 1 1 89695 2 I16 : pt0m11 14 : unknown unknown v instant 1 1 89695 2 I16 : pt0m12 15 : unknown unknown v instant 1 1 89695 2 I16 : ptp 16 : unknown unknown v instant 1 1 89695 2 I16 : ptp0 17 : unknown unknown v instant 1 1 89695 2 I16 : ptp1 18 : unknown unknown v instant 1 1 89695 2 I16 : ptp2 19 : unknown unknown v instant 1 1 89695 2 I16 : spr 20 : unknown unknown v instant 1 1 89695 2 I16 : t0m1 Grid coordinates : 1 : generic : points=499989 (3x166663) 2 : generic : points=89695 Vertical coordinates : 1 : surface : levels=1 Time coordinate : 54 steps RefTime = 1990-01-01 00:00:00 Units = days Calendar = standard YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss 2022-07-01 01:00:00 2022-07-01 02:00:00 2022-07-01 03:00:00 2022-07-01 04:00:00 2022-07-01 05:00:00 2022-07-01 06:00:00 2022-07-01 07:00:00 2022-07-01 08:00:00 2022-07-01 09:00:00 2022-07-01 10:00:00 2022-07-01 11:00:00 2022-07-01 12:00:00 2022-07-01 13:00:00 2022-07-01 14:00:00 2022-07-01 15:00:00 2022-07-01 16:00:00 2022-07-01 17:00:00 2022-07-01 18:00:00 2022-07-01 19:00:00 2022-07-01 20:00:00 2022-07-01 21:00:00 2022-07-01 22:00:00 2022-07-01 23:00:00 2022-07-02 00:00:00 2022-07-02 01:00:00 2022-07-02 02:00:00 2022-07-02 03:00:00 2022-07-02 04:00:00 2022-07-02 05:00:00 2022-07-02 06:00:00 2022-07-02 07:00:00 2022-07-02 08:00:00 2022-07-02 09:00:00 2022-07-02 10:00:00 2022-07-02 11:00:00 2022-07-02 12:00:00 2022-07-02 13:00:00 2022-07-02 14:00:00 2022-07-02 15:00:00 2022-07-02 16:00:00 2022-07-02 17:00:00 2022-07-02 18:00:00 2022-07-02 21:00:00 2022-07-03 00:00:00 2022-07-03 03:00:00 2022-07-03 06:00:00 2022-07-03 09:00:00 2022-07-03 12:00:00 2022-07-03 15:00:00 2022-07-03 18:00:00 2022-07-03 21:00:00 2022-07-04 00:00:00 2022-07-04 03:00:00 2022-07-04 06:00:00 cdo sinfon: Processed 20 variables [0.02s 12MB] Je vais creuser ça dans les prochains jours. get_grib.exe Modifié 1 juillet 2022 par Leg2027 ajout pièce jointe Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 27 juillet 2022 Auteur Partager Posté(e) 27 juillet 2022 Bonjour, Je n'ai pas pu faire fonctionner correctement l'outil CDO sur Windows. On m'a recommandé d'installer une machine virtuelle Linux, ce que j'ai fait (avec VirtualBox, Ubuntu). J'ai installé CDO là dessus et apparemment ça fonctionne très bien ! cdo -sellonlatbox,0,0.1,44,44.1 aromePRESS01.grib2 aromePRESS01region.grib2 J'ai testé ça et il m'a bien créé un fichier plus léger. Je n'ai pas voulu aller plus loin pour l'instant car j'ai repris ton pas à pas et je me suis rendu compte que même sous Linux c'est impossible de télécharger les scripts get_inv.pl et get_grib.pl. Pas de clic droit "enregistrer sous" et ça ne marche pas en collant le lien dans l'explorateur de fichiers comme j'avais fait sur Windows. Je dois pouvoir les transférer de Windows vers la machine virtuelle. Quelle distribution de Linux utilises-tu ? Comme ça j'aurais moins de problèmes si on utilise la même chose. 1 Lien à poster Partager sur d’autres sites More sharing options...
_sb Posté(e) 27 juillet 2022 Aubagne (13400) Partager Posté(e) 27 juillet 2022 Les deux scripts Perl ne sont utiles que pour limiter la taille du téléchargement. Pour l'explorateur de fichiers, utilise la fonction « se connecter à un serveur », en FTP anonyme : ftp://ftp.cpc.ncep.noaa.gov/ puis tu circules dans les dossiers : wd51we > fast_downloading_grib FileZilla peut aussi être ton ami. Au pire, je te mets les deux en PJ, ce n'est pas une bonne façon de procéder mais en attendant, ça peut pallier (toujours prendre les fichiers à la source). get_inv.plget_grib.pl Après avoir réduit le domaine avec cdo, vérifie le GRIB obtenu : via cdo sinfov fichier.grib2 par exemple. Normalement cdo indique s'il y a un warning ou une error. Parfois, il est nécessaire d'effectuer une opération supplémentaire (ex : je ne sais plus avec MF, avec ECMWF il est parfois nécessaire d'inverser les latitudes (N/S -> S/N) du grib de sortie grâce à -invertlat : cdo -invertlat -sellonlatbox,0,0.1,44,44.1 ecmwfPRESS01.grib2 ecmwfPRESS01region.grib2 ou encore, si tu concatènes plusieurs gribs en un seul (pour avoir toutes les échéances dans un seul fichier), mieux vaut les concaténer dans l'ordre temporel (0H puis 1H, puis 2H, ...) et éviter de mixer plusieurs niveaux verticaux de pression mais a priori ce ne devrait pas être ton cas. Même si c'est normé, il y a toujours des petites bizarreries selon les centres (raisons historiques ou d'implémentation le plus souvent). Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 30 juillet 2022 Auteur Partager Posté(e) 30 juillet 2022 Le 27/07/2022 à 14:56, _sb a dit : Pour l'explorateur de fichiers, utilise la fonction « se connecter à un serveur », en FTP anonyme : ftp://ftp.cpc.ncep.noaa.gov/ puis tu circules dans les dossiers : wd51we > fast_downloading_grib Ca y est j'ai trouvé où c'était. Merci. Donc ces scripts semblent cette fois très bien fonctionner. Le 27/07/2022 à 14:56, _sb a dit : il est parfois nécessaire d'inverser les latitudes (N/S -> S/N) du grib de sortie grâce à -invertlat : Je n'ai pas l'impression qu'il y a besoin de ça pour que ça fonctionne. J'ai réussi à sélectionner une zone de mon choix comme il faut (vérifié avec zygrib). Mais comment fait-on pour concaténer les fichiers ? J'ai essayé cat et merge mais ça ne semble pas fonctionner (c'est à dire qu'après on ne peut plus traiter le fichier avec cdo) Lien à poster Partager sur d’autres sites More sharing options...
_sb Posté(e) 30 juillet 2022 Aubagne (13400) Partager Posté(e) 30 juillet 2022 (modifié) cat fonctionne très bien pour concaténer les GRIBs. Qu'entends-tu par « après on ne peut plus traiter le fichier avec cdo » ? Éventuellement, as-tu un warning ou une erreur ? PS : aux modos, est-ce utile de maintenir @Leg2027 en preview ? Modifié 30 juillet 2022 par _sb Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 31 juillet 2022 Auteur Partager Posté(e) 31 juillet 2022 Le fichier se créé bien mais après il y a des messages d'erreurs oui. J'ai essayé ici avec des fichiers entiers non transformés. virtual-machine:~/Downloads$ cat arome-france-hd_20220730_06_SP2_00H.grib2 arome-france-hd_20220730_06_SP2_01H.grib2 > nouveau.grib2 virtual-machine:~/Downloads$ cdo sinfov nouveau.grib2 Warning (gribapiScanTimestep1): Record 3 (name=tirf id=65.1.0 lev1=0 lev2=0) timestep 1: Inconsistent verification time! Warning (gribapiScanTimestep2): Record 7 (name=lcc id=3.6.0 lev1=0 lev2=0) timestep 2: Parameter not defined at timestep 1! cdo sinfon: Open failed on >nouveau.grib2< Unsupported file structure Si besoin je peux joindre le nouveau fichier sur un site de partage de fichiers. Lien à poster Partager sur d’autres sites More sharing options...
_sb Posté(e) 31 juillet 2022 Aubagne (13400) Partager Posté(e) 31 juillet 2022 Le fichier 0H ne contient pas les données d'accumulation qui ne commencent logiquement qu'à l'échéance suivante. Du coup, cdo se retrouve avec des données temporelles qui ne correspondent pas entre ton grib mergé issu de 0H et de 1H. Pour t'éviter des complications, si tu n'as pas besoin de 0H, ne le prends pas 😛 Autrement, je n'ai pas de solution simple à te proposer autre que séparer les données instantanées des données d'accumulation (un grib final pour les instantanées, un grib final pour cumulatives). Après, ce n'est pas bloquant ces messages de cdo si tu n'utilises pas cdo pour un autre calcul. Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 1 août 2022 Auteur Partager Posté(e) 1 août 2022 Je ne savais pas que c'était impossible. C'est dommage, ça aurait pu être utile dans certains cas mais je préfère ne pas me compliquer pour l'instant. Est-ce que c'est la même chose si on veut concaténer, un SP1 avec un SP2 (même horaires). On est obligé de faire ça car la température et la pression sont dans des paquets différents (et l'altitude encore dans un autre quand il faudra l'utiliser plus tard). cat 30_07_SP1.grib2 30_07_SP2.grib2 > 30_07_SP1_SP2.grib2 Quand je fais cdo sinfov 30_07_SP1_SP2.grib2 il affiche uniquement les paramètres du SP1 mais pas du SP2. Et il y a un message d'erreur: 2022-07-30 07:00:00 2022-07-30 08:00:00 2022-07-30 09:00:00 2022-07-30 10:00:00 2022-07-30 11:00:00 2022-07-30 12:00:00 2022-07-30 13:00:00 2022-07-30 14:00:00 Warning (gribapiScanTimestep): Record 61 (name=tirf id=65.1.0 lev1=0 lev2=0) timestep 11: Parameter not defined at timestep 1! 2022-07-30 15:00:00 2022-07-30 16:00:00 cdo sinfon: Processed 6 variables over 10 timesteps [0.51s 61MB]. Lien à poster Partager sur d’autres sites More sharing options...
_sb Posté(e) 1 août 2022 Aubagne (13400) Partager Posté(e) 1 août 2022 $ cat arome-france-hd_20220801_00_SP2_16H.grib2 arome-france-hd_20220801_00_SP1_16H.grib2 > nouveau.grib2 $ cdo sinfov nouveau.grib2 File format : GRIB2 jpeg -1 : Institut Source T Steptype Levels Num Points Num Dtype : Parameter name 1 : unknown unknown v accum 1 1 5016591 1 P16j : tirf 2 : unknown unknown v accum 1 1 5016591 1 P16j : sprate 3 : unknown unknown v accum 1 1 5016591 1 P16j : param75.1.0 4 : unknown unknown v instant 1 1 5016591 1 P16j : sp 5 : unknown unknown v instant 1 1 5016591 1 P8 j : lcc 6 : unknown unknown v instant 1 1 5016591 1 P8 j : hcc 7 : unknown unknown v instant 1 1 5016591 1 P8 j : mcc 8 : unknown unknown v instant 1 2 5016591 1 P16j : CAPE_INS 9 : unknown unknown v instant 1 1 5016591 1 P16j : param193.16.0 10 : unknown unknown v instant 1 3 5016591 1 P12j : 10u 11 : unknown unknown v instant 1 3 5016591 1 P12j : 10v 12 : unknown unknown v max 1 3 5016591 1 P12j : 10efg 13 : unknown unknown v max 1 3 5016591 1 P12j : 10nfg 14 : unknown unknown v instant 1 4 5016591 1 P16j : 2t 15 : unknown unknown v instant 1 4 5016591 1 P12j : 2r Grid coordinates : 1 : lonlat : points=5016591 (2801x1791) lon : -12 to 16 by 0.01 degrees_east lat : 55.4 to 37.5 by -0.01 degrees_north Vertical coordinates : 1 : surface : levels=1 2 : surface : levels=1 bounds : 0-3000 typeOfSecondFixedSurface : 103 3 : height : levels=1 height : 10 m 4 : height : levels=1 height : 2 m Time coordinate : time : 1 step RefTime = 2022-08-01 00:00:00 Units = hours Calendar = proleptic_gregorian YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss 2022-08-01 16:00:00 cdo sinfon: Processed 15 variables over 1 timestep [1.86s 45MB]. $ cdo -sellonlatbox,0,5,42,51 nouveau.grib2 nouveauBox.grib2 $ cdo sinfov nouveauBox.grib2 File format : GRIB2 -1 : Institut Source T Steptype Levels Num Points Num Dtype : Parameter name 1 : unknown unknown v accum 1 1 451401 1 P16 : tirf 2 : unknown unknown v accum 1 1 451401 1 P0 : sprate 3 : unknown unknown v accum 1 1 451401 1 P16 : param75.1.0 4 : unknown unknown v instant 1 1 451401 1 P16 : sp 5 : unknown unknown v instant 1 1 451401 1 P8 : lcc 6 : unknown unknown v instant 1 1 451401 1 P8 : hcc 7 : unknown unknown v instant 1 1 451401 1 P8 : mcc 8 : unknown unknown v instant 1 2 451401 1 P16 : CAPE_INS 9 : unknown unknown v instant 1 1 451401 1 P16 : param193.16.0 10 : unknown unknown v instant 1 3 451401 1 P12 : 10u 11 : unknown unknown v instant 1 3 451401 1 P12 : 10v 12 : unknown unknown v max 1 3 451401 1 P12 : 10efg 13 : unknown unknown v max 1 3 451401 1 P12 : 10nfg 14 : unknown unknown v instant 1 4 451401 1 P16 : 2t 15 : unknown unknown v instant 1 4 451401 1 P12 : 2r Grid coordinates : 1 : lonlat : points=451401 (501x901) lon : 0 to 5 by 0.01 degrees_east lat : 51 to 42 by -0.01 degrees_north Vertical coordinates : 1 : surface : levels=1 2 : surface : levels=1 bounds : 0-3000 typeOfSecondFixedSurface : 103 3 : height : levels=1 height : 10 m 4 : height : levels=1 height : 2 m Time coordinate : time : 1 step RefTime = 2022-08-01 00:00:00 Units = hours Calendar = proleptic_gregorian YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss 2022-08-01 16:00:00 cdo sinfon: Processed 15 variables over 1 timestep [0.15s 41MB]. Tu devrais peut-être concaténer d'abord le SP1 et le SP2 à chaque échéance et ensuite concaténer en un groupe d'échéance. Enfin, appliquer la réduction de domaine. Je viens de le faire avec deux échéances, je n'ai pas d'erreur. // PSEUDO CODE cat ech1_sp1.grib2 ech1_sp2.grib2 > ech1.grib2 cat ech2_sp1.grib2 ech2_sp2.grib2 > ech2.grib2 cat ech3_sp1.grib2 ech3_sp2.grib2 > ech3.grib2 // ... cat ech1.grib2 ech2.grib2 ech3.grib2 ... > echTotal.grib2 // ... cdo -sellonlatbox,lon1,lon2,lat1,lat2 echTotal.grib2 echTotalBox.grib2 cdo sinfo echTotalBox.grib2 Résultat : j'ai les 15 variables, le domaine réduit, les différents niveaux de hauteur et les deux pas de temps. $ cdo sinfov nouveauFinalBox.grib2 File format : GRIB2 -1 : Institut Source T Steptype Levels Num Points Num Dtype : Parameter name 1 : unknown unknown v accum 1 1 451401 1 P16 : tirf 2 : unknown unknown v accum 1 1 451401 1 P0 : sprate 3 : unknown unknown v accum 1 1 451401 1 P16 : param75.1.0 4 : unknown unknown v instant 1 1 451401 1 P16 : sp 5 : unknown unknown v instant 1 1 451401 1 P8 : lcc 6 : unknown unknown v instant 1 1 451401 1 P8 : hcc 7 : unknown unknown v instant 1 1 451401 1 P8 : mcc 8 : unknown unknown v instant 1 2 451401 1 P16 : CAPE_INS 9 : unknown unknown v instant 1 1 451401 1 P16 : param193.16.0 10 : unknown unknown v instant 1 3 451401 1 P12 : 10u 11 : unknown unknown v instant 1 3 451401 1 P12 : 10v 12 : unknown unknown v max 1 3 451401 1 P12 : 10efg 13 : unknown unknown v max 1 3 451401 1 P12 : 10nfg 14 : unknown unknown v instant 1 4 451401 1 P16 : 2t 15 : unknown unknown v instant 1 4 451401 1 P12 : 2r Grid coordinates : 1 : lonlat : points=451401 (501x901) lon : 0 to 5 by 0.01 degrees_east lat : 51 to 42 by -0.01 degrees_north Vertical coordinates : 1 : surface : levels=1 2 : surface : levels=1 bounds : 0-3000 typeOfSecondFixedSurface : 103 3 : height : levels=1 height : 10 m 4 : height : levels=1 height : 2 m Time coordinate : time : 2 steps RefTime = 2022-08-01 00:00:00 Units = hours Calendar = proleptic_gregorian YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss 2022-08-01 16:00:00 2022-08-01 17:00:00 cdo sinfon: Processed 15 variables over 2 timesteps [0.17s 41MB]. Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 3 août 2022 Auteur Partager Posté(e) 3 août 2022 Le 01/08/2022 à 20:46, _sb a dit : Tu devrais peut-être concaténer d'abord le SP1 et le SP2 à chaque échéance et ensuite concaténer en un groupe d'échéance. Enfin, appliquer la réduction de domaine. Je viens de le faire avec deux échéances, je n'ai pas d'erreur. J'ai essayé et effectivement ça marche avec cette méthode. Merci. C'est bizarre qu'on ne puisse pas le faire avec les données SP1 groupées <-> données SP2 groupées. CDO ne propose pas une fonction pour faire ça ? Ça va être un peu long de composer un fichier exploitable comme ça. Je le ferai demain si j'ai le temps. Lien à poster Partager sur d’autres sites More sharing options...
_sb Posté(e) 3 août 2022 Aubagne (13400) Partager Posté(e) 3 août 2022 il y a 19 minutes, Leg2027 a dit : CDO ne propose pas une fonction pour faire ça ? Essaie avec avec l'option cat de cdo (donc indépendamment de la commande cat de base et il n'y a pas de « > » pour diriger la sortie vers le fichier de destination) cdo cat ech1.grib2 ech1.grib2 ech1.grib2 ech1.grib2 ... echTout.grib2 Je ne te garantis pas. En revanche, ne prends pas l'échéance H0 car l'option cat impose le même nombre et le même nom de variables pour chaque grib. Autre possibilité, l'option mergetime. Dans les deux cas, l'échéance H0 est à proscrire. cdo mergetime ech1.grib2 ech1.grib2 ech1.grib2 ech1.grib2 ... echTout.grib2 et ensuite concaténer les deux gribs toutSp1 et toutSP2. Je les ai sans doute déjà utilisées avec des fichiers MF mais je ne me rappelle pas des résultats ! Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 6 août 2022 Auteur Partager Posté(e) 6 août 2022 Bonsoir, Je pars en vacances demain. Je ne vais pas pouvoir faire d'autres manipulations avec cdo pour le moment. Je pourrais reprendre ce projet à mon retour. Le 03/08/2022 à 20:53, _sb a dit : Essaie avec avec l'option cat de cdo Malheureusement ça ne marche pas mieux. Le résultat est le même que cat tout seul, c'est à dire: Le 01/08/2022 à 14:47, Leg2027 a dit : Quand je fais cdo sinfov 30_07_SP1_SP2.grib2 il affiche uniquement les paramètres du SP1 mais pas du SP2. Après avoir fait cdo mergetime , c'est encore pire, le fichier créé n'est pas du tout reconnu par cdo. C'est vraiment étrange. Lien à poster Partager sur d’autres sites More sharing options...
stormi26 Posté(e) 15 août 2022 Valence (26 proche 07) Alt. 127 m Parfois Romans/Isère (26) Alt. 147 m ou Châteauneuf/Isère (26) Alt. 130 m ou La Côte St André (38) Alt. 417 m Partager Posté(e) 15 août 2022 (modifié) Le 27/07/2022 à 13:04, Leg2027 a dit : Bonjour, Je n'ai pas pu faire fonctionner correctement l'outil CDO sur Windows. On m'a recommandé d'installer une machine virtuelle Linux, ce que j'ai fait (avec VirtualBox, Ubuntu). J'ai installé CDO là dessus et apparemment ça fonctionne très bien ! cdo -sellonlatbox,0,0.1,44,44.1 aromePRESS01.grib2 aromePRESS01region.grib2 J'ai testé ça et il m'a bien créé un fichier plus léger. Je n'ai pas voulu aller plus loin pour l'instant car j'ai repris ton pas à pas et je me suis rendu compte que même sous Linux c'est impossible de télécharger les scripts get_inv.pl et get_grib.pl. Pas de clic droit "enregistrer sous" et ça ne marche pas en collant le lien dans l'explorateur de fichiers comme j'avais fait sur Windows. Je dois pouvoir les transférer de Windows vers la machine virtuelle. Quelle distribution de Linux utilises-tu ? Comme ça j'aurais moins de problèmes si on utilise la même chose. Bonsoir, C'est inutile d'utiliser une machine virtuelle , car Windows contient le sous-système Windows pour Linux (WSL). Voici des tutoriels sur son utilisation : https://www.malekal.com/installer-wsl-windows-subsystem-for-linux-sur-windows-10/ https://docs.microsoft.com/fr-fr/windows/wsl/install https://lecrabeinfo.net/installer-wsl-windows-subsystem-for-linux-sur-windows-10.html Je l'utilise avec Debian, et cela fonctionne très bien (c'est bien plus rapide qu'une machine virtuelle). Modifié 15 août 2022 par stormi26 1 Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 7 septembre 2022 Auteur Partager Posté(e) 7 septembre 2022 J'ai dû combiner les fichiers un par un pour avoir un fichier exploitable et intéressant. J'imagine que toutes ces étapes ne seront pas nécessaires (ou alors automatisées) quand on aura besoin d'un nouveau fichier à chaque randonnée. Voici ces caractéristiques: zone très réduite(~5km de large), données couvrant une journée (9h-18h), avec SP1 (température), SP2 (pression) et je pourrais éventuellement ajouter le paquet SP3 pour l'altitude. Le fichier est encore réductible car il reste plein de paramètres inutiles (vent, neige...). Mais je ne sais plus à quoi correspondent les "parameter name". J'ai cherché sur internet et je n'ai rien trouvé. File format : GRIB2 -1 : Institut Source T Steptype Levels Num Points Num Dtype : Parameter name 1 : unknown unknown v instant 1 1 121 1 P12 : 10u 2 : unknown unknown v instant 1 1 121 1 P12 : 10v 3 : unknown unknown v max 1 1 121 1 P12 : 10efg 4 : unknown unknown v max 1 1 121 1 P12 : 10nfg 5 : unknown unknown v instant 1 2 121 1 P16 : 2t 6 : unknown unknown v instant 1 2 121 1 P12 : 2r 7 : unknown unknown v accum 1 3 121 1 P0 : tirf 8 : unknown unknown v accum 1 3 121 1 P0 : sprate 9 : unknown unknown v accum 1 3 121 1 P0 : param75.1.0 10 : unknown unknown v instant 1 3 121 1 P16 : sp 11 : unknown unknown v instant 1 3 121 1 P8 : lcc 12 : unknown unknown v instant 1 3 121 1 P0 : hcc 13 : unknown unknown v instant 1 3 121 1 P0 : mcc 14 : unknown unknown v instant 1 4 121 1 P16 : CAPE_INS 15 : unknown unknown v instant 1 3 121 1 P0 : param193.16.0 As-tu un moyen de savoir à quoi correspond 10u, 10v etc? Le 16/08/2022 à 00:30, stormi26 a dit : C'est inutile d'utiliser une machine virtuelle , car Windows contient le sous-système Windows pour Linux (WSL) Je pensais rester sur la machine virtuelle car j'avais déjà installé plusieurs logiciels, et créé pas mal de fichiers. Et elle marchait assez bien pour moi. Malheureusement depuis quelques jours le dossier partagé n'apparait plus dans le gestionnaire de fichiers Ubuntu, et donc pour transférer les fichiers sur Windows ce n'est vraiment pas pratique. Si je ne trouve pas de solution rapidement, j'utiliserai WSL. En tout cas merci pour la recommandation, parce que je ne savais pas que ça existait. 1 Lien à poster Partager sur d’autres sites More sharing options...
_sb Posté(e) 9 septembre 2022 Aubagne (13400) Partager Posté(e) 9 septembre 2022 10u / 10v : composantes zonale (est-ouest) et méridienne (nord-sud) du vent à 10 mètres (à l'échéance) 10efg / 10nfg : composantes zonale et méridienne de la plus forte rafale (à 10 mètres) depuis l'échéance calculée précédente 2t / 2r : température et humidité relative à 2 mètres (à l'échéance) tirf : cumul des précipitations (depuis l'échéance 0) sprate : cumul des précipitations de type neige (depuis l'échéance 0) param75.0.1 : cumul des précipitations de type graupel (depuis l'échéance 0) sp : pression à la surface à l'échéance (ce n'est pas celle réduite au niveau de la mer) lcc / mcc / hcc : fraction couverture nuageuse étages bas, moyen, haut (à l'échéance) CAPE_INS : CAPE instantanée (à l'échéance) param193.16.0 : réflectivité max à l'échéance (radar simulé précipitations au niveau du sol) Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 17 octobre 2022 Auteur Partager Posté(e) 17 octobre 2022 (modifié) Bonsoir, Je suis désolé d'avoir eu une si longue absence. Je vais résumer les quelques avancées que j'ai pu faire. J'ai eu du mal à installer correctement WSL (avec CDO qui fonctionne dessus). En naviguant j'ai fini par tomber sur ce miraculeux tutoriel, qui m'a permis d'installer WSL et CDO parfaitement. https://dquesadacr.github.io/cdo_climate_modelling/#/ A mon avis, c'est le meilleur moyen(et le plus pratique pour la gestion des fichiers) pour les utilisateurs de Windows de faire fonctionner cdo. Et aussi, la fonction cat fonctionne cette fois très bien, ce qui est beaucoup plus pratique pour créer les fichiers. Merci à @stormi26 pour la recommandation. J'ai donc conçu un fichier exploitable qui contient les données de pression (non réduite) et de température sur une journée dans un endroit précis (quelques km de côté). arome30_07_temp_press_region.grib2 Mais maintenant que faire de ce fichier pour qu'il puisse être lu par un microcontrôleur ? J'ai vu qu'il existait des outils qui permettent de convertir des fichiers grib2 en json, mais je ne sais pas si c'est la meilleure solution. J'ai également choisi le microcontrôleur (différent du projet d'origine, celui-ci étant beaucoup plus simple) qui me semble le plus adapté pour ce projet: le Wemos D1 Mini(ESP-8266), il est relativement petit, dispose de beaucoup de mémoire pour programmer, intègre le wifi (pratique si on veut transférer des fichiers rapidement au lieu d'une carte µSD), et la programmation est aussi facile que sur une carte Arduino (tu connais peut-être). J'ai donc programmé différents écrans avec cette carte pour voir lequel serait le plus adapté (bon je l'ai fait aussi pour m'amuser): De gauche à droite: écran monochrome 0.66" (pouces de diagonale), monochrome 0.96", monochrome 1.3", couleur 1.3", couleur 1.77" Mon avis et celui de mes proches penche plutôt pour le 4e qui possède la meilleure résolution, avec une taille qui permet de bien lire. J'ai eu l'idée de représenter les variations par des cercles de couleur mais il y a certainement une meilleure façon d'utiliser les couleurs cet écran. Les photos représentent une des interfaces, qui sera probablement amenée à changer. Voici l'écran choisi en meilleure qualité: Modifié 17 octobre 2022 par Leg2027 5 1 Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 22 décembre 2022 Auteur Partager Posté(e) 22 décembre 2022 Bonjour, Je n'ai pas eu trop le temps de développer le projet ces derniers mois. J'espère pouvoir passer plus de temps pour ça après les fêtes de fin d'année. J'ai quand même finalement réussi à créer un fichier json à partir du fichier grib2 que j'avais précédemment composé avec cdo. Il à l'air de contenir toutes les informations nécessaires. J'ai utilisé la bibliothèque grib2json: https://github.com/cambecc/grib2json Je commencerai à travailler sur l'exploitation du fichier par le microcontrôleur après ces vacances. Je le mets en pièce jointe si jamais ça t'intéresse de jeter un coup d'œil. isolaout Joyeux Noël à tous (un peu en avance) ! 1 1 Lien à poster Partager sur d’autres sites More sharing options...
Leg2027 Posté(e) 2 avril 2023 Auteur Partager Posté(e) 2 avril 2023 Du nouveau ! (enfin !) Je vais faire un résumé de ce que j'ai pu faire ces derniers mois. Le microcontrôleur est enfin programmé pour analyser les données météos comme prévu. Cela a pris un peu plus de temps que prévu car j'ai encore dû changer de carte électronique, la précédente n'ayant pas assez d'entrées/sorties, la programmation n'est pas la même et il faut faire des modifications. La nouvelle carte électronique est une ESP32S2 Mini avec 4Mo de Flash, 2Mo de RAM, 27 entrées/sorties et du WIFI, les calculs se font très rapidement. Je ne devrais donc pas la changer à nouveau. La partie écran n'a pas encore été codée car malheureusement mon écran est tombé en panne, je devrais en recevoir bientôt un nouveau. Les données sont actuellement affichées dans le moniteur série. Que fait l'appareil actuellement ? -Afficher le dénivelé et la distance parcourue -Enregistrer un fichier .gpx le long du parcours sur une carte micro SD -Afficher la variation de pression réduite au niveau de la mer et la température depuis la dernière mesure -Afficher la différence de variation réelle par rapport à celle prévue (en consultant le fichier json contenant les prévisions Arome) J'ai décidé de laisser le choix à l'utilisateur de faire les mesures quand il veut/peut et donc l'évolution (et la différence de variation) de pression est en hPa/h et celle de la température en °C/h Quand on a le temps, on laisse l'appareil à l'ombre. Après 2 minutes d'habituation, l'appareil mesure pendant une minute la pression, la température et l'altitude afin d'avoir une moyenne fiable. Après ça l'appareil affiche donc si la pression a augmenté depuis la dernière mesure, si elle a plus augmenté que ce qui était prévu, etc... Il reste donc la partie la plus compliquée: le serveur, l'automatisation du téléchargement et du traitement des données Arome. Je n'ai jamais fait de choses similaires, j'espère que je vais quand même y arriver. Je résume ce qu'il devrait y avoir à faire: - Sur une page web, demander à l'utilisateur de choisir la zone de la randonnée sur la carte et une plage horaire - Télécharger les fichiers Arome de cette plage horaire - Extraire uniquement les données utiles (zone, pression...) à l'aide de CDO et éventuellement les "couteaux-suisses" si j'arrive à les utiliser - Convertir le fichier grib2 obtenu en JSON à l'aide de l'outil grib2json - Convertir ce fichier JSON en un fichier JSON valide exploitable par l'appareil As-tu déjà programmé quelque chose de similaire ? Des pistes à donner pour un débutant comme moi ? Si tu as une quelconque remarque à faire, une erreur que j'ai faite sur que je viens de dire, n'hésite pas à me le dire. Je prends toutes les recommandations. 1 1 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