ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-27 23:57:22  阅读:1018  来源: 互联网

标签:netcdf python numpy


我是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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有