爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 18193|回复: 13

[脚本编辑] 分享一个UV和风向风速转换的脚本

[复制链接]

新浪微博达人勋

发表于 2017-9-26 10:06:00 | 显示全部楼层 |阅读模式

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

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

x
最近利用GrADS处理风场数据,想计算风速的月平均和风向的频率分布,但绝大部格点气候数据都是UV分量形式。百度到了一款Fortran的UV和Wind互转程序(http://blog.chinaunix.net/uid-523040-id-2388503.html)
! Copyright (c) 2006 Yongjun ZHENG
! Author : Yongjun ZHENG
! Date : 5/9/2006

但由于处理的数据文件数目非常巨大,又涉及Grib2文件读取,本人并不想用Fortran处理,基于Yongjun ZHENG的程序算法,编写了GrADS的脚本程序。其中UV计算风速的命令非常简单,只需要mag函数即可,但UV计算风向并不容易。因为对某个矩阵进行风向计算后会出现很多风向值大于360度的情况,需找出大于360的值,然后再减去360。这项工作换成Fortran或者Matlab,那只是一句话的事情,因为Fortran中有求余的函数mod,Matlab更是没得说,GrADS中内置变量计算是并无此相关函数,只有math_mod和math_fmod,仅可用于gs脚本内的数值形式计算,也就是说,需要对风速矩阵的每个元素进行循环判断,效率可见一斑。
突然想起,曾经看到过一个海浪图填色gs脚本,为了避免海岸线的缺测值出现白色的锯齿,采用将所有陆地位置的海浪高度值赋值为0的方法。
这样,风向处理可以类似。
第一步,利用maskout函数,将公式计算的风向值dt0<360部分设置为缺测值,赋给临时变量sw1,
             利用const函数,将sw1缺测值部分设置为常数360,sw1=sw1-360,这样缺测值部分变成了0,dt0>=360部分变成了dt0-360
第二步,利用maskout函数,将公式计算的风向值dt0>360部分设置为缺测值,赋给临时变量sw2,
             利用const函数,将sw2缺测值部分设置为常数0,这样原先dt0>360缺测值部分变成了0,dt0<360部分保持不变
第三步,新的风向值wdir=sw1+sw2

以上是本人设计的GrADS计算风向的算法,分享出来,敬请大家批评指正。

uw2wind的Fortran程序和GrADS脚本见附件。

uv2wind.rar

1.13 KB, 下载次数: 219, 下载积分: 金钱 -5

UV和Wind互转

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

新浪微博达人勋

发表于 2017-9-26 10:12:27 | 显示全部楼层
感谢楼主分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-26 10:53:32 | 显示全部楼层
厉害了,谢谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-11-25 17:24:47 | 显示全部楼层

感谢分享!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-11-25 18:12:10 | 显示全部楼层
很厉害,谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-1-21 10:16:16 | 显示全部楼层
好厉害,学习啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-1-22 09:56:50 | 显示全部楼层
你好,楼主?请教下这个GRADS运行脚本只需要在GS文件中调用即可吗?我有分别两个文件u、v风场,我想把她读成格点值为风速风向输出,怎么用你这个脚本呢,我调用出错了,也改了变量名。谢谢指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-1-22 14:11:19 | 显示全部楼层
已经解决啦,谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-5-8 15:50:36 | 显示全部楼层
非常好用的程序,谢谢啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-23 08:37:08 | 显示全部楼层
谢谢大神,试试看能不能用哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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