我使用来自NCAR RDA的ERA5再分析数据。我使用metpy露点_from_relative_humidity((来计算露点,然后将其转换为DataArray对象,并分配与我拥有ERA5数据的Dataset对象匹配的坐标和维度。我想在metpy中使用可降水量_water((来计算可降水量,但我很难找到最有效的计算方法,因为它是针对阵列(探测(而不是数据网格设计的。我看过xr.apply_ufunc((,但我不确定这是否是xarray功能的合适应用程序,坦率地说,甚至不确定我将如何执行它。我可以为循环/while循环编写嵌套,但我觉得这不是最好的方法。有人有什么建议吗?我试了一下下面的行,但它告诉了我太多的位置参数,我认为这是不可能的,因为ds['TD']不是一个数组。
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)
我猜您正在运行MetPy 1.0(rc1(。为此,对precipitable_water()
函数的调用已更改为对bottom
和top
仅使用关键字参数。我希望以下内容能起作用:
pw = mpcalc.precipitable_water(ds['TD'], ds.level, bottom=1000.0, top=700.0)