编程语言
首页 > 编程语言> > 使用Python,np.gradient计算u和v的风散度

使用Python,np.gradient计算u和v的风散度

作者:互联网

我是Python的新手,目前正在尝试复制以前使用GrAD的绘图等.我想使用netCDF气候模型文件中的u和v风场(只是通过特定湿度q缩放)来计算每个网格框的散度.

通过无休止的搜索,我知道我需要使用np.gradient和np.sum的某种组合,但是找不到正确的组合.我只知道要“手动”进行计算,
divg = dqu / dx dqv / dy
我知道以下内容是错误的,但这是迄今为止我所能做到的最好的…

nc = Dataset(ifile)
q = np.array(nc.variables['hus'][0,:,:])
u = np.array(nc.variables['ua'][0,:,:])
v = np.array(nc.variables['va'][0,:,:])
lon=nc.variables['lon'][:]
lat=nc.variables['lat'][:]

qu = q*u
qv = q*v  

dqu/dx, dqu/dy = np.gradient(qu, [dx, dy])
dqv/dx, dqv/dy = np.gradient(qv, [dx, dy])

divg = np.sum(dqu/dx, dqv/dy)

这给出了错误“ SyntaxError:无法分配给运算符”.

任何帮助将非常感激.

解决方法:

尝试类似:

dqu_dx, dqu_dy = np.gradient(qu, [dx, dy])
dqv_dx, dqv_dy = np.gradient(qv, [dx, dy])

您不能在python中分配任何操作;这些都是语法错误:

a + b = 3
a * b = 7
# or, in your case:
a / b = 9

更新

以下是Pinetwig的注释:a / b不是有效的标识符名称;它是运算符(的返回值).

标签:netcdf,python,numpy
来源: https://codeday.me/bug/20191027/1948363.html