Relativen Luftdruck aus absoluten Luftdruck errechnen?

Hallo,

alle Wetterdaten hole ich mir über FS10-Wettersensorempfänger.
Nun zeigt mir IPS den Luftdruck nur absolut an. Ich möchte aber den wahren, temperatur- u. höhenkorrigierten (relativen) Luftdruck errechnen bzw. angezeigt haben. Wie kann ich den errechnen. Ich hatte schonmal angefangen ein Skript zu schreiben, aber damit komme ich nicht auf den Wert, der sein müsste bzw. mir WsWin ausgibt:

<?

$f = GetValueInteger(46762 /*[4. Außen\Wetter\Außen-Luftfeuchtigkeit]*/ );    								// rel. Luftfeuchte
$t = GetValueFloat(49326 /*[4. Außen\Wetter\Außen-Temperatur]*/ );										// Hüttentemperatur (in °C)
$ph = GetValueInteger(29350 /*[4. Außen\Wetter\Luftdruck [absolut]]*/ );    								// Luftdruck in Barometerhöhe in hPa

if( $t >= 0 )
{$aa = 7.5; $bb = 237.3;}else{$aa = 7.6; $bb = 240.7;}


$h = 479;   																							// Barometerhöhe in m
$g0 = 9.80665; 																						// Normfallbeschleunigung in m/s²
$R = 287.05; 																							// Gaskonstante trockener Luft (= R/M) in m²/(s²K)
$Th = $t + 273.15;																					// Hüttentemperatur (in K, wobei T(h) = t + 273,15 K)
$a = 0.0065;																							// vertikaler Temperaturgradient in K/m
$sdd = 6.1078 * pow(10.0, (($aa*$f)/($bb+$f))); 											// Magnusformel
$E = ($f/100.0) * $sdd;  																			// Dampfdruck des Wasserdampfanteils (in hPa)
$Ch = 0.12;																								// Beiwert zu E zur Berücksichtigung der mittleren Dampfdruckänderung mit der Höhe (eigentlich stationsabhängig, hier als fester Mittelwert) in K/hPa


// Barometrische Höhenformel (http://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel)
// weitere Links: http://explorermagazin.com/service/hoehform.htm

$x = ($g0 / ($R * ($Th + $Ch * $E + $a * ($h/2)))) * $h;
//$x = 0.06025;

$ee = exp($x);

$ld = round(($ph * $ee), 1);
$ldx = 1013.25*(1-((0.0065*$h)/288.15));

echo "x = ", $x ," 
";
echo "Luftdruck = ", $ld ," hPa
";
echo "Luftdruckx = ", $ldx ," hPa";

?>

Hat jemand eine Idee, oder erkennt den Fehler bzw. welche Änderungen rein müssten? Hat sich schon jemand mit dem Thema beschäftigt?

Hallo nancilla,

zuerst einmal eine Klarstellung: Es gibt weder einen absoluten, noch einen relativen Luftdruck. Das, was Dein Luftdrucksensor ermittelt, ist der lokale Luftdruck. Dieser ist abhängig von der Temperatur, der Luftfeuchte und der Höhe des Messpunktes über dem Meer.

Der Einfluss der Luftfeuchte ist so gering, dass er in der Messgenauigkeit des Sensors untergeht.

Um Messwerte weltweit miteinader vergleichen zu können, wird der lokale Luftdruck so umgerechnet, als wäre er auf Meeresniveau ermittelt worden.

Für diese Umrechnung verwende ich die in der Wikipedia genannte und vom Deutschen Wetterdienst empfohlene Umrechnungsformel.

// Berechnung des auf Meereshöhe reduzierten Luftdrucks
// es wird die laut Wikipedia vom Deutschen Wetterdienst empfohlene
// Barometrische Höhenformel verwendet
$Luftdruck = GetValueFloat("Aussenluftdruck");         // aktueller lokaler Luftdruck
$Temperatur = GetValueFloat("Aussentemperatur");       // aktuelle Außentemperatur
$h  = 555;                                             // Höhe über NN in Metern (*** !! anpassen !! ***)
$g0 = 9.80665;                                         // Normwert der Fallbeschleunigung
$R  = 287.05;                                          // Gaskonstante trockener Luft
$T  = 273.15;                                          // 0°C in Kelvin
$Ch = 0.12;                                            // Beiwert zu E
if ($Temperatur < 9.1)
 $E = 5.6402*(-0.0916 + exp(0.06*$Temperatur));        // Dampfdruck des Wasserdampfanteils bei t < 9.1°C
else
 $E  = 18.2194*(1.0463 - exp(-0.0666*$Temperatur));    // Dampfdruck des Wasserdampfanteils bei t >= 9.1°C
$a  = 0.0065;                                          // vertikaler Temperaturgradient
$xp = $h*$g0/($R*($T+$Temperatur + $Ch*$E + $a*$h/2)); // Exponent für Formel
$p0 = $Luftdruck*exp($xp);                             // Formel für den NN-bezogenen Luftdruck laut Wikipedia

$p0 ist der auf Meereshöhe umgerechnete Luftdruck. Alle Wetterstationen arbeiten mit solchen umgerechneten Werten. Sie sind daher vergleichbar.

Gruß
HJH

Hallo HJH,

vielen Dank für deine Antwort!

Entschuldige, dass ich dir da widersprechen muss.
Mit dem relativen Luftdruck wird der auf Meereshöhe reduzierte Luftdruck ausgedrückt. Ebenso wird mit dem absoluten Luftdruck der Messwert am Sensor ausgedrückt, welcher sich durch die Höhe des Messpunkts über Normalnull ergibt
Es gibt sie also tatsächlich, diese Bezeichnungen.
Barometrische Höhenformel ? Wikipedia

Ich habe mir jetzt mal dein Skript durchlaufen lassen und stelle eine Abweichung zur Ausgabe von WSWIN (pc-wetterstation.de) fest.
Im Skript komme ich aktuell auf 1010,4 hPa und WsWin errechnet mir 1011,2 hPa. Zumindest sieht das Ergebnis schonmal besser aus, als bei mir vorher.
Woher könnte diese Abweichung kommen? Der Ausgabe von WSWIN kann durchaus vertrauen. Zumindest stimmt sie mit der Angabe der in der Nähe liegenden DWD-Station fast immer bis aufs Zehntel überein.

Achso…
Was ist $to und $tg in deinem Skript?

Hallo nancilla,

es scheint so, dass diese Begriffe tatsächlich so verwendet werden. Dann musst also nicht Du Dich entschuldigen, sondern ich. :wink:

Dann gilt also:
gemessener Luftdruck = wahrer Luftdruck = absoluter Luftdruck
auf Meereshöhe bezogener Luftdruck = relativer Luftdruck

Die Variablen $to und $tg gehören hier nicht her. Sie sind Reste von meinem Versuch den Temperatursensor zu kalibrieren.

Ich habe das Skript korrigiert. Die variablen wurden entfernt.

Zusätzlich habe ich noch die Dampfdruckberechnung angepasst. Sie ging bisher immer von einer Temperatur von >9.1°C aus.

Gruß
HJH

Hallo HJH,

Das sieht auch richtig gut aus, im Vergleich mit dem WSWIN-Wert, der mir zurzeit 1009,7 hPa ausgibt und das Skript 1009,6 (1009,557) hPa. :slight_smile:

Mit der Abweichung von 0,1 hPa kann ich leben :rolleyes:
Ich hatte mit dieser Sache so kurz nach dem Umstellen auf die IPS-V2 angefangen, nachdem alles andere, wichtigere migriert war und ich Lust auf mehr verspürte :smiley: , weil mich die V2 wieder dazu inspirierte etwas Neues anzufangen. Die Ideeen gehen mir derzeit nicht aus und gestern bin ich wieder auf das angefangene Script gestoßen (in den Untiefen der IPS-Struktur), mir dazu aber nichts neues einfiel bzw. ich mein Gedankenpulver schon bei den ersten Versuchen mit viel Zeit verschossen hatte, dachte ich, frage ich jetzt einfach mal im Board…

Das ist wirklich super hier, wie Einer dem Anderen hilft… Danke!

P.S. Wie geschrieben, die Abweichung ist zwar jetzt nur noch minimal, aber falls noch jemanden etwas einfällt, warum es dazu kommt…:wink: Manchmal leider ich an Perfektionismus.

Hallo,

hier mal zwei andere Varianten aus meiner Formelsammlung. QFF ist die Version von HJH unter Einberechnung der gemessenen Luftfeuchtigkeit und könnte damit das sein, was Du suchst.

    // ------ QNH: Luftdruckangabe auf Meereshöhe nach einer Standardatmosphäre (nach ICAO) reduziert (Flughäfen, CWOP-Stationen, APRS)
    // nach http://dk0te.ba-ravensburg.de/cgi-bin/navi?m=WX_BAROMETER
    function getQNH($Temperature, $AirPressureAbsolute, $Altitude)
    {
        $g_n = 9.80665;                // Erdbeschleunigung (m/s^2)
        $gam = 0.0065;                // Temperaturabnahme in K pro geopotentiellen Metern (K/gpm)
        $R = 287.06;                // Gaskonstante für trockene Luft (R = R_0 / M)
        $M = 0.0289644;                // Molare Masse trockener Luft (J/kgK)
        $R_0 = 8.314472;            // allgemeine Gaskonstante (J/molK)
        $T_0 = 273.15;                // Umrechnung von °C in K

        $p = $AirPressureAbsolute * pow( (($gam * $Altitude + $Temperature + $T_0) / ($Temperature + $T_0)), ($g_n / ($R * $gam)) );

        return $p;
    }

    // ------ QFF: Luftdruckangabe auf Meereshöhe umgerechnet (DWD)
    // nach http://dk0te.ba-ravensburg.de/cgi-bin/navi?m=WX_BAROMETER
    function getQFF($Temperature, $AirPressureAbsolute, $Altitude, $Humidity)
    {
        $g_n = 9.80665;                // Erdbeschleunigung (m/s^2)
        $gam = 0.0065;                // Temperaturabnahme in K pro geopotentiellen Metern (K/gpm)
        $R = 287.06;                // Gaskonstante für trockene Luft (R = R_0 / M)
        $M = 0.0289644;                // Molare Masse trockener Luft (J/kgK)
        $R_0 = 8.314472;            // allgemeine Gaskonstante (J/molK)
        $T_0 = 273.15;                // Umrechnung von °C in K
        $C = 0.11;                // DWD-Beiwert für die Berücksichtigung der Luftfeuchte

        $E_0 = 6.11213;                // (hPa)
        $f_rel = $Humidity / 100;        // relative Luftfeuchte (0-1.0)
        // momentaner Stationsdampfdruck (hPa)
        $e_d = $f_rel * $E_0 * exp((17.5043 * $Temperature) / (241.2 + $Temperature));

        $p = $AirPressureAbsolute * exp(($g_n * $Altitude) / ($R * ($Temperature + $T_0 + $C * $e_d + (($gam * $Altitude) / 2))));

        return $p;
    }

Das Problem bei den ganzen Wetterdaten: Zig verschiedene Abschätzungsformeln und Ansichten. Dann noch die Umwandlung in verschiedene Maßsysteme und die daraus resultierenden Rundungsfehler.

Zum Vergleich meine aktuellen Messungen:
Höhe: 8m
Temperatur: 0.80°C
Luftfeuchtigkeit: 75%
Luftdruck (absolut): 1013hPa
Luftdruck (nach HJH): 1014.0086489115hPa
Luftdruck (nach QNH): 1014.011000887hPa
Luftdruck (nach QFF): 1014.0090321535hPa

Horst

Hallo Horst,

Das ist ja interessant. Ich habe ähnliche Abweichungen.
Luftdruck (nach HJH): 1002.5343831283 hPa
Luftdruck (nach QFF): 1002.5412624329 hPa
Luftdruck (WSWIN): 1002.7 hPa

Also, da hate HJH schon recht, dass die Luftfeuchtigkeit wenig Einfluss auf den Wert nimmt. Aber interessant ist dieses Skript allemal auch.

[EDIT/]
Ändere ich jedoch manuell die Luftfeuchte auf 0, dann erhalte ich:
1002.6563901196 hPa
Also ein gewissen Einfluss scheint es trotzdem zu geben…

Hallo nancilla,

wie schon erwähnt macht sich die Luftfeuchte nur in der Kommastelle bemerkbar und geht damit deutlich in der Toleranz des Barometers unter.

Hinzu kommt, dass die Messgenauigkeit der Luftfeuchte noch wesentlich schlechter ist. Das lässt ihren Beitrag höchst zweifelhaft erscheinen. Eine Abweichung bei der relativen Feuchte von 5-10% sind bei gängigen Messgeräten durchaus üblich (auch, wenn „schönere“ Werte angegeben werden), besonders dann, wenn in der Nähe von 0% oder 100% gemessen wird. Diese Tatsache macht sie für die Korrektur des Luftdruckwertes völlig ungeeignet.

Für eine genaue Messung der rel. Feuchte, die für meteorologische Zwecke geeignet ist, müsstest Du schon einen Taupunktspiegel einsetzen (Frag erst gar nicht nach dem Preis ;)).

Wenn Deine errechneten Werte um nicht mehr als 1-2hPa abweichen, hast Du ohnehin schon eine ausgezeichnete Näherung erreicht. Alles andere ist Kosmetik, keine Wissenschaft.

Wie Horst schon sehr richtig gesagt hat, gibt es viele Näherungsformeln. Entscheidend dabei ist, dass allen zu vergleichenden Werten die selbe Formel zu Grunde liegt. Daher verwende ich die vom Deutschen Wetterdienst empfohlene Formel.

Gruß
HJH