爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3701|回复: 6

[脚本编辑] 两个年份夏季整层水汽输送差运行出错

[复制链接]

新浪微博达人勋

发表于 2016-12-27 17:16:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
下载了NCEP/NCAR Reanalysis 1的五个资料,准备计算1988年和1992年两年中春季水汽输送通量之差。写了如下脚本,运行时qus1988是空值。因非气象专业出身,不知问题出在哪。
'reinit'
'sdfopen E:\flux\11\uwnd.mon.mean.nc'
'sdfopen E:\flux\11\vwnd.mon.mean.nc'
'sdfopen E:\flux\11\shum.mon.mean.nc'
'sdfopen E:\flux\11\pres.mon.mean.nc'
'sdfopen E:\flux\11\hgt.mon.mean.nc'
'set lat 0 40'
'set lon 90 140'
'set map 1 1 1'
'draw map'
'set xaxis 90 140 10'
'set yaxis 0 40 10'
'set xlopts 1 4 0.12'
'set ylopts 1 4 0.12'
'set z 1 8'
'set t 483 485'
'define qu1988=uwnd.1*shum.3*1000'
'define qv1988=vwnd.2*shum.3*1000'
'define qus1988=vint(pres.4(lev=0)/100,qu1988,300)/9.8'
'define qvs1988=vint(pres.4(lev=0)/100,qv1988,300)/9.8'
'set z 1 8'
'set t 531 533'
'define qu1992=uwnd.1*shum.3*1000'
'define qv1992=vwnd.2*shum.3*1000'
'define qus1992=vint(pres.4(lev=0)/100,qu1992,300)/9.8'
'define qvs1992=vint(pres.4(lev=0)/100,qv1992,300)/9.8'
'define qus=qus1988-qus1992'
'define qvs=qvs1988-qvs1992'
'set z 1'
'set t 483'
'd qus;qvs'
'printim E:\flux\11\19881992.jpg x2000 y1600 white'

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-27 21:05:50 | 显示全部楼层
'set z 1 8'z不能变
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-27 22:38:10 | 显示全部楼层

非常感谢你!我参考了http://bbs.06climate.com/forum.p ... p;extra=&page=2
'sdfopen E:\TDDOWNLOAD\nc_data\hgt.1998.nc'
'sdfopen E:\TDDOWNLOAD\nc_data\shum.1998.nc'
'sdfopen E:\TDDOWNLOAD\nc_data\uwnd.1998.nc'
'sdfopen E:\TDDOWNLOAD\nc_data\vwnd.1998.nc'
'sdfopen E:\TDDOWNLOAD\nc_data\pres.sfc.1998.nc'
'set lat -10 80'
'set lon 60 160'
'set z 1 8'
'set time 12z01jun1998 12z31aug1998'
************vapar flux***************
'define uq=shum.2*uwnd.3*1000'
'define vq=shum.2*vwnd.4*1000'
'define uqs=vint(pres.5(lev=0)/100,uq,300)/9.8'
'define vqs=vint(pres.5(lev=0)/100,vq,300)/9.8'

现在有一个疑问,作者在这中间的'set z 1 8',是不是也有问题?而应为'set z 1'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-28 08:37:54 | 显示全部楼层
lorenth 发表于 2016-12-27 22:38
非常感谢你!我参考了http://bbs.06climate.com/forum.php?mod=viewthread&tid=6383&extra=&page=2,
's ...

这样可以?那么可能无所谓吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-29 11:40:21 | 显示全部楼层
男紫汗 发表于 2016-12-28 08:37
这样可以?那么可能无所谓吧

'reinit'
'sdfopen E:\flux\pres.mon.mean.nc'
'set lat 0 40'
'set lon 90 140'
'set t 1 778'
'define p=pres'
'close 1'
'sdfopen E:\flux\uwnd.mon.mean.nc'
'sdfopen E:\flux\vwnd.mon.mean.nc'
'sdfopen E:\flux\shum.mon.mean.nc'
'define qus=vint(p,uwnd.1*shum.3,300)/100'
'define qvs=vint(p,vwnd.2*shum.3,300)/100'
'define qusm1988=ave(qus,t=483,t=485,1)'
'define qvsm1988=ave(qvs,t=483,t=485,1)'
'define qusm1992=ave(qus,t=531,t=533,1)'
'define qvsm1992=ave(qvs,t=531,t=533,1)'

'subplot 2 1 2'
'set parea 0.5 6.5 2 5.5'
'set grads off'
'set timelab off'
'set lon 90 140'
'set lat 0 40'
'set xaxis 90 140 10'
'set yaxis 0 40 10'
'set xlopts 1 7 0.15'
'set ylopts 1 7 0.15'
'set gxout vector'
'set map 1 1 5'
len = 0.5
scale = 6000
'set arrlab off'
'set arrscl 'len' 'scale
'd qusm1988;qvsm1988'
'q w2xy 95 37'
x1=subwrd(result,3)
y1=subwrd(result,6)
'set strsiz 0.2 0.2'
'set font 1'
'draw string 'x1' 'y1' 1988'

'subplot 2 2 2'
'set parea 5 11 2 5.5'
'set grads off'
'set timelab off'
'set lon 90 140'
'set lat 0 40'
'set xaxis 90 140 10'
'set yaxis 0 40 10'
'set xlopts 1 7 0.15'
'set ylopts 1 7 0.15'
'draw map'
'set map 1 1 5'
'set gxout vector'
len = 0.5
scale = 6000
xrit = 6
ybot = 1.4
'set arrscl 'len' 'scale
'd qusm1992;qvsm1992'
'set arrlab off'
rc = arrow(xrit-0.25,ybot+0.2,len,scale)
'q w2xy 95 37'
x1=subwrd(result,3)
y1=subwrd(result,6)
'set strsiz 0.2 0.2'
'set font 1'
'draw string 'x1' 'y1' 1992'
'printim E:\flux\19881992.jpg x2000 y1600 white'

function arrow(x,y,len,scale)
'set line 1 1 4'
'draw line 'x-len/2.' 'y' 'x+len/2.' 'y
'draw line 'x+len/2.-0.05' 'y+0.025' 'x+len/2.' 'y
'draw line 'x+len/2.-0.05' 'y-0.025' 'x+len/2.' 'y
'set string 1 c'
'set strsiz 0.1'
'draw string 'x' 'y-0.1' 'scale
return
用以上脚本,计算的1988年、1992年春季整层水汽输送通量值一样(见图),显然不对。另外,1988和1992年的水汽输送通量差值能否这样计算'define qusm=qusm1988-qusm1992' 、'define qvsm=qvsm1988-qvsm1992'

1988\1992春季整层水汽输送通量

1988\1992春季整层水汽输送通量
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-29 13:02:17 | 显示全部楼层
减一下不就知道是不是一样了,可以
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-29 13:11:19 | 显示全部楼层
男紫汗 发表于 2016-12-29 13:02
减一下不就知道是不是一样了,可以

两年相减试过的,计算结果均为零。我的疑惑是脚本中对1988、1992年春季整层水汽通量计算应该有误。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表