Skip to content

Commit

Permalink
Merge pull request Unidata#1093 from tjwixtrom/q_from_dewpt
Browse files Browse the repository at this point in the history
Specific Humidity From Dewpoint
dopplershift authored Jul 17, 2019
2 parents 472b041 + b877b3e commit 929c583
Showing 3 changed files with 37 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/_templates/overrides/metpy.calc.rst
Original file line number Diff line number Diff line change
@@ -51,6 +51,7 @@ calc
saturation_equivalent_potential_temperature
saturation_mixing_ratio
saturation_vapor_pressure
specific_humidity_from_dewpoint
specific_humidity_from_mixing_ratio
thickness_hydrostatic_from_relative_humidity
vapor_pressure
8 changes: 8 additions & 0 deletions metpy/calc/tests/test_thermo.py
Original file line number Diff line number Diff line change
@@ -25,6 +25,7 @@
saturation_equivalent_potential_temperature,
saturation_mixing_ratio,
saturation_vapor_pressure,
specific_humidity_from_dewpoint,
specific_humidity_from_mixing_ratio, static_stability,
surface_based_cape_cin, temperature_from_potential_temperature,
thickness_hydrostatic,
@@ -1319,3 +1320,10 @@ def test_vertical_velocity_moist_air():
w_truth = 0.968897557 * units('cm/s')
w_test = vertical_velocity(omega, 850. * units.mbar, 280. * units.K, 8 * units('g/kg'))
assert_almost_equal(w_test, w_truth, 6)


def test_specific_humidity_from_dewpoint():
"""Specific humidity from dewpoint."""
p = 1013.25 * units.mbar
q = specific_humidity_from_dewpoint(16.973 * units.degC, p)
assert_almost_equal(q, 0.012 * units.dimensionless, 3)
28 changes: 28 additions & 0 deletions metpy/calc/thermo.py
Original file line number Diff line number Diff line change
@@ -2414,3 +2414,31 @@ def vertical_velocity(omega, pressure, temperature, mixing=0):
"""
rho = density(pressure, temperature, mixing)
return (omega / (- mpconsts.g * rho)).to('m/s')


@exporter.export
@preprocess_xarray
@check_units('[temperature]', '[pressure]')
def specific_humidity_from_dewpoint(dewpoint, pressure):
r"""Calculate the specific humidity from the dewpoint temperature and pressure.
Parameters
----------
dewpoint: `pint.Quantity`
dewpoint temperature
pressure: `pint.Quantity`
pressure
Returns
-------
`pint.Quantity`
Specific humidity
See Also
--------
mixing_ratio, saturation_mixing_ratio
"""
mixing_ratio = saturation_mixing_ratio(pressure, dewpoint)
return specific_humidity_from_mixing_ratio(mixing_ratio)

0 comments on commit 929c583

Please sign in to comment.