爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15923|回复: 30

[秀图] 关于只画大于和小于某一值的风场(问题解决)

[复制链接]

新浪微博达人勋

发表于 2014-6-30 10:30:55 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 marclevoy 于 2014-6-30 20:27 编辑

我看到论坛有人问到过用grads要怎么画大于或者小于某一值的风场图,家园里面的回答有两种,一种是用maskout实现(我也是用的这种方法),另一种是论坛river大侠提供的用set cmin/set cmax来实现,帖子:http://bbs.06climate.com/forum.p ... 19862&extra=&page=1
我在比较两个方法的时候发现了一个问题,按照我们的理解,这两个方法是应该会出来一样的图的,但实际有差别,希望大家注意。下面图给出了差别。
我不知道差别出在哪里,但我选着了maskout的这个方法,主要是感觉更准确,而且颜色可调,用river的方法优点是比较简单方便,但有一些符合条件的点没有画出来,而且只能是彩色的。@river
图中是用我的数据画出的大于4m/s的风场,右上角是用maskout画出来的,左上角是river的方法画出来的,下面是两个的差异,下图中白色箭头的就是两者有差异的各点,我取了一个有差异的点(28N,112E)的数值进行计算,结果是大于4m/s的说明了maskout算出的更加准确。
maskout方法:d maskout(u,mag(u,v)-4);maskout(v,mag(u,v)-4)
river的方法:set cmin 4; d u;v;mag(u,v)

感谢兰溪的提醒,我找到了两者不一样的原因,这个是由于river的方法是利用set cmin来去掉我们不想要的值,实际上是根据每个点的全风速的等值线来判定的,这时grads会有一个默认的间隔,默认的间隔比较大所以省略了一些点,如果我们要用river的方法,我们只用在river的方法中加上一句,set cint 0.1,这个间隔最好是尽量小一点可以是0.0001,因为当所有的点都画出来的时候,间隔再小不会有什么变化。再display就会和maskout方法画出来的图一样。而我们用maskout的方法是先判断的每个点的情况在用vector的方式画出的,所以只要我们没有skip,每个点都会画出来。(说的比较混乱,大家谅解,反正如果用river的方法就多加一句set cint就会得到准确的风场)@mofangbao @river @兰溪之水 @lqouc
test_maskout_vecter.png

评分

参与人数 2金钱 +26 贡献 +4 收起 理由
river + 16 + 2 继续研究看看到底问题在哪
mofangbao + 10 + 2 多谢分享 希望能继续钻研

查看全部评分

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

新浪微博达人勋

 楼主| 发表于 2014-6-30 10:37:50 | 显示全部楼层
斑竹和大佬们是不是可以给点奖励啊,冲击大雨中,这年头挣点积分太不容易了。@mofangbao @river
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-6-30 11:32:50 | 显示全部楼层
楼主发现的问题在river原帖里面基本都有提到哈,想要奖励没问题,不过希望你能把cmin的问题解决了,找出到底为什么会有不同。这样这个帖子才有意义。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2014-6-30 12:36:23 | 显示全部楼层
本帖最后由 兰溪之水 于 2014-6-30 12:38 编辑

因为设置cmin是不画小于4的,但不表达大于4的都画,应该grads会根据幅值范围调整填色~还有楼主是不是把图贴反了。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-30 12:41:10 | 显示全部楼层
lqouc 发表于 2014-6-30 11:32
楼主发现的问题在river原帖里面基本都有提到哈,想要奖励没问题,不过希望你能把cmin的问题解决了,找出到 ...

我觉得你很武断,怎么就没有意义了,我至少告诉大家以后不要用set cmin的方式来画啊,这样对于做科研的来说就是不准确的啊。还有我是跟清风开玩笑的,没有让你这个版主给奖励。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-30 12:44:49 | 显示全部楼层
兰溪之水 发表于 2014-6-30 12:36
因为设置cmin是不画小于4的,但不表达大于4的都画,应该grads会根据幅值范围调整填色~还有楼主是不是把图贴 ...

可能是这样的,这说明cmin不能这样用在风场里面,至少不是很准确。图好像是上面两幅放反了。谢谢指出
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2014-6-30 13:14:01 | 显示全部楼层
用gxout grid填值看看具体的区别   这两种方法到底有啥区别要看源码了  感兴趣的应该可以自己钻研一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-30 19:48:57 | 显示全部楼层
我个人感觉d maskout(u,mag(u,v)-4);maskout(v,mag(u,v)-4)是拿全风速来和分量进行了比较,应该是这种方法画出来的缺少一些吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-30 20:01:56 | 显示全部楼层
river 发表于 2014-6-30 19:48
我个人感觉d maskout(u,mag(u,v)-4);maskout(v,mag(u,v)-4)是拿全风速来和分量进行了比较,应该是这种方法 ...

不是的,是你的那个方法缺少一些,帖子中对图的描述写错了的,你看到你的方法是彩色图,明显要缺少一些点。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-30 20:02:50 | 显示全部楼层
river 发表于 2014-6-30 19:48
我个人感觉d maskout(u,mag(u,v)-4);maskout(v,mag(u,v)-4)是拿全风速来和分量进行了比较,应该是这种方法 ...

但是我按照清风说的用set gxout grid看,两种方法是一样的
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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