我是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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。