Aller au contenu
Les Forums d'Infoclimat

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.

Prévoir le mauvais temps local sur 2 heures


Messages recommandés

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é par Leg2027
ajout pièce jointe
Lien à poster
Partager sur d’autres sites

  • 4 weeks later...
  • Réponses 67
  • Créé
  • Dernière réponse

Les plus actifs

Les plus actifs

Messages populaires

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 fon

Bonjour et sois le bienvenu sur Infoclimat !   Si je résume correctement ta demande, tu conçois un appareil individuel pour des personnes en randonnées. Celui-ci calculerait et afficherait u

La précision que tu sembles chercher est inatteignable, et probablement pour très longtemps encore. Physiquement, l'atmosphère est chaotique (l'image du fameux « effet papillon »). De plus, certa

Images postées

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.

  • J'aime 1
Lien à poster
Partager sur d’autres sites

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

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

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é par _sb
Lien à poster
Partager sur d’autres sites

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

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

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

Posté(e)
Aubagne (13400)
$ 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

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

Posté(e)
Aubagne (13400)
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

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

  • 2 weeks later...
Posté(e)
Valence (26 proche 07) Alt. 127 Mètres Parfois Romans/Isère (26) Alt. 147 Mètres ou Châteauneuf/Isère (26) Alt. 130 Mètres
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é par stormi26
  • Merci 1
Lien à poster
Partager sur d’autres sites

  • 4 weeks later...

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.

 

  • J'aime 1
Lien à poster
Partager sur d’autres sites

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

  • 1 month later...

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):

329722790_diffecrans.thumb.jpg.de8b8fa0198364581bd166e4bf67ab8a.jpg

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é:

20221012_203225.thumb.jpg.bebb625c847641f84d5837ec3e582ef7.jpg

 

Modifié par Leg2027
  • J'aime 5
  • Merci 1
Lien à poster
Partager sur d’autres sites

  • 2 months later...

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) !

  • J'aime 1
  • Merci 1
Lien à poster
Partager sur d’autres sites

  • 3 months later...

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.

  • J'aime 1
  • Merci 1
Lien à poster
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Partager

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...