首页 > 解决方案 > Pythonic 计算可降水量的方法?

问题描述

我正在使用来自 NCAR RDA 的 ERA5 再分析数据。我正在使用metpy dewpoint_from_relative_humidity() 来计算露点,然后将其转换为DataArray 对象并分配与我拥有ERA5 数据的Dataset 对象匹配的坐标和尺寸。我想在metpy 中使用precipitable_water() 来计算可降水量,但是我正在努力找出执行此计算的最有效方法,因为它旨在处理数组(探测)而不是数据网格。我已经查看了 xr.apply_ufunc() 但我不确定这是否是该 xarray 功能的适当应用程序,或者坦率地说我将如何执行它。我可以编写嵌套的 for 循环/while 循环,但我认为这不是最好的方法。有没有人有什么建议?我尝试了下面的行,但它'

ds['TD']  = xr.DataArray(mpcalc.dewpoint_from_relative_humidity(ds['T'],ds['R']),dims=['level','latitude','longitude'],coords=ds.coords)
ds['PW'] = xr.DataArray(mpcalc.precipitable_water(ds['TD'],ds.level,1000.0,700.0),dims=['level','latitude','longitude'],coords=ds.coords)

标签: pythonmetpy

解决方案


我猜你正在运行 MetPy 1.0 (rc1)。为此,对precipitable_water()函数的调用已更改为对bottomand使用仅关键字参数top。我希望以下工作:

pw = mpcalc.precipitable_water(ds['TD'], ds.level, bottom=1000.0, top=700.0)

推荐阅读