首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Metpy中平流计算中的问题

Metpy中平流计算中的问题
EN

Stack Overflow用户
提问于 2021-01-23 09:35:17
回答 1查看 421关注 0票数 1

我下载了覆盖30°W-30°E;0-20°N的ERA5 netcdf数据。该数据包含水平风分量(u,v)和比湿度(q)。我需要使用Metpy函数平流来计算湿度的水平平流。

我知道这个错误

代码语言:javascript
运行
复制
/usr/local/lib/python3.8/dist-packages/metpy/xarray.py:1445: UserWarning: Vertical dimension number not found. Defaulting to (..., Z, Y, X) order.
  warnings.warn(
Traceback (most recent call last):
  File "temp_avect_calc.py", line 33, in <module>
    adv = mpcalc.advection(q, [u, v], (dx, dy))
  File "/usr/local/lib/python3.8/dist-packages/metpy/xarray.py", line 1470, in wrapper
    grid_deltas_from_dataarray(grid_prototype, kind='actual')
  File "/usr/local/lib/python3.8/dist-packages/metpy/xarray.py", line 1380, in grid_deltas_from_dataarray
    geod=f.metpy.pyproj_crs.get_geod()))
  File "/usr/local/lib/python3.8/dist-packages/metpy/xarray.py", line 253, in pyproj_crs
    return self.crs.to_pyproj()
  File "/usr/local/lib/python3.8/dist-packages/metpy/xarray.py", line 233, in crs
    raise AttributeError('crs attribute is not available.')
AttributeError: crs attribute is not available.

下面显示了我正在使用的代码

代码语言:javascript
运行
复制
import cartopy.crs as ccrs
import metpy.calc as mpcalc
from metpy.units import units
import xarray as xr

fname  =  "uwnd_vwnd_shum_750hPa_2019.nc"
ds = xr.open_dataset(fname)

lat = ds["latitude"][::-1]
lon = ds["longitude"]


u = ds["u"][:,  ::-1, :] 
v = ds["v"][:,  ::-1, :] 
q = ds["q"][:,  ::-1, :] 


dx, dy = mpcalc.lat_lon_grid_deltas(lon, lat)

adv = mpcalc.advection(q, [u, v], (dx, dy))
EN

回答 1

Stack Overflow用户

发布于 2021-01-26 22:29:54

根据您提供的错误,看起来您使用的是MetPy 1.0。如果是这种情况,则metpy.calc.advection的函数签名已经更改[链接],并且还可以使用xarray [示例]进行简化。您可以删除计算网格间距,因为这将从您的纬度和经度坐标中提取。为此,您必须让MetPy解析数据集中的一些信息来创建crs信息,在本例中是来自纬度和经度的信息。下面的示例应该可以使用MetPy 1.0上的数据。

代码语言:javascript
运行
复制
ds = xr.open_dataset(fname).metpy.parse_cf()

adv = mpcalc.advection(ds["q"], ds["u"], ds["v"])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65857648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档