爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 151129|回复: 159

[秀图] 改良了的画风场参考箭头脚本

  [复制链接]

新浪微博达人勋

发表于 2014-1-18 17:27:34 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 marclevoy 于 2014-1-20 17:08 编辑

之前看到过好多个版本标注风场参考箭头的类似脚本文件,觉得他们各有优缺点,所以自己稍微整合了一个,主要参考的有lanxi版主的drawvc.gs:http://bbs.06climate.com/forum.php?mod=viewthread&tid=15303,还有我以前大学一个老师的setarrow.gs,再次对前辈们表示感谢。

新的脚本叫drawvect.gs,这个脚本较兰溪版主的主要改进是:
1,箭头的大小,粗细,颜色都为可调节,还有背景颜色也是可以任意调节。
2,标注的数值的粗细,颜色也可以调节。
3,多加了一个标注字符串的设置,比如我们平时想在后面加上单位什么的比较合适。
4,除了可以画在任何位置外,还给设置了平常比较常用的4个位置,在图的四个角上,本别叫做,bl,br,tl,tr。这样省去了设置位置时调节的时间。
使用说明:方括号括起来的参数是可以选填的。如果填了pos这个参数,那么x,y这两个参数就不用写了。其实pos就是相当于我默认设置了四个画图中参考箭头常用的位置,这样比较方便。
say 'Usage: rc = drawvect XVAR YVAR POS|X Y LEN SCALE [COLOR] [LTHICK] [CTHICK] [CSIZE] [RTGCOL] [STR]'; say '       POS   : bl,br,tl,tr,'bl'means drawing the arrow in the bottom-left of the plot, and so on.               
say '       XVAR  : Var in x-direction'               
say '       YVAR  : Var in y-direction'               
say '       X,Y   : arrow position';               
say '       LEN   : arrow length';               
say '       SCALE : actual size accounted by the arrow length';               
say '       COLOR : arrow&string color. Default, color = 1';               
say '       LTHICK: arrow thickness. Default, lthick = 6';               
say '       CTHICK: string thickness. Default, cthick = 6';               
say '       CSIZE : string size. Default, csize = 0.15';               
say '       RTGCOL: color of the filled rectangle. Default, color = 1';                say '       STR   : string want to draw, e.g.: units: m/s';

不多说,其他功能大家自己测试,下面给出的是我测试画的脚本和一副图。
'reinit'
'open ……/uwnd.ctl'
'open ……/vwnd.ctl'

'set grads off'
'set grid off'
'set mproj scaled'
'set lat 0 70'
'set lon 60 140'
'set mpdset cnworld'
'setpanel 1 2 1 2 0.3 0.1'
'drawvect skip(djf,2,2) djf.2 tl 0.3 10 3 12 1 0.1 1 m/s'
'setpanel 2 2 1 2 0.3 0.1'
'drawvect skip(djf,2,2) djf.2 br 0.6 10 2 1 12 0.2 15 m/s'
'setpanel 1 2 2 2 0.3 0.1'
'drawvect skip(djf,2,2) djf.2 2 2 0.5 10 3 6 6 0.15 2'
'setpanel 2 2 2 2 0.3 0.1'
'drawvect skip(djf,2,2) djf.2 bl 0.5 10 1 6 6 0.15 3'
'gxprint ……/test_drawvect.eps  white -e 0.1'

test_drawvect.png drawvect.gs (6.23 KB, 下载次数: 896)

评分

参与人数 4金钱 +66 贡献 +17 体力 +200 收起 理由
mofangbao + 20 + 10
兰溪之水 + 20 + 2 + 200
river + 6 + 1 赞一个!
传说中的谁 + 20 + 4 支持原创

查看全部评分

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

新浪微博达人勋

发表于 2016-11-16 20:51:56 | 显示全部楼层
UP主,我的命令是'drawvect skip(UGRDprs*1.2861,1,1) skip(VGRDprs*1,1,1) br 0.6 20 0 1 12 0.2 1 m/s'
结果画出来是绿色的,我想问问能不能改成黑色的?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-1-18 17:57:53 | 显示全部楼层
感谢分享                 
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-18 18:51:27 | 显示全部楼层
当设置为bl等时,x y就不用设置了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-18 20:32:15 | 显示全部楼层
不错,感谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2014-1-18 21:54:16 | 显示全部楼层
嗯,有想法不错~不过当初我设计的初衷是用比较常用的形式,还有比较少的参数设置来达到目的,所以才设置那么少选项的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-18 23:16:45 | 显示全部楼层

恩是的,我其实也是因为在最近作图过程中发现有些需要设置,所里稍微改了一下脚本,还有好多需要像大神学习。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-20 13:58:34 | 显示全部楼层
'drawvect skip(djf,2,2) djf.2 tl 0.3 10 3 12 1 0.1 1 m/s'
这函数中的各参数分别代表什么呢?能否解释下呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-20 17:01:59 | 显示全部楼层
kc121 发表于 2014-1-20 13:58
'drawvect skip(djf,2,2) djf.2 tl 0.3 10 3 12 1 0.1 1 m/s'
这函数中的各参数分别代表什么呢?能否解释下 ...

好的,不好意思,我在脚本里面是写了usage了的,我重新去编辑一下帖子给大家写出来吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-20 17:08:19 | 显示全部楼层
kc121 发表于 2014-1-20 13:58
'drawvect skip(djf,2,2) djf.2 tl 0.3 10 3 12 1 0.1 1 m/s'
这函数中的各参数分别代表什么呢?能否解释下 ...

使用说明:方括号括起来的参数是可以选填的。如果填了pos这个参数,那么x,y这两个参数就不用写了。其实pos就是相当于我默认设置了四个画图中参考箭头常用的位置,这样比较方便。
say 'Usage: rc = drawvect XVAR YVAR POS|X Y LEN SCALE [COLOR] [LTHICK] [CTHICK] [CSIZE] [RTGCOL] [STR]';
say '       POS   : bl,br,tl,tr,'bl'means drawing the arrow in the bottom-left of the plot, and so on.               
say '       XVAR  : Var in x-direction'               
say '       YVAR  : Var in y-direction'               
say '       X,Y   : arrow position';               
say '       LEN   : arrow length';               
say '       SCALE : actual size accounted by the arrow length';               
say '       COLOR : arrow&string color. Default, color = 1';               
say '       LTHICK: arrow thickness. Default, lthick = 6';               
say '       CTHICK: string thickness. Default, cthick = 6';               
say '       CSIZE : string size. Default, csize = 0.15';               
say '       RTGCOL: color of the filled rectangle. Default, color = 1';                say '       STR   : string want to draw, e.g.: units: m/s';
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-24 17:14:40 | 显示全部楼层
好东西啊!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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