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.

Données marine


arno974
 Partager

Messages recommandés

Bonjour,

Dans le cadre d'un travail universitaire je dois effectuer une routine qui télécharge et transforme des données grib en shapefile (format SIG).

Le but étant à partir d'un Grib utilisant le modèle NWW3 obtenir un fichier vecteur contenant la vitesse et la direction du courant/vagues/vents.

Le monde des données météo et océanographiques est relativement nouveau pour moi. Ce qui explique que je sois un peu perdu.

En effet, différents sites proposent le téléchargement de données Grib :

Mon tuteur m'avait conseillé globalmarine. Mais en cherchant un peu, il s'avère que la plupart des fournisseurs de données Grib utilisent directement les données de la NOAA.

De ce fait, je n'arrive pas à comprendre la valeur ajoutée qu'apporte ces sites ?

Ne serait-il pas plus judicieux que j'utilise celle de la NOAA?

De plus, lorsque j'analyse ces données via Degrib il y a deux paramètres que je n'arrive pas à comprendre :

  • UGRD : U component
  • VGRD : V component

Sauriez-vous à quoi ils correspondent?

Merci pour vos réponses

Lien à poster
Partager sur d’autres sites

Ce sont des vecteurs.

Bonjour snowman49,

Dans ce cas si je me réfère au cahier de spécification de Grib wind :

http://polar.ncep.noaa.gov/waves/products.html

Quelle est la différence entre WDIR, WIND, UGRD et VGRD?

Concernant les autre sites proposant des données similaires aurais-tu plus d'informations quant à leur valeur ajoutée?

Merci

Arnaud

Lien à poster
Partager sur d’autres sites

Bonjour snowman49,

Dans ce cas si je me réfère au cahier de spécification de Grib wind :

http://polar.ncep.noaa.gov/waves/products.html

Quelle est la différence entre WDIR, WIND, UGRD et VGRD?

Bonjour Arno974,

Tout d'abord, les 4 termes WDIR, WIND, UGRD et VGRD sont des vecteurs comme l'a dit snowman plus haut.

WDIR représente la direction du vent en degrés (0 à 360°)

WIND représente la vitesse du vent en m/s (1 m/s = 3,6 km/h)

On sait que le vent est une mesure de la vitesse de déplacement horizontal de l'air par rapport à la Terre. Tout déplacement horizontal peut être décrit par deux composantes, une composante pour le déplacement parallèle à un cercle de latitude, le vent zonal, noté u, et une composante parallèle à un méridien, le vent méridien, noté v. Les mouvements zonaux sont comptés positivement (v>0) s'ils sont d'ouest en est. Les mouvements méridiens sont comptés positivement (u>0) s'ils sont dirigés du sud vers le nord.

UGRD représente donc la composante du vent zonal en m/s

VGRD représente la composante du vent méridien en m/s

J'espère avoir été clair dans mon explication default_smile.png/emoticons/smile@2x.png 2x" width="20" height="20">

Lien à poster
Partager sur d’autres sites

Bonjour Arno974,

Tout d'abord, les 4 termes WDIR, WIND, UGRD et VGRD sont des vecteurs comme l'a dit snowman plus haut.

WDIR représente la direction du vent en degrés (0 à 360°)

WIND représente la vitesse du vent en m/s (1 m/s = 3,6 km/h)

On sait que le vent est une mesure de la vitesse de déplacement horizontal de l'air par rapport à la Terre. Tout déplacement horizontal peut être décrit par deux composantes, une composante pour le déplacement parallèle à un cercle de latitude, le vent zonal, noté u, et une composante parallèle à un méridien, le vent méridien, noté v. Les mouvements zonaux sont comptés positivement (v>0) s'ils sont d'ouest en est. Les mouvements méridiens sont comptés positivement (u>0) s'ils sont dirigés du sud vers le nord.

UGRD représente donc la composante du vent zonal en m/s

VGRD représente la composante du vent méridien en m/s

J'espère avoir été clair dans mon explication default_smile.png/emoticons/smile@2x.png 2x" width="20" height="20">

Plus que clair même. Merci pour ces explications. Je patauge un peu, c'est pourquoi certaine questions vous paraitront peut être un peu confuses. Dans ce cas n'hésitez pas à me le faire remarquer. Je suis plus habitué aux lignes de code et aux cartes topologiques qu'à interpréter des cartes marines default_tongue.png/emoticons/tongue@2x.png 2x" width="20" height="20">

1/ Je rebondis sur ton explication. Dans l'hypothèse où je n'ai que UGRD et VGRD et que je souhaite trouver la vitesse et la direction, les deux formules ci-dessous sont-elles correctes :

vitesse du courant = sqrt(u²+v²)

direction = atan(v,u)

J'effectue ces calculs en python et je suis étonné d'avoir des directions négatives.

2/ De plus, toujours concernant les fournisseurs de données, dites-moi si je me trompe, mais la seule valeur ajoutée qu'apportent des sites comme global marine sont le fait de découper le Grib de la NOAA par zone afin de diminuer le poids de celui-ci?

3/ Enfin le modèle Wwave 3 n'étant pas adapté pour les mers intérieurs. Quel modèle me conseilleriez-vous? Sachant que Global Marine utilise dans ce cas le modèle GFS.

Lien à poster
Partager sur d’autres sites

J'effectue ces calculs en python et je suis étonné d'avoir des directions négatives.

Ca remonte a assez loi, mais j'avais été confronté au problème en PHP (pour le même problème que toi sur des data quickscat) et avait également des valeurs négatives...

Bref, de tête, j'avais du faire une fonction de ce style :

function GetAngle($x, $y){ if($x == 0 && $y == 0) return 360; return $x < 0 ? atan2($x,$y) + 2*pi() : atan2($x,$y); }

Il faut en fait se méfier de 2 choses :

- la fonction fonctionne dans le sens trigonométrique, donc anti-horaire, alors qu'on mesure un cap dans le sens horaire. Pour résoudre le problème, il suffit d'inverser les parametres de la fonction atan (qui sont d'ailleurs inversé de base en PHP, puisque c'est y,x et non x,y)

- L'angle 0 (ou 360) correspond en trigo au cap 090...

A partir de cette fonction, le cap peut être déduit simplement en faisant

360 * GetAngle(u, v) / (2 * PI);

Pour tes 2 autres question, je ne saurais pas trop dire vu que je connais pas tes autres fournisseurs... Je suppose qu'en effet leur valeur ajoutée est de fournir des fichiers zonaux, ce qui ne serait pas en soit un mauvais point quand on voit qu'il faut 200Mo / echeance pour un GFS 0.5 en GRIB1 et environ la moitié en grib2... Si tu veux toutes les échéances jusqu'à 300+ heures et ce 4 fois par jour, ça risque de piquer niveau bande passante pour GFS brut de décoffrage... Par contre, il ne m'a pas semblé voir les données de houle dans les grib GFS.

Edit : je connais rien au python, mais j'ai vérifié ça fonctionne exactement pareil qu'en PHP... Donc tu as bien une fonction atan2(y, x), et à la syntaxe près, la fonction ci-dessus doit le faire !

Lien à poster
Partager sur d’autres sites

Ca remonte a assez loi, mais j'avais été confronté au problème en PHP (pour le même problème que toi sur des data quickscat) et avait également des valeurs négatives...

Bref, de tête, j'avais du faire une fonction de ce style :

function GetAngle($x, $y){ if($x == 0 && $y == 0) return 360; return $x < 0 ? atan2($x,$y) + 2*pi() : atan2($x,$y); }

Il faut en fait se méfier de 2 choses :

- la fonction fonctionne dans le sens trigonométrique, donc anti-horaire, alors qu'on mesure un cap dans le sens horaire. Pour résoudre le problème, il suffit d'inverser les parametres de la fonction atan (qui sont d'ailleurs inversé de base en PHP, puisque c'est y,x et non x,y)

- L'angle 0 (ou 360) correspond en trigo au cap 090...

A partir de cette fonction, le cap peut être déduit simplement en faisant

360 * GetAngle(u, v) / (2 * PI);

Pour tes 2 autres question, je ne saurais pas trop dire vu que je connais pas tes autres fournisseurs... Je suppose qu'en effet leur valeur ajoutée est de fournir des fichiers zonaux, ce qui ne serait pas en soit un mauvais point quand on voit qu'il faut 200Mo / echeance pour un GFS 0.5 en GRIB1 et environ la moitié en grib2... Si tu veux toutes les échéances jusqu'à 300+ heures et ce 4 fois par jour, ça risque de piquer niveau bande passante pour GFS brut de décoffrage... Par contre, il ne m'a pas semblé voir les données de houle dans les grib GFS.

Edit : je connais rien au python, mais j'ai vérifié ça fonctionne exactement pareil qu'en PHP... Donc tu as bien une fonction atan2(y, x), et à la syntaxe près, la fonction ci-dessus doit le faire !

Pour poursuivre sur tout ça, je te conseil de porter ceci dans une class, pour beaucoup plus de lisibilité, d'éviter le condition/test de la forme A ? B : C (non déboguable), de toujours mettre des accolades derrière des instructions (if, else, while ...) même si celles-ci font qu'une seule ligne car elle te seront bien utiles pour déboguer ton code, et d'indenter ton code, pour la clarté. Sinon, Comode a tout dit. default_wink.png/emoticons/wink@2x.png 2x" width="20" height="20">
Lien à poster
Partager sur d’autres sites

Pour poursuivre sur tout ça, je te conseil de porter ceci dans une class, pour beaucoup plus de lisibilité, d'éviter le condition/test de la forme A ? B : C (non déboguable), de toujours mettre des accolades derrière des instructions (if, else, while ...) même si celles-ci font qu'une seule ligne car elle te seront bien utiles pour déboguer ton code, et d'indenter ton code, pour la clarté. Sinon, Comode a tout dit. default_wink.png/emoticons/wink@2x.png 2x" width="20" height="20">

Merci à tous pour vos réponses.

Je pense être arrivé à un résultat satisfaisant. j'attends un retour maintenant des spécialistes pour voir si cela leur convient.

Pour la partie programmation :

Concernant les accolades, en python c'est une chance il n'y en a aucune mais par contre l'indentation est obligatoire.

En python tout étant objet, cela rend l'utilisation de classe quasi naturelle.

Pour l'opérateur ternaire cela dépend des habitudes. C'est plus concis mais en tout cas personnellement, j'ai un peu de mal à l'utiliser.

Encore un grand merci, pour votre réactivité.

Arnaud

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...