爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5010|回复: 10

[图形美化] 色块与等值线无法叠加

[复制链接]

新浪微博达人勋

发表于 2016-1-3 15:04:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 杨雨轩 于 2016-1-3 15:06 编辑

360截图20160103150412046.jpg
本来想将12月上旬的水汽通量散度画成色块和等值线的,但无法叠加,下面是gs文件,希望大家能指出错误。
'reinit'
file='f:\yangyuxuan\theory\201512\vaporfluxdiv\vaporfluxdiv_850_1201_10.gmf'
'enable print 'file
'set vpage 0 11 0 8.5'
*'set parea 0 11 1 8'
'set mpdset hires'
'set mpdset cnworld'
'set poli on'
'set map 15 1 8'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\air.2015.nc'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\shum.2015.nc'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\uwnd.2015.nc'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\vwnd.2015.nc'
'set lev 850'
'set t 335 344'
'define tt=air.1'
'define e=(6.112*exp((17.67*(tt-273.16))/(tt-29.65)))'
'define qs=(0.622*e/(lev-0.378*e))'
'define q=qs*shum.2/100'
'define uq=q*uwnd.3/9.8'
'define vq=q*vwnd.4/9.8'
'define qdiv=hdivg(uq,vq)'
'define ssqdiv=ave(qdiv,t=335,t=344,1)'
'set grads off'
'set grid off'
'set lat 0 40';'set lon 100 140'
'set xlint 4';'set ylint 4'
'set csmooth on'
'set gxout shaded'
'set cint 2'
'd ssqdiv*pow(10,13)'
*'cbarn 0.85 1 8.78 4.65'
'cbarn.gs'
'set gxout contour'
'set ccolor 1'
'set cint 2'
'd ssqdiv*pow(10,13)'
*'define es=6.11*exp(17.26*(tt-273.15)/(tt-35.86))'
*'define qs=0.622*es/(lev-0.378*es)'
*'define qq=shum.2/100*qs'
*'define uq=1.0/9.8*vint(pressfc,ugrdprs*qq,100*100)'
*'define vq=1.0/9.8*vint(pressfc,vgrdprs*qq,100*100)'
*'define qdiv=100*hdivg(uq,vq)'
'print'
'clear'
'set grads off'
'set grid off'
'disable print'
'close 4'
'close 3'
'close 2'
'close 1'
'reinit'
还有一个问题,就是图左右下角的标识无法去除,明明已经写了'set grads off' 'set grid off',而且时间总是恒定在一个时间点。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-3 19:22:33 | 显示全部楼层
建议楼主去看grads的基础知识。等值线和色斑图的叠加只是画图顺序的问题,下方的标志和时间也是命令先后的问题······
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2016-1-4 18:19:51 | 显示全部楼层
river 发表于 2016-1-3 19:22
建议楼主去看grads的基础知识。等值线和色斑图的叠加只是画图顺序的问题,下方的标志和时间也是命令先后的 ...

我是先画的色块,再画的等值线,理论上应该出图,而且下标的时间以前也可以去掉的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-4 21:28:43 | 显示全部楼层
好诡异,没看出端倪。不过我一般在open *.gmf之前就设置‘set grads off’
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-4 21:34:09 | 显示全部楼层
杨雨轩 发表于 2016-1-4 18:19
我是先画的色块,再画的等值线,理论上应该出图,而且下标的时间以前也可以去掉的

仔细看了一下,gs基本没什么问题呢······检查grads的问题吧,没有什么报错之类的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-1-5 10:12:35 | 显示全部楼层
river 发表于 2016-1-4 21:34
仔细看了一下,gs基本没什么问题呢······检查grads的问题吧,没有什么报错之类的


我怀疑是'set t 335 344' 有问题,如果换成某一个时刻,可以正常出图,但是时间段就有问题,应该是和求平均有冲突,后来就换了一种方法,不用grads自带的平均函数,而是用了循环先求和,再求平均,也可以出图。暂时解决了问题,但不知道之前那样该如何解决。

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

新浪微博达人勋

 楼主| 发表于 2016-1-5 10:13:17 | 显示全部楼层
星雨 发表于 2016-1-4 21:28
好诡异,没看出端倪。不过我一般在open *.gmf之前就设置‘set grads off’

我怀疑是'set t 335 344' 有问题,如果换成某一个时刻,可以正常出图,但是时间段就有问题,应该是和求平均有冲突,后来就换了一种方法,不用grads自带的平均函数,而是用了循环先求和,再求平均,也可以出图。暂时解决了问题,但不知道之前那样该如何解决。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-1-5 10:14:17 | 显示全部楼层
本帖最后由 杨雨轩 于 2016-1-5 10:16 编辑

修改后的gs:
'reinit'
file='f:\yangyuxuan\theory\201512\vaporfluxdiv\vaporfluxdiv_850_1201_10.gmf'
'enable print 'file
'set vpage 0 11 0 8.5'
*'set parea 0 11 1 8'
'set mpdset hires'
'set mpdset cnworld'
'set poli on'
'set map 15 1 8'
'set grads off'
'set grid off'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\air.2015.nc'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\shum.2015.nc'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\uwnd.2015.nc'
'sdfopen f:\yangyuxuan\theory\201512\vaporfluxdiv\vwnd.2015.nc'

'set lev 850'
'set t 335'
'define tt=air.1'
'define e=(6.112*exp((17.67*(tt-273.16))/(tt-29.65)))'
'define qs=(0.622*e/(lev-0.378*e))'
'define q=qs*shum.2/100'
'define uq=q*uwnd.3/9.8'
'define vq=q*vwnd.4/9.8'
'define qdiv=hdivg(uq,vq)*1000'


i=336
while(i<=344)
'set t 'i
*'set t 335 344'
'define tt=air.1'
'define e=(6.112*exp((17.67*(tt-273.16))/(tt-29.65)))'
'define qs=(0.622*e/(lev-0.378*e))'
'define q=qs*shum.2/100'
'uq=uq+q*uwnd.3/9.8'
'vq=vq+q*vwnd.4/9.8'
'qdiv=qdiv+hdivg(uq,vq)*1000'
i=i+1
endwhile

'define auq=uq/10'
'define avq=vq/10'
'define aqdiv=qdiv/10'
*'define auq=ave(uq,t=335,t=344,1)'
*'define avq=ave(vq,t=335,t=344,1)'
*'define aqdiv=hdivg(auq,avq)*1000'
*'define aqdiv=ave(qdiv,t=335,t=344,1)'

'set lat -20 40';'set lon 60 140'
'set xlint 10';'set ylint 10'

'set csmooth on'
'set gxout shaded'
'd aqdiv'
'cbarn 0.85 0 5.52 0.31'
*'set gxout contour'
*'d aqdiv'
'set gxout vector'
'set arrscl 0.15'
'set arrowhead 0.05'
'd auq;avq'


'print'


'disable print'
'clear'
'close 5'
'close 4'
'close 3'
'close 2'
'close 1'
'reinit'
出图:
360截图20160105101839482.jpg

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

新浪微博达人勋

发表于 2016-1-5 11:33:53 | 显示全部楼层
不太懂,学习一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-5 12:20:47 | 显示全部楼层
杨雨轩 发表于 2016-1-5 10:12
我怀疑是'set t 335 344' 有问题,如果换成某一个时刻,可以正常出图,但是时间段就有问题,应该是和求 ...

哦,有求平均的啊。那需要在求平均那个语句前面加上set t 随便一个数字就可以了,这样才能出图······
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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