爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8275|回复: 10

借助Fortran实现有条件的风矢量绘图

[复制链接]

新浪微博达人勋

发表于 2013-10-2 12:35:09 | 显示全部楼层 |阅读模式

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

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

x
这里的“有条件”,指的是对于风矢量和大小的判断,例如你输出的风矢量大小参差不齐,难以设置标尺,这时你可以设置矢量和小于某一定值的风矢量不画,但通过grads不好对矢量大小做出筛选,我也是在论坛发帖得到@lsd1984 这位同仁的启发,有人希望能把东西分享出来,我就贴出来跟大家交流一下,其实很简单。
parameter(nx=144,ny=73,n=25,undef=-9.99e+02)
dimension u1(nx,ny,n),u2(nx,ny,n),v1(nx,ny,n),v2(nx,ny,n)
real s

open(2,file='E:\lww\rxg_res\sst_uv_precip\res_u2.grd',form='binary')
read(2) (((u1(i,j,it),i=1,nx),j=1,ny),it=1,n)
close(2)

open(1,file='E:\lww\rxg_res\sst_uv_precip\res_v2.grd',form='binary')
read(1) (((v1(i,j,it),i=1,nx),j=1,ny),it=1,n)
close(1)

do i=1,nx
do j=1,ny
do it=1,n
s=0.0
s=sqrt(u1(i,j,it)*u1(i,j,it)+v1(i,j,it)*v1(i,j,it))
!write(*,*) s
if(s.lt.0.2) then
u2(i,j,it)=-999
v2(i,j,it)=-999
else
u2(i,j,it)=u1(i,j,it)
v2(i,j,it)=v1(i,j,it)
endif
enddo;enddo;enddo

open (4,file='E:\lww\rxg_res\sst_uv_precip\res_u22.grd',form='binary')
write (4) (((u2(i,j,it),i=1,nx),j=1,ny),it=1,n)
open (5,file='E:\lww\rxg_res\sst_uv_precip\res_v22.grd',form='binary')
write (5) (((v2(i,j,it),i=1,nx),j=1,ny),it=1,n)
end


就用这个fortran实现的 之后你不想要的部分就成了缺测值,不会在图中显示。我给出张图给大家看看效果,大家只看风矢量图里我还叠加了海温及降水。

QQ截图20131002123403.png

评分

参与人数 2金钱 +18 贡献 +2 收起 理由
言深深 + 10 + 2
river + 8

查看全部评分

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

新浪微博达人勋

 成长值: 19710
发表于 2013-10-2 13:13:17 | 显示全部楼层
可以直接用GrADS的maskout函数即可设置,如
d maskout(u,mag(u,v)-0.2);maskout(v,mag(u,v)-0.2)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-2 13:19:37 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-2 15:45:37 | 显示全部楼层
{:soso_e179:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-2 16:33:48 | 显示全部楼层
对grads的不熟但是熟悉fortran的人来说这也是个好办法,支持一下!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-10 21:06:48 | 显示全部楼层
兰溪之水 发表于 2013-10-2 13:13
可以直接用GrADS的maskout函数即可设置,如
d maskout(u,mag(u,v)-0.2);maskout(v,mag(u,v)-0.2)

请问版主,maskout函数中-0.2是什么意思呢?比如,画超过0.246显著性检验的风场,应该减去多少0.246还是减去根号下(0.246^2)*2?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-25 12:45:04 | 显示全部楼层
能告诉我多年平均矢量风场是怎么画的么·谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-18 19:43:17 | 显示全部楼层
我也不太明白
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-10-22 08:41:35 | 显示全部楼层
GWJjiayou 发表于 2014-3-10 21:06
请问版主,maskout函数中-0.2是什么意思呢?比如,画超过0.246显著性检验的风场,应该减去多少0.246还是 ...

想知道这个阈值是怎么算出来的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-13 20:46:27 | 显示全部楼层
多谢解惑,不胜感激,找了好久只画部分风场问题的解决方法
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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