计算可降水量的Python方法?

2024-10-03 06:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是NCAR RDA的ERA5再分析数据。我正在使用metpy dewpoint_from_relative_湿度()来计算dewpoint,然后将其转换为DataArray对象,并指定与我拥有ERA5数据的Dataset对象相匹配的坐标和维度。我想使用metpy中的precipitable_water()计算可降水量,但我正在努力找出执行此计算的最有效方法,因为它设计用于阵列(测深)而不是数据网格。我已经看过xr.apply_ufunc(),但我不确定这是否是xarray功能的适当应用,或者坦率地说,我将如何执行它。我可以编写嵌套for循环/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)

Tags: 数据对象fromdscoordsleveltdrelative
1条回答
网友
1楼 · 发布于 2024-10-03 06:19:23

我猜你正在运行Metpy1.0(rc1)。为此,对precipitable_water()函数的调用已更改为对bottomtop仅使用关键字参数。我希望以下方法能够奏效:

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

相关问题 更多 >