- 积分
- 2281
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-11
- 最后登录
- 1970-1-1
|
发表于 2016-8-18 22:17:24
|
显示全部楼层
本帖最后由 良辰 于 2016-8-18 22:26 编辑
王老师想问一下,这个句话mpv[t,z-1,:,:] = pv.array想实现什么意思,如果我想单输出pv1,还需要写成这种格式吗?我修改了一段位涡(干位涡)的计算代码,就是假相当位温替换为位温,只输出pv1一项。但是不知道最后怎么给数组赋值!代码如下:不知道最后一句的写法!
# Calculate dry potential vorticity
print 'Calculate dry potential vorticity...'
pv = zeros([nt,nz,ny,nx], dtype='double')
pv = DimArray(pv, rh.dims)
pv.setdimvalue(1, lev[1:nz-1])
for t in range(nt):
tt = meteof.gettime(t)
print tt.strftime('%Y-%m-%d %H:00')
for z in range(1, nz-1):
f = zeros([ny,nx])
f1 = 2*7.292*sin(lat*3.14159/180.0)*0.00001
for i in range(nx):
f[:,i] = f1
g = 9.8
dp = 100*(lev[z-1]-lev[z+1])
dtheta = theta[t,z-1,:,:]-theta[t,z+1,:,:]
du = uwnd[t,z-1,:,:]-uwnd[t,z+1,:,:]
dv = vwnd[t,z-1,:,:]-vwnd[t,z+1,:,:]
dx1 = 2.0*6370949.0*cos(lat*3.14159/180.0)*3.14159/180.0
dx = zeros([ny,nx])
for i in range(nx):
dx[:,i] = dx1
dy = 2.0*6370949.0*3.14159/180.0
dtx = cdiff(eqt[t,z,:,:], 1)
dty = cdiff(eqt[t,z,:,:], 0)
pv = -g*(vort[t,z,:,:]+f)*dtheta/dp
# pv[t,z-1,:,:] = pv.array
已经解决!!!变量名重复了,做如下修改即可!
pvd = -g*(vort[t,z,:,:]+f)*dtheta/dp
pv[t,z-1,:,:] = pvd.array
|
|