Python&RPi: Barometer und Höhenmesser
Etwas Mathematik und Physik
Nachdem es nun schon möglich war den
Luftdruck an einem Ort mit dem RPi und dem RBE700-HAT zu messen, liegt es nahe daraus einen barometrischen Höhenmesser aufzubauen. Dabei lerne ich, dass man dazu eine 'internationale barometrische Höhenformel' verwendet und dass der Wert für den Luftdruck, den Wetterdienste anbieten, dem Luftdruck auf Meereshöhe entspricht, ganz gleich auf welcher Höhe der Beobachtungsort liegt.
Dass die barometrische Höhe keine Eigenschaft eines Luftdrucksensors sein kann, hatte ich bereits für mich festgehalten. Für Höhe und Luftdruck erfinde ich daher die Klasse Observation_Site() , weil Höhhe, Lufdruck, Temperatur etc. eben Attribute eines bestimmten Ortes auf der Planetenoberfläche sein sollen.
Der Wikipedia-Artikel über die Barometrische Höhenformel ist sehr ausführlich. Zunächst ist dort die Erkenntnis, dass der von mir gemessene Luftdruck zunächst auf Meereshöhe reduziert werden muss, um mit den Daten von Wetterdiensten vergleichbar zu werden. Ausgehend von diesem Luftdruck auf Meereshöhe, lässt sich dann mit Hilfe einer Luftdruckmessung am Beobachtungsort die Höhe ableiten.
Die Atmosphäre bietet leider keine Laborbedingungen. Würde man es völlig korrekt machen wollen, dann müsste man neben einer Funktion des Luftdrucks auch den Temperaturverlauf über der Höhe berücksichtigen, also h = h(p,T). In meiner Lösung nehme ich hingegen einen linearen Temperaturverlauf an: 0,65 K/100Hm.
Als Bergsteiger ist mir dieser Wert durchaus geläufig. Unter Warmlufteinfluss (z.B. "vor" einem Tiefdruckgebiet) geht man von einem Temperaturgradienten von 0,5 K/100Hm aus, bei der anschließenden Kaltfront hingegen von 1,0 K/100Hm. Halbwegs brauchbar ist diese Abschätzung dann bis zu Höhen von 4.000m.

Testen ist ja so wichtig. Schade nur, dass mein Raspberry Pi zusammen mit dem Barometer an der Steckdose angeschlossen ist. Den Höhhenmesser kann ich so nicht einmal im Treppenhaus ausprobieren. Allerdings kann ich eine kurze Messreihe bei konstanter Höhe anlegen und anschließend das Fehlerquadrat bestimmen. Numpy hilft wieder dabei. Ich erhalte einen Wert von +/- 6 cm. Das ist schon sehr ordentlich. Zuletzt lässt sich damit sogar die Höhe des Schreibtisch messen. Mit einem Ergebnis von 70cm bin ich zufrieden. Viel mehr hätte das Netzkabel auch nicht zugelassen...

In einem nächsten Versuch möchte ich nun, den gemessenen Luftdruck und die Höhe auf dem LCD des RBE700-HAT anzeigen lassen.
Die Ergebnisse dieser kleinen Fingerübung sind hier gesichert und werden so
mit der Welt geteilt: