Werbung
 

Ich hab mal wieder keine Ahnung!

Grundlagen und Expertenwissen.
Benutzeravatar
Alfred
 
Beiträge: 7326
Registriert: Mo 21. Jul 2003, 16:23
Wohnort: 8037 Zürich

Ich hab mal wieder keine Ahnung!

Beitragvon Alfred » Sa 6. Feb 2010, 12:31

Sali zäme

Ich stehe wieder mal vor einem Problem!

Kann man, (nehm mal an, es geht schon, aber ich weiss nicht wie :oops: ) aus unten stehenden Daten
die Windrichtung und gleichzeitig die Geschwindigkeit ermitteln oder sogar in Windfidern darstel-
len wie in einem TEMP?

Wind
Zonal m/sek. Merid m/sek. height m/sfc
Code: Alles auswählen
0.2      0.4      10
0.2      0.5      33
0.2      0.6      65
0.1      0.7      107
0.1      0.7      158
0.1      0.7      218
0.1      0.7      288
0.1      0.7      371
0.1      0.6      467
0.2      0.7      576
0.4      0.8      699
0.6      0.9      836
0.9      -1.0      987
1.3      -1.0      1153
1.5      -1.0      1333
1.7      -1.0      1528
1.8      0.8      1738
1.7      0.7      1964
1.6      0.6      2205
1.3      0.4      2461
1.0      0.1      2732
0.4      0.7      3018
0.3      1.3      3319
-1.1      1.9      3634
-1.6      2.4      3964
-2.2      3.0      4308
-3.0      3.9      4664
-4.4      5.1      5031
-5.9      6.6      5405
-7.2      8.4      5783
-8.4      10.3      6162
-9.3      11.6      6538
-10.0      12.1      6911
-10.6      12.2      7281

Gruss, Alfred

Benutzeravatar
Bernhard Oker
Moderator
 
Beiträge: 3767
Registriert: Do 16. Aug 2001, 11:02
Wohnort: 8902 Urdorf

Re: Ich hab mal wieder keine Ahnung!

Beitragvon Bernhard Oker » Sa 6. Feb 2010, 12:39

@Alfred
Sollte mit etwas Trigonometrie funktionieren.
http://de.wikipedia.org/wiki/Trigonometrische_Funktion

Code: Alles auswählen
function TSoundingCalc.uv2wd(const u : double; const v : double) : double;

// Calculate the Wind Direction [°] from the u- and v-Component.
// Input Variables:
//  u = East-West Component of Wind Direction
//  v = North-South Component of Wind Direction

var
  d : double;
begin
  if (u = 0.0) OR (v = 0.0) then
  begin
    if (u = 0.0) AND (v = 0.0) then
    begin
      //d := 9999.0;
      d := 0.0;
    end
    else
    begin
      if (u = 0.0) then
      begin
        if (v > 0) then
        begin
          d := 180.0;
        end
        else
        begin
          d := 0.0;
        end;
      end
      else
      begin
        if (u > 0) then
        begin
          d := 270.0;
        end
        else
        begin
          d := 90.0;
        end;
      end;
    end;
  end
  else
  begin
    if (u > 0.0) then
    begin
      if (v > 0.0) then
      begin
        // u > 0, v > 0
        d := 270 - arctan(v / u) * 180 / Pi;
      end
      else
      begin
        // u > 0, v < 0
        d := 270 - arctan(v / u) * 180 / Pi;
      end;
    end
    else
    begin
      if (v > 0.0) then
      begin
        // u < 0, v > 0
        d := 90 - arctan(v / u) * 180 / Pi;
      end
      else
      begin
        // u < 0, v < 0
        d := 90 - arctan(v / u) * 180 / Pi;
      end;
    end;
  end;
  Result := d;
end;


Gruss
Bernhard


Zurück zu Wissenswertes

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder