Annonce Module « Annonce »
Réduire
Aucune annonce.
Faire une "moyenne" des directions du vent sous OpenOffice Module « Intitulé de la page »
Déplacer Retirer Réduire
X
Module « Détails de la conversation »
Réduire
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Faire une "moyenne" des directions du vent sous OpenOffice

    Bonjour à tous...

    Je fais un petit topic sur une façon de réaliser la "moyenne" des direction du vent pour ceux qui relève leur données dans un tableur et qui souhaiteraient réaliser cette opération.
    Bien entendu, je précise bien que cela ne reste qu'une valeur mathématiques, et que dans le cadre d'un relevé manuel, elle reste représentative du nombre de relevé effectué (une station automatique donnera des valeurs beaucoup plus représentative (relevés quasi continus) que 4 ou 5 relevés effectués dans la journée) et je n'affirme en rien qu'elle soit rigoureusement juste... J'affirme seulement qu'un peu de courage vous sera nécessaire pour aller au bout de mon post...


    Donc, si vous êtes comme moi, et que vous aimez vous amuser avec votre tableur, vous avez peut-être eu envie de faire des moyennes sur les vents, comme on fait avec les T°, l'humidité, ou autre valeur météorologique.
    Pour ce qui est de la vitesse du vent, c'est pas bien sorcier, mais dès qu'il s'agit des directions, là c'est une autre histoire.

    Le principal problème avec les angles, c'est que si on essaie de faire une bête moyenne avec ceux-ci, on se retrouve vite avec des résultat "illogiques" (exemple grosso modo, la moyenne de vents de secteur compris entre SO et SE peut renvoyer en zone NO...). Cela tient du fait qu'un angle de 135° (par exemple) equivaut aussi un angle de 315° sur une bousolle (Si on prend un vent de secteur 315° (NO) et un de secteur 45°(NE), la "moyenne" de ces vent devrait être logiquement 0°(N), mais une formule mathèmatique renverra toujours 180° (S)).

    Confronté à ce problème, j'ai longuement cherché une solution qui évite ces erreurs. Mettre une moitié du cercle en degrés +, et l'autre moitié en - résolvait quelques incohérences, mais pas toutes... :shock:

    La solution est venue des nombre complexe (ou imaginaires, de la forme a+bi avec i *** que i²=-1) (le fameux i pour ceux qui connaissent) et d'une formule trouvé sur un forum (merci à V. Lascaux qui l'a proposée en 2005). Il existerait d'autre formules, utilisant cos et sin, mais je ne l'ai pas trouvées pratiques à utiliser dans le tableur.
    L'avantage des nombres complexes, c'est que du coup, 2 directions diamétralement opposées auront chacune un et un seul nombre complexe la représentant (exemple simpliste, SE = 1-1i, NO= -1+1i ou bien SO= -1-1i et NE= 1+1i).
    Ainsi, chaque résultats de "moyenne" de direction du vent sera unique (et logique). Je n'ai pas encore trouvé de resultats erronés...

    Bon, passons au choses sérieuse qui nous(vous) intéresses:

    La fameuse formule: z(k)=v(k)*exp(i*Tetha(k))
    avec, mathématiquement parlant, z(k) = le vecteur vent, v(k) = une intensité (vitesse, durée, etc...)et Tetha(k) = l'angle du vent, sa direction autrement dit.
    Ici, on notera que v(k) nous permet, on en reparlera par la suite, de pouvoir tenir compte de la vitesse (je priviligie cette option car on a assez souvent un girouette associée avec un anémomètre), ce qui peut s'avèrer une composante non négligeable pour calculer une moyenne des directions... Mais pour l'instant je considérerais cette valeur à 1.
    Donc, on se retrouve simplement avec z(k)=exp(i*Tetha(k)).

    Maintenant, on va pouvoir exploiter nos données, mais il va falloir les "transformer" pour effectuer les calculs. Il faut déja savoir que les opérations sur les angles dans OpenOffice (OOo) se réalise en Radians. Il faudra donc convertir les degrés dans cette unité.
    Pour mon exemple, je travaillerais sur une base de 360°, c'est à dire le nord à 0°, l'est à 90°, le sud à 180°...etc, et les entrées (3 dans mon cas) et les sorties (résultats) seront basées sur 16 divisions de la rose des vents (N, NNE, NE, ENE... etc).

    On veut donc que le résultat de l'opération nous affiche la donnée la plus proche par les 16 valeurs définies ci-dessus. Pour ce faire, on va devoir utiliser les fonctions d'arrondi, de modulo en plus des fonctions d'opérations sur les nombres complexes. On utilisera aussi une fonction de recherche pour afficher le résultat sous forme alpha (N, NE, plutot que 0°, 90°, c'est plus parlant.).
    Je détaille toutes les opérations avant de donner la formule qui tient dans une cellule... c'est mieux de comprendre chaque étape, non?

    On ne tient pas compte de la vitesse du vent:
    1- on transforme les ° en radians (@représentera la valeurs en ° , ou la cellule du tableur ou celle ci se trouve)

    RADIANS(@) (bon, là c'était facile...)

    2-on transforme cet angle en nombre complexe

    COMPLEXE(0;[1]) avec 0 qui représente la partie réelle du nombre complexe, [1] l'angle @ en radians est la partie imaginaire qui multiplie i ( je reprendrai une valeurs précédemment calculé par le numéro de ligne entre crochet. Ici,
    il faut comprendre COMPLEXE(0;RADIANS(@)) ), soit 0+"@"i

    3- on calcule l'exponentielle de ce nombre(j'ai cru comprendre que c'est la partie cos/sin des opérations... :? )

    COMPLEXE.EXP([2])

    Vu qu'on part sur la "moyenne" de 3 mesures, on effectue,bien entendu ces opérations pour chaques mesures;
    Soit pour @1, @2, et @3, on obtient
    COMPLEXE.EXP ([2pour@1]), COMPLEXE.EXP([2pour@2]) et COMPLEXE.EXP([2pour@3].

    4- On fait la somme de ces valeurs.

    Cette partie réalise en fait "l'addition" des direction des vents. Si on le faisait graphiquement sur la rose des vent, ça reviendrai à prendre la 1ère direction, au bout de celle ci, tracer la 2nde, puis au bout de la 2nde on trace la 3ième. Si joint alors l'extrémite de la 3ième avec le centre de la rose des vents, on obtient alors la direction "moyenne" du vent...

    COMPLEXE.SOMME(COMPLEXE.EXP ([2pour@1]);COMPLEXE.EXP([2pour@2]);COMPLEXE.EXP([2pour@3])

    On à donc ici notre résultat, mais malheureusement, il n'est pas exploitable en la matiére, il faut revenir au degrés pour pouvoir en tirer quelque chose de parlant.

    5- on récupère l'angle que représente ce nombre imaginaire, c'est l'argument.

    COMPLEXE.ARGUMENT([4])

    6- Le résultat précédent est en radians, on convertis en degrés.

    DEGRES([5])

    7- On "taille" le résultat...
    L'angle obtenu peut être supérieur à 360°, grace au modulo, on retire autant de fois que nécessaire 360 au résultat afin que celui-ci soit compris entre 0° et 360°

    MOD([6];360) avec [6] la valeur à moduler, 360, le modulo que l'on désire...

    8-on "sectorise" le résultat...
    Maintenant, nous allons définir la valeur qui est la plus proche de notre résultat, pour ensuite obtenir l'affichage d'un des 16 secteurs que nous avons prédéfinie plus haut.

    ARRONDI.AU.MULTIPLE([7];22.5) avec [7] la valeur à arrondir, 22.5 le multiple à utiliser (360/16=22.5)

    On inclut tout ça dans une fontion de recherche:

    RECHERCHEV(ARRONDI.AU.MULTIPLE([7];22.5);plage de données;colonne à afficher;0)
    plage de données: 2 colonnes, la 1ère de 0 à 360 par pas de 22.5, la seconde avec N, NNE, NE, ENE...etc
    colonne à afficher: ici 2, retourne le code alpha correspondant à la valeurs de l'angle obtenu
    0: option qui signifie que la plage de données n'est pas croissante, personellement, je met toujours cette valeur, je suis ainsi sur que la recherche s'effectue sur toute la plage de données.
    N'oubliez pas de "caler" la plage de donnée avec $, ça évite qu'elle se décale lors des copier/coller de formules...

    Pour les yeux, la formule dans son intégralité (issue de mon tableur, sans condition SI):

    Code:
    RECHERCHEV(ARRONDI.AU.MULTIPLE(MOD(DEGRES(COMPLEXE.ARGUMENT(COMPLEXE.SOMME(COMPLEXE.EXP(COMPLEXE(0;RADIANS(C4)));COMPLEXE.EXP(COMPLEXE(0;RADIANS(E4)));COMPLEXE.EXP(COMPLEXE(0;RADIANS(G4))))));360);22,5);'Matrice de Transformation'.$B$3:$C$18;2;0)
    Maintenant, il peut être judicieux de tenir compte d'une autre composante du vent, comme sa vitesse car il semble logique qu'un vent à 0km/h ne "pèse" pas pareil qu'un vent à 20Km/h...

    La démarche est la même que précédemment, sauf qu'on rajoute un produit par la vitesse.
    Il va là aussi falloir transformer la valeur vitesse en nombre imaginaire (sinon le calcul renvoie une erreur).

    On garde les étapes 1, 2 et 3 pour les angles
    pour la vitesse (v@1, v@2, v@3)
    COMPLEXE(v@1;0) ce qui donnerait ici v+0i
    3b-Pour la fonction z=v*exp(i*@):

    COMPLEXE.PRODUIT(COMPLEXE(v@1;0);COMPLEXE.EXP(COMP LEXE(0;[1]))

    4b- La somme des nombres imaginaires:

    COMPLEXE.SOMME([3bpour@1];[3bpour@2];[3bpour@3]

    Ensuite, on reprend en 5. En fait, graphiquement, la vitesse va faire varier la "longueur" de la direction du vent, ce qui influeras sur la "direction" finale et donc sur l'angle...

    Là aussi, pour les yeux, la formule tenant compte de la vitesse:

    Code:
    RECHERCHEV(ARRONDI.AU.MULTIPLE(MOD(DEGRES(COMPLEXE.ARGUMENT(COMPLEXE.SOMME(COMPLEXE.PRODUIT(COMPLEXE(J4;0);COMPLEXE.EXP(COMPLEXE(0;RADIANS(C4))));COMPLEXE.PRODUIT(COMPLEXE(K4;0);COMPLEXE.EXP(COMPLEXE(0;RADIANS(E4))));COMPLEXE.PRODUIT(COMPLEXE(L4;0);COMPLEXE.EXP(COMPLEXE(0;RADIANS(G4)))))));360);22,5);'Matrice de Transformation'.$B$3:$C$18;2)




    Voilà, tout d'abord merci d'avoir lu ce topic jusque là (et bravo car c'est un beau pavé...) et j'espère avoir modestement pu vous apporter quelque chose d'intèressant...

    Cordialement.
    /!\ UBUNTU user's inside /!\
    Protect the Lucid Lynx
    Don't Worry, be Linux

  • #2
    Re: Faire une "moyenne" des directions du vent sous OpenOffice

    Merci pour ce petit guide =D En effet c'est un problème qui a première vu semble banale à résoudre mais au final il s'avère, comme tu l'as démontré au cours de ce post, bien complexe
    http://hbupload.free.fr/Images/cynob...0110121454.jpg

    Commentaire


    • #3
      Re: Faire une "moyenne" des directions du vent sous OpenOffice

      Envoyé par Cynover
      Merci pour ce petit guide =D En effet c'est un problème qui a première vu semble banal à résoudre mais au final il s'avère, comme tu l'as démontré au cours de ce post, bien complexe
      Oui, c'est bien,
      mais le domaine d'application me semble très limité dans le temps
      (moins d'une heure)
      pour que la valeur trouvée soit représentative d'un vent "moyen"...
      Pour une représentation climatologique
      c'est la rose des fréquences des vents par classes de vitesse
      qui s'impose. (à tracer en coordonnées polaires,
      à partir d'un tableur ça doit être faisable....) :roll:
      et utile, voir :

      http://forums.meteociel.fr/viewtopic.php?f=10&t=603
      La philanthropie de l'ouvrier Charpentier est bien connue !
      Tout en avance d'un jour
      https://aerologic.monsite-orange.fr/ -_-_-_- https://promet.monsite-orange.fr/

      Commentaire


      • #4
        Re: Faire une "moyenne" des directions du vent sous OpenOffice

        Envoyé par CPT
        Oui, c'est bien,
        mais le domaine d'application me semble très limité dans le temps
        (moins d'une heure)
        pour que la valeur trouvée soit représentative d'un vent "moyen"...
        C'est effectivement ce que j'essaie de préciser au début de mon post:

        Envoyé par solho
        ...dans le cadre d'un relevé manuel, elle reste représentative du nombre de relevé effectué (une station automatique donnera des valeurs beaucoup plus représentative (relevés quasi continus) que 4 ou 5 relevés effectués dans la journée) et je n'affirme en rien qu'elle soit rigoureusement juste...
        Pour ma part, j'effectue (du moins, j'essaie de m'y tenir) 3 relevé sur ma station (basique, acheté chez lidl) par jour, matin, midi et soir.
        L'appareil affiche une moyenne de la vitesse et de la direction sur 2min avec un rafraichissement (à confirmer) qui semble être d'1min.
        Depuis 2 jours, je relève ces valeurs sur une dizaine de minutes, puis je relève la moyenne de ces valeurs pour ma saisie. Cela me parait un peu plus judicieux qu'une valeur quasi-instantanée.
        Ensuite, à l'aide d'une autre formule, je compte le nombre de jours par secteur et je reporte sur un graphique circulaire, ce qui me donne(ra) une (vague) idée de la direction dominante du vent (enfin, je confirmerais cela en fin d'année.... ).

        Ceci dit, je pourrais associer dans ce décompte la force moyenne du vent et la direction puis établir le graphique correspondant, il faudra que j'essaie à temps perdu...Je pense que c'est réalisable sans passer par des coordonnées polaire (dans le tableur du moins)... Néanmoins, je ne pense pas obtenir quelque chose de significatif pour l'instant, mon fichier tableur n'étant composé que des relevés depuis le début de l'année...

        Pour ceux qui utilisent Excel, je vais y jeter un coup d'oeil... Déja, Excel 2003 (du moins ma version installé) ne semble pas posséder de formule pour les complexes (Bizarre), mais je pense qu'une version plus récente devrait les avoir... A suivre...
        /!\ UBUNTU user's inside /!\
        Protect the Lucid Lynx
        Don't Worry, be Linux

        Commentaire


        • #5
          Re: Faire une "moyenne" des directions du vent sous OpenOffice

          -
          Salut à tous.

          Jolie manip mathématique Solho

          Avec deux macro en VBA sur Excel, on peut aussi obtenir une représentation graphique de la fréquence (ou du nombre) des directions de vents pour un mois.



          Les stations automatiques fournissent des valeurs, soit en degrés (135, ou 265, etc.), soit en chaine string (NE, ou SO, etc.).
          Avec une macro, on peut convertir des degrés en 16 chaines string (180 = "S") avec une résolution de 22.5° ou en 36 avec une résolution de 10°.
          La seconde macro fait une compil de ces données et les traduits en fréquence d'occurrence dans le mois (ici, relevé toutes les 100 minutes).
          On peut aussi moduler cette représentation par la force du vent moyen (ou par les rafales si on dispose d'un matériel qui les mesure).
          Dans les deux exemples ci-dessus, la coloration ne représente d'une manière arbitraire que le taux d'humidité moyen de ces vents.

          Macros à disposition de ceux qui seraient intéressés.

          -
          Les Dictons Météo - Construire un abri météo - La Dispersion Pluviométrique - Dépressions et Anticyclones

          ................................................PRÉVISIONS MÉTÉO POUR MONTPELLIER ET SA BANLIEUE

          Commentaire


          • #6
            Re: Faire une "moyenne" des directions du vent sous OpenOffice

            Envoyé par CPT
            Pour une représentation climatologique
            c'est la rose des fréquences des vents par classes de vitesse
            qui s'impose. (à tracer en coordonnées polaires,
            à partir d'un tableur ça doit être faisable....) :roll:

            Merci Léon, jolies roses.( Brise de terre, brise de mer ? )
            La philanthropie de l'ouvrier Charpentier est bien connue !
            Tout en avance d'un jour
            https://aerologic.monsite-orange.fr/ -_-_-_- https://promet.monsite-orange.fr/

            Commentaire


            • #7
              Re: Faire une "moyenne" des directions du vent sous OpenOffice

              Bonjour a vous,

              Je me suis tout comme vous un peu penché sur le traitement de donnée de vent dans le cadre d'un projet en océanographie.

              Je possède sur une période de 25 ans des données de vent journalière avec la direction et la force moyenne.

              Je souhaiterais pouvoir faire deux roses des vents:
              -la première mettant en avant le nombre de jours pour chaque direction ( j'ai obtenu ce nombre en utilisant une formule" BDNBVAL" sous open office). Une rose des vent donnant la fréquence d'occurrence d'un direction.
              -la deuxième mettant en avant la moyenne de vitesse pour chaque direction (je n'ai pas encore fait ce calcul).

              J'ai vu dans ce sujet deux belles images obtenus par vba sous Excell mais je ne sais comment procéder.

              Je vous remercie pour toutes aides.

              Cordialement

              Commentaire


              • #8
                Re: Faire une "moyenne" des directions du vent sous OpenOffice

                -

                Bonjour.

                Jamais travaillé avec OpenOffice.
                Mais si tu peux y faire des macros en VBA avec ce qui sert d'Excel dans cette suite, aucun pb, je t'envoie les miennes en source et tu te les traduis.
                As-tu déja fait du VBA ?

                -
                Les Dictons Météo - Construire un abri météo - La Dispersion Pluviométrique - Dépressions et Anticyclones

                ................................................PRÉVISIONS MÉTÉO POUR MONTPELLIER ET SA BANLIEUE

                Commentaire


                • #9
                  Re: Faire une "moyenne" des directions du vent sous OpenOffice

                  Bonjour léon,

                  Je n'ai jamais utilisé de vba, cependant j'ai commencé à me renseigner sur Internet et il faut bien un début à tout.

                  Je peux avoir accès a une machine fonctionnant avec microsoft office et je pense qu'il me sera plus facile d'utiliser tes codes sources dessus plutôt que perde du temps a faire des conversion.

                  Je suis donc très intéressée par la possibilité de récupérer tes sources excell.

                  En te remerciant

                  Rémi

                  Commentaire


                  • #10
                    Re: Faire une "moyenne" des directions du vent sous OpenOffice

                    -
                    > et il faut bien un début à tout.

                    Tu as raison, on en apprend tous les jours (et moi, à 71 ans, je suis en train de me mettre au JavaScript - ça ne fera jamais que mon 9ème langage !)

                    Donc, je vais te faire une macro à partir d'un bloc de tes données.
                    Pour aller plus loin, on pourra passer ensuite sur Skype pour la mise au point, ça sera plus pratique que par écrit.

                    Il faudrait que tu m'envoies un bloc d'une vingtaine de lignes de datas, telles que tu les a.
                    Après, on étendra à tes 25 ans.
                    Ce qui compte le plus, c'est la façon dont elles sont écrites.

                    Tu m'envoies ça en PJ via les MP du forum avec ton adresse perso.

                    -
                    Les Dictons Météo - Construire un abri météo - La Dispersion Pluviométrique - Dépressions et Anticyclones

                    ................................................PRÉVISIONS MÉTÉO POUR MONTPELLIER ET SA BANLIEUE

                    Commentaire

                    Chargement...
                    X