使用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