diff --git a/mlair/helpers/helpers.py b/mlair/helpers/helpers.py index f69e5b202cf3cdf35d4cf2f7767c8a2804e2da67..ca69f28557c6386f021b137e5861660f40b867d9 100644 --- a/mlair/helpers/helpers.py +++ b/mlair/helpers/helpers.py @@ -57,7 +57,7 @@ def to_list(obj: Any) -> List: :return: list containing obj, or obj itself (if obj was already a list) """ - if isinstance(obj, (set, tuple)): + if isinstance(obj, (set, tuple, type({}.keys()))): obj = list(obj) elif not isinstance(obj, list): obj = [obj] diff --git a/mlair/helpers/meteo.py b/mlair/helpers/meteo.py new file mode 100644 index 0000000000000000000000000000000000000000..c43d4ff23239f4ebff2b130779b3f8e2323620ca --- /dev/null +++ b/mlair/helpers/meteo.py @@ -0,0 +1,14 @@ + +import numpy as np + + +def relative_humidity_from_dewpoint(dew, temp): + return np.clip(100 * e_sat(dew) / e_sat(temp), 0, 100) + + +def e_sat(temperature): + a1 = 611.21 # Pa + a3 = 17.502 + a4 = 32.19 # K + T0 = 273.16 # K + return a1 * np.exp(a3 * (temperature - T0) / (temperature - a4)) diff --git a/test/test_helpers/test_helpers.py b/test/test_helpers/test_helpers.py index 87c0f9ecb7f0a67267f0e24f9da035fc8315d56d..6f787d5835bd917fcfc55341d93a2d302f2c6e6e 100644 --- a/test/test_helpers/test_helpers.py +++ b/test/test_helpers/test_helpers.py @@ -499,9 +499,9 @@ class TestFilterDictByValue: def test_filter_dict_by_value(self): data_origin = {'o3': '', 'no': '', 'no2': '', 'relhum': 'REA', 'u': 'REA', 'cloudcover': 'REA', 'temp': 'era5'} expected = {'temp': 'era5'} - assert check_nested_equality(filter_dict_by_value(data_origin, "era", True), expected) is True + assert check_nested_equality(filter_dict_by_value(data_origin, "era5", True), expected) is True expected = {'o3': '', 'no': '', 'no2': '', 'relhum': 'REA', 'u': 'REA', 'cloudcover': 'REA'} - assert check_nested_equality(filter_dict_by_value(data_origin, "era", False), expected) is True + assert check_nested_equality(filter_dict_by_value(data_origin, "era5", False), expected) is True expected = {'o3': '', 'no': '', 'no2': ''} assert check_nested_equality(filter_dict_by_value(data_origin, "", True), expected) is True