Ich habe ein Python-Modul ** `` `wxparams``` ** erstellt, das Funktionen sammelt, die meteorologische Elemente berechnen, z. B. Funktionen, die die Taupunkttemperatur aus Temperatur und relativer Luftfeuchtigkeit berechnen. Daher werde ich es veröffentlichen. (Abkürzung für ** Wetterparameter **)
Bevor ich Python gestartet habe, habe ich häufig Skripte für die Verarbeitung von Wetterdaten in Perl geschrieben und Funktionen zusammengestellt, die häufig in wetterbezogenen Feldern im Perl-Modul verwendet werden. Aufgrund des Einflusses von Corona verbrachte ich mehr Zeit zu Hause (lacht) und beschloss, es auf diesem Computer in Python umzuschreiben.
Ich werde es veröffentlichen, wenn ich es trotzdem mache, daher lautet der Quellcode GitHub, und die Erklärung zur Verwendung ist in diesem Artikel zusammengefasst.
Sie können pip von meinem GitHub installieren.
pip install git+https://github.com/Yoshiki443/weather_parameters
Wenn Sie mit der Pip-Installation nicht vertraut sind, können Sie nur `` `wxparams / wxparams.py``` von GitHub herunterladen und verwenden.
Es ist eine MIT-Lizenz.
Ich werde zuerst ein Codebeispiel vorstellen.
import numpy as np
import wxparams as wx
temp = np.array([[0., 5.],[10., 20.]]) #Temperatur[C]
rh = np.array([[90., 50.], [70., 99.5]]) #Feuchtigkeit[%]
td = wx.RH_to_Td(temp, rh) #Taupunkttemperatur[C]
print(td)
#Ausgabe
# [[-1.44330606 -4.56523582]
# [ 4.78251527 19.91913689]]
Zuerst importieren. Die Abkürzung "wx" im Codebeispiel wird häufig als Abkürzung für Wetter verwendet. Rufen Sie nach dem Import die Funktion auf. Das obige Beispiel zeigt den Fall der Berechnung der Taupunkttemperatur aus der Temperatur und der relativen Luftfeuchtigkeit.
Die hier eingegebenen Daten werden grundsätzlich als ** numpy.ndarray ** angenommen. Oder es funktioniert mit ** pandas.Series **. Wenn Sie jedes Wetterelement einzeln eingeben, funktionieren einige Funktionen und andere nicht.
Geben Sie als Eingabedaten beispielsweise das gesamte meteorologische Element mit einer Druckebene mit GPV (dh einem zweidimensionalen Array) ein, um ein anderes meteorologisches Element zu berechnen, oder geben Sie eine Spalte meteorologischer Elemente mit strukturierten Daten wie csv ein und trennen Sie es. Es soll zur Berechnung der Wetterelemente von verwendet werden.
** numpy.ndarray ** wird als Autor empfohlen, da einige Prozesse numpy.ndarray annehmen.
Unten finden Sie eine Beschreibung der einzelnen Funktionen.
UV_to_SpdDir(U, V) Die Windrichtung und -geschwindigkeit werden aus der UV-Komponente des Windes berechnet. Die UV-Komponente repräsentiert U = Ost-West-Wind und V = Nord-Süd-Wind, und die Winddaten von GPV mit numerischer Vorhersage wie der Meteorological Agency MSM sind normalerweise die UV-Komponente. Im Allgemeinen hat der Westwind einen positiven Wert für den Ost-West-Wind und der Südwind einen positiven Wert für den Nord-Süd-Wind. Die Einheit der Windgeschwindigkeit kann eine beliebige Geschwindigkeitseinheit sein, z. B. * m / s, Knoten *. Die Windrichtung beträgt 360 Grad, nicht 0 Grad nach Norden. Wenn die Windgeschwindigkeit 0 ist, beträgt die Windrichtung ebenfalls 0 Grad.
** Parameter: **
** Kehrt zurück: **
SpdDir_to_UV(Wspd, Wdir) Im Gegensatz zu UV_to_SpdDir wird die UV-Komponente des Windes aus der Windrichtung und -geschwindigkeit berechnet. Die Einheit der Windgeschwindigkeit kann eine beliebige Geschwindigkeitseinheit sein, z. B. * m / s, Knoten *.
** Parameter: **
** Kehrt zurück: **
Deg_to_Dir8(Wdir, dir_zero=None, numeric=False) Konvertiert die Windrichtung von 360 Grad in 8 Richtungen. Der Rückgabewert ist das Alphabet "** N, NE, E, SE, S, SW, W, NW ", das die acht Richtungen von " Nord, Nordost, Ost, Südost, Süd, Südwest, West, Nordwest " darstellt. Wird konvertiert zu. Wenn die Windrichtung 0 ist, wird sie in die durch das Argument dir_zero angegebene Zeichenfolge konvertiert. Die Standardeinstellung ist Keine. Bei Flugwetter können Sie sie beispielsweise in " VRB **" konvertieren. Dies zeigt einen Zustand an, in dem die Windrichtung nicht festgelegt ist.
Wenn das Argument numerisch auf True gesetzt ist, ist die Ausgabe der numerische Wert "8, 1, 2, 3, 4, 5, 6, 7". Zu diesem Zeitpunkt ist der wahre Norden 8 statt 0. Wenn die Windrichtung 0 ist, ist der Ausgang 0.
** Parameter: **
** Kehrt zurück: **
Deg_to_Dir16(val, dir_zero=None, numeric=False) Konvertiert die Windrichtung von 360 Grad in 16 Richtungen, wie Deg_to_Dir8. Das heißt, der Rückgabewert ist ein Alphabet, das 16 Richtungen von "** Nord, Nordnordost, Nordost, Ostnordost, Ost, Ostsüdost, Südost, Südsüdost, Süd, Südsüdwest, Südwest, Westsüdwest, West, Westnordwest, Nordwest, Nordnordwest " darstellt. Es wird in " N / NNE / NE / ENE / E / ESE / SE / SSE / S / SSW / SW / WSW / W / WNW / NW / NNW **" konvertiert.
Wenn das Argument numerisch auf True gesetzt ist, werden die numerischen Werte "16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15" ausgegeben. Die Behandlung der Windrichtung 0 ist die gleiche wie bei Deg_to_Dir8.
** Parameter: **
** Kehrt zurück: **
Cross_Wind(Wspd, Wdir, RWY) Die Seitenwindkomponente (Seitenwind) des Windes wird aus der Windgeschwindigkeit, Windrichtung und Richtung der Landebahn am Flughafen berechnet. Die Einheit der Windgeschwindigkeit kann eine beliebige Geschwindigkeitseinheit sein, z. B. * m / s, Knoten *. Die Einheit der Windrichtung ist * Grad *. Die Landebahn wird in 360 Grad anstelle der zweistelligen RWY-Nummer angegeben. Geben Sie für RWY22 beispielsweise 220 Grad ein.
** Parameter: **
** Kehrt zurück: **
Tail_Wind(Wspd, Wdir, RWY) Die Rückenwindkomponente (Rückenwind) des Windes wird aus der Windgeschwindigkeit, Windrichtung und Richtung der Landebahn am Flughafen berechnet. Andere sind die gleichen wie Cross_Wind.
** Parameter: **
** Kehrt zurück: **
Head_Wind(Wspd, Wdir, RWY) Die Gegenwindkomponente (Gegenwind) des Windes wird aus der Windgeschwindigkeit, Windrichtung und Richtung der Landebahn am Flughafen berechnet. Entspricht dem entgegengesetzten Wert von Tail_Wind. Davon abgesehen ist es dasselbe wie Cross_Wind.
** Parameter: **
** Kehrt zurück: **
RH_to_Td(T, RH, formula="Bolton") Berechnen Sie die Taupunkttemperatur [C] aus der Temperatur [C] und der relativen Luftfeuchtigkeit [%]. Da die relative Luftfeuchtigkeit bei 0% nicht berechnet werden kann, wird sie so umgerechnet, dass 0,1% der Mindestwert ist. Der gesättigte Wasserdampfdruck [hPa] wird im Berechnungsprozess berechnet, und es gibt drei Arten von Berechnungsformeln. Standardmäßig wird die Bolton-Formel verwendet, aber die Tetens-Formel und die WMO-Approximationsformel können als Optionen angegeben werden. Siehe T_to_WVP für Details.
** Parameter: **
** Kehrt zurück: **
Td_to_RH(T, Td, formula="Bolton") Im Gegensatz zu RH_to_Td wird die relative Luftfeuchtigkeit [%] aus der Temperatur [C] und der Taupunkttemperatur [C] berechnet. Andere sind die gleichen wie RH_to_Td.
** Parameter: **
** Kehrt zurück: **
T_to_WVP(T, formula="Bolton") Berechnen Sie den gesättigten Wasserdampfdruck [hPa] aus der Temperatur [C]. Wenn Sie anstelle der Temperatur die Taupunkttemperatur [C] eingeben, wird der Wasserdampfdruck [hPa] berechnet. Es gibt drei Arten von Berechnungsformeln. Die Standardeinstellung verwendet die Bolton-Formel. Dies liegt daran, dass es durch die Formel implementiert wird, die von der Meteorologischen Agentur bei der Berechnung des äquivalenten Temperaturniveaus angenommen wurde. Siehe auch Theta_e. Soweit ich bestätigt habe, spielt es jedoch keine Rolle, welche Formel Sie in der Praxis verwenden. Ich denke, Sie können jede beliebige Formel verwenden. Persönlich bin ich mit der Tetens-Formel vertraut.
Tetens-Ausdruck:
** Parameter: **
** Kehrt zurück: **
WVP_to_T(es, formula="Bolton") Die Umkehrfunktion von T_to_WVP berechnet die Temperatur [C] aus dem gesättigten Wasserdampfdruck [hPa]. Wenn Sie den Wasserdampfdruck [hPa] eingeben, wird die Taupunkttemperatur [C] berechnet.
** Parameter: **
** Kehrt zurück: **
T_Td(T, Td) Die Feuchtigkeitszahl [C] wird aus der Temperatur [C] und der Taupunkttemperatur [C] berechnet. Es ist eine Funktion, die einfach eine Subtraktion durchführt.
** Parameter: **
** Kehrt zurück: **
Mixing_Ratio(Td, P, formula="Bolton") Berechnen Sie das Mischungsverhältnis [g / g] aus der Taupunkttemperatur [C] und dem Druck [hPa]. Da der gesättigte Wasserdampfdruck während des Berechnungsprozesses berechnet wird, kann die Formel mit der Formeloption angegeben werden. Siehe T_to_WVP für Optionstypen.
** Parameter: **
** Kehrt zurück: **
Theta(T, P) Berechnen Sie das Temperaturniveau [K] aus der Temperatur [C] und dem Druck [hPa].
** Parameter: **
** Kehrt zurück: **
Tlcl(T, Td) Berechnen Sie aus der Temperatur [K] und der Taupunkttemperatur [K] die Temperatur [K] in der Hub- und Einstellhöhe. Bitte beachten Sie, dass die Einheit für Temperatur und Taupunkttemperatur in [K] eingegeben wird. Es wird bei der Berechnung des äquivalenten Temperaturniveaus verwendet. Siehe auch Theta_e für die Formel.
** Parameter: **
** Kehrt zurück: **
Theta_e(T, Td, P, formula="Bolton") Das äquivalente Temperaturniveau [K] wird aus der Temperatur [C], der Taupunkttemperatur [C] und dem Druck [hPa] berechnet. Es scheint, dass es mehrere Formeln zur Berechnung des äquivalenten Temperaturniveaus gibt, aber hier Berechnungsmethode der Meteorologischen Agentur Es entspricht. Weitere Informationen finden Sie auf der letzten Seite des verknüpften PDF.
In der obigen PDF-Datei beträgt der Wert von $ R_ {d} \ / \ C_ {pd} $ ** 0,2854 **, aber ich denke, er beträgt normalerweise ** 0,2857 **. Ich weiß nicht, warum es ** 0,2854 ** ist, ob es sich um einen Druckfehler handelt oder ob es einen Grund gibt. Die Umsetzung angenommen ** 0,2857 **.
Da der gesättigte Wasserdampfdruck während des Berechnungsprozesses berechnet wird, kann die Formel mit der Formeloption angegeben werden. Der Standardwert ist "Bolton" gemäß der äquivalenten Temperaturberechnungsformel der Meteorological Agency. Siehe T_to_WVP für Optionstypen.
** Parameter: **
** Kehrt zurück: **
SSI(P0, P1, T0, T1, Td0, formula="Bolton") Berechnen Sie den SSI, der für den atmosphärischen Instabilitätsindex repräsentativ ist. Die Eingaben sind der Höhendruck [hPa], die Temperatur [C] und die Taupunkttemperatur [C] der zu hebenden Luft sowie der Höhendruck [hPa], die Temperatur [C] der angehobenen Luft. Normalerweise wird der SSI bei 850-500 hPa berechnet, kann jedoch bei jedem Druckniveau berechnet werden. Da der gesättigte Wasserdampfdruck während des Berechnungsprozesses berechnet wird, kann die Formel mit der Formeloption angegeben werden. Siehe T_to_WVP für Optionstypen.
** Parameter: **
** Kehrt zurück: **
K_Index(T850, Td850, T700, Td700, T500) Berechnet den K-Index, einen der atmosphärischen Instabilitätsindizes. Die Eingänge sind 850 hPa Temperatur [C] und Taupunkttemperatur [C], 700 hPa Temperatur [C] und Taupunkttemperatur [C] und 500 hPa Temperatur [C].
** Parameter: **
** Kehrt zurück: **
MPS_to_KT(x) Es ist eine Einheitsumrechnung der Geschwindigkeit wie Windgeschwindigkeit. Konvertieren Sie m / s in Knoten.
** Parameter: **
** Kehrt zurück: **
KT_to_MPS(x) Es ist eine Einheitsumrechnung der Geschwindigkeit wie Windgeschwindigkeit. Knoten in m / s umrechnen.
** Parameter: **
** Kehrt zurück: **
M_to_FT(x) Es ist eine Einheitsumrechnung der Länge wie Höhe. Meter in Fuß umrechnen.
** Parameter: **
** Kehrt zurück: **
FT_to_M(x) Es ist eine Einheitsumrechnung der Länge wie Höhe. Füße in Meter umrechnen.
** Parameter: **
** Kehrt zurück: **
degF_to_degC(x) Es ist eine Einheitsumrechnung der Temperatur. Konvertiert Hua [F] in Set [C].
** Parameter: **
** Kehrt zurück: **
degC_to_degF(x) Es ist eine Einheitsumrechnung der Temperatur. Konvertiert [C] in [F].
** Parameter: **
** Kehrt zurück: **
Wie eingangs erwähnt, habe ich das, was ich ursprünglich als Perl-Modul erstellt habe, in Python umgeschrieben und es einmal abgeschlossen.
In Zukunft werden wir auch die folgenden meteorologischen Faktoren berücksichtigen. Ich weiß nicht, ob Nachfrage besteht (lacht), aber ich würde es gerne mit dem Engagement von Wetterexperten schaffen.
Recommended Posts