Skip to content

Commit

Permalink
Implement array submodule
Browse files Browse the repository at this point in the history
  • Loading branch information
sandorkertesz committed Apr 23, 2024
1 parent 6f60de1 commit 490f8f4
Show file tree
Hide file tree
Showing 3 changed files with 269 additions and 87 deletions.
163 changes: 162 additions & 1 deletion earthkit/meteo/thermo/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,162 @@
from .thermo import * # noqa
# (C) Copyright 2021- ECMWF.

# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.

# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.


from . import thermo as array


def celsius_to_kelvin(*args, **kwargs):
return array.celsius_to_kelvin(*args, **kwargs)


def kelvin_to_celsius(*args, **kwargs):
return array.kelvin_to_celsius(*args, **kwargs)


def specific_humidity_from_mixing_ratio(*args, **kwargs):
return array.specific_humidity_from_mixing_ratio(*args, **kwargs)


def mixing_ratio_from_specific_humidity(*args, **kwargs):
return array.mixing_ratio_from_specific_humidity(*args, **kwargs)


def vapour_pressure_from_specific_humidity(*args, **kwargs):
return array.vapour_pressure_from_specific_humidity(*args, **kwargs)


def vapour_pressure_from_mixing_ratio(*args, **kwargs):
return array.vapour_pressure_from_mixing_ratio(*args, **kwargs)


def specific_humidity_from_vapour_pressure(*args, **kwargs):
return array.specific_humidity_from_vapour_pressure(*args, **kwargs)


def mixing_ratio_from_vapour_pressure(*args, **kwargs):
return array.mixing_ratio_from_vapour_pressure(*args, **kwargs)


def saturation_vapour_pressure(*args, **kwargs):
return array.saturation_vapour_pressure(*args, **kwargs)


def saturation_mixing_ratio(*args, **kwargs):
return array.saturation_mixing_ratio(*args, **kwargs)


def saturation_specific_humidity(*args, **kwargs):
return array.saturation_specific_humidity(*args, **kwargs)


def saturation_vapour_pressure_slope(*args, **kwargs):
return array.saturation_vapour_pressure_slope(*args, **kwargs)


def saturation_mixing_ratio_slope(*args, **kwargs):
return array.saturation_mixing_ratio_slope(*args, **kwargs)


def saturation_specific_humidity_slope(*args, **kwargs):
return array.saturation_specific_humidity_slope(*args, **kwargs)


def temperature_from_saturation_vapour_pressure(*args, **kwargs):
return array.temperature_from_saturation_vapour_pressure(*args, **kwargs)


def relative_humidity_from_dewpoint(*args, **kwargs):
return array.relative_humidity_from_dewpoint(*args, **kwargs)


def relative_humidity_from_specific_humidity(*args, **kwargs):
return array.relative_humidity_from_specific_humidity(*args, **kwargs)


def specific_humidity_from_dewpoint(*args, **kwargs):
return array.specific_humidity_from_dewpoint(*args, **kwargs)


def mixing_ratio_from_dewpoint(*args, **kwargs):
return array.mixing_ratio_from_dewpoint(*args, **kwargs)


def specific_humidity_from_relative_humidity(*args, **kwargs):
return array.specific_humidity_from_relative_humidity(*args, **kwargs)


def dewpoint_from_relative_humidity(*args, **kwargs):
return array.dewpoint_from_relative_humidity(*args, **kwargs)


def dewpoint_from_specific_humidity(*args, **kwargs):
return array.dewpoint_from_specific_humidity(*args, **kwargs)


def virtual_temperature(*args, **kwargs):
return array.virtual_temperature(*args, **kwargs)


def virtual_potential_temperature(*args, **kwargs):
return array.virtual_potential_temperature(*args, **kwargs)


def potential_temperature(*args, **kwargs):
return array.potential_temperature(*args, **kwargs)


def temperature_from_potential_temperature(*args, **kwargs):
return array.temperature_from_potential_temperature(*args, **kwargs)


def pressure_on_dry_adiabat(*args, **kwargs):
return array.pressure_on_dry_adiabat(*args, **kwargs)


def temperature_on_dry_adiabat(*args, **kwargs):
return array.temperature_on_dry_adiabat(*args, **kwargs)


def lcl_temperature(*args, **kwargs):
return array.lcl_temperature(*args, **kwargs)


def lcl(*args, **kwargs):
return array.lcl(*args, **kwargs)


def ept_from_dewpoint(*args, **kwargs):
return array.ept_from_dewpoint(*args, **kwargs)


def ept_from_specific_humidity(*args, **kwargs):
return array.ept_from_specific_humidity(*args, **kwargs)


def saturation_ept(*args, **kwargs):
return array.saturation_ept(*args, **kwargs)


def temperature_on_moist_adiabat(*args, **kwargs):
return array.temperature_on_moist_adiabat(*args, **kwargs)


def wet_bulb_temperature_from_dewpoint(*args, **kwargs):
return array.wet_bulb_temperature_from_dewpoint(*args, **kwargs)


def wet_bulb_temperature_from_specific_humidity(*args, **kwargs):
return array.wet_bulb_temperature_from_specific_humidity(*args, **kwargs)


def wet_bulb_potential_temperature_from_dewpoint(*args, **kwargs):
return array.wet_bulb_potential_temperature_from_dewpoint(*args, **kwargs)


def wet_bulb_potential_temperature_from_specific_humidity(*args, **kwargs):
return array.wet_bulb_potential_temperature_from_specific_humidity(*args, **kwargs)
19 changes: 19 additions & 0 deletions tests/thermo/test_thermo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# (C) Copyright 2023 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.


import numpy as np

from earthkit.meteo import thermo


def test_high_level_celsius_to_kelvin():
t = np.array([-10, 23.6])
v = thermo.celsius_to_kelvin(t)
v_ref = np.array([263.16, 296.76])
np.testing.assert_allclose(v, v_ref)
Loading

0 comments on commit 490f8f4

Please sign in to comment.