爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6096|回复: 7

[已解决]画的出梯度图画不出1/梯度的图?

[复制链接]

新浪微博达人勋

发表于 2014-6-26 02:03:59 | 显示全部楼层 |阅读模式
GrADS
系统平台:
问题截图:
问题概况: 用GRADS画梯度,画出梯度GRAD图没问题(并且没有梯度=0的情况),但是画不出1/GRAD?画出来的图见下(忽视白边,此为CDIFF导致)。
我看过提问的智慧: 看过
自己思考时长(天): 4

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

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

x
本帖最后由 echo要读书 于 2014-7-3 23:40 编辑

a.png

RT,此为我计算中的一部分,因为1/GA画不出来导致后面的步骤也画不出。
求助。。求解决方法。。

截取计算梯度的部分:


'reinit'

'open z:\prog\grd\fro\tempmean.ctl'
'open z:\prog\grd\fro\rhummean.ctl'
'open z:\prog\grd\fro\uwndmean.ctl'
'open z:\prog\grd\fro\vwndmean.ctl'
'open z:\prog\grd\fro\850uwndmean.ctl'
'open z:\prog\grd\fro\850vwndmean.ctl'

'set display color white'
'c'

'set xlopts 1 8 0.25'
'set ylopts 1 8 0.25'
'set clopts 1 5 0.15'

'set mpdset cnworld'
'set xlevs 90 95 100 105 110 115 120 125 130'
'set ylevs 15 20 25 30 35 40 45'

'set lon 80 130'
'set lat 10 50'

'define m=0.0'
'define n=0.0'
'define uu=0.0'
'define vv=0.0'

i=1
while(i<=46)

'set t 'i''
'define tem=air.1'
'define rh=rhum.2'
'define wu=uwnd.3'
'define wv=vwnd.4'
'define ku=uwnd.5'
'define kv=vwnd.6'
****mixing ratio*****

'define es=(6.112*exp(17.67*(tem-273.15)/(tem-36)))'
'define pot=rh*(0.62197*es/(1000-0.378*es))/100.'
****gradient***

'define r=6.37e6'
'define dtx = cdiff(pot,x)'
'define dty = cdiff(pot,y)'
'define dx = cdiff(lon,x)*r*cos(lat*3.1416/180)*3.1416/180'
'define dy = cdiff(lat,y)*r*3.1416/180'
'define ga=mag(dtx/dx,dty/dy)''m=m+ga'
i=i+1
endwhile

'set gxout shaded'
'set grid off'
'set grads off'
*'d m'
'd 1/m'
'run cbarn'



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

新浪微博达人勋

 楼主| 发表于 2014-6-26 02:17:49 | 显示全部楼层
本帖最后由 echo要读书 于 2014-6-26 03:41 编辑

但是我把1/GA展开写成CA=(dx*dy)/(mag(dtx*dy,dty*dx))有的时候能画出来部分。。WHY。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-26 21:46:47 | 显示全部楼层
乘以一个系数,将值控制在1左右试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-26 22:34:25 | 显示全部楼层
虫儿飞 发表于 2014-6-26 21:46
乘以一个系数,将值控制在1左右试试

我在最后画图的那步乘了,还是会缺值的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-26 22:55:32 | 显示全部楼层
echo要读书 发表于 2014-6-26 22:34
我在最后画图的那步乘了,还是会缺值的。

你在计算梯度那里就乘以一个系数试试,这类问题我没有遇到过,我的猜测是倒数值和系统默认的缺测值一致,但是得要多试试才行
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-27 21:01:20 | 显示全部楼层
本帖最后由 瞌睡宝宝 于 2014-6-27 21:03 编辑

楼主,您好。我把你的程序下载了调试了下,数据用的你提供网站的测试数据。循环测试可以看出是第4天和第46天存在这一问题,取了第四天发现发现你图中空白地区的原始计算值mag(dtx*dy,dty*dx)值为0,取倒数后grads估计是自身问题,没去研究,导致了空白的产生,我做了小处理 mag(dtx*dy,dty*dx)+0.0000001,可以正常出图,而且对你原始图没有偏差,带入46天循环后也基本正常。Ps:我加的小数位数已经算是最大了,再添加精度会继续出现空白缺值区。附上结果
a.png

调试程序代码: a.gs (2.38 KB, 下载次数: 29)

评分

参与人数 1金钱 +5 收起 理由
echo要读书 + 5 thanks

查看全部评分

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

新浪微博达人勋

发表于 2014-6-28 17:56:35 | 显示全部楼层
想basemap? eb328.gif
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-7-7 20:54:07 | 显示全部楼层
.............
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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