爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 29965|回复: 11

[讨论] 关于垂直风廓线、风羽的具体画法(应用matlab)

[复制链接]
发表于 2018-11-26 13:44:04 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 糊涂塌克 于 2018-11-26 13:44 编辑

应用的资料:风廓线雷达的数据(采样高度、水平风向、水平风速、垂直风速)
实现目标: 画纵轴为采样高度,横轴为时间的垂直风廓线风羽图。
本人matlab新手,第一次处理此类数据,总结下经验,望有所贡献。

1. 重要:首先要搞清楚的问题——u,v 风速的计算方法
本人画图过程中疏忽了这个问题,导致出图与风廓线雷达软件显示的图不符,才认真思考这个看似简单的问题。

      参考:NCAR Wind Direction Quick Reference   
      https://www.eol.ucar.edu/content/wind-direction-quick-reference

u以西风为正,v以南风为正,dir为风向(角度0-360度),spd为水平风向。
风廓线雷达数据给出的风向为角度,计算时要转化为弧度
   uu=-spd.*sin(dir*pi/180);
   vv=-spd.*cos(dir*pi/180);


2.风羽的画法
参考论坛中的帖子:利用matlab画垂直风廓线风羽图
http://bbs.06climate.com/forum.p ... 35934&fromuid=29052
(出处: 气象家园)

function [] = windbarb2(x,y,u,v,varargin)
可能遇到的问题:应用此function, 将x和y换为时间和高度时出错。(所以说我是matlab新手...)
windbarb2(hour,height,uu,vv,1);       %出现错误,提示“Inconsistent dimensions for inputs.”
解决:要对时间和高度格点化meshgrid处理一下,
[x,y]=meshgrid(hour,height);
windbarb2(x,y,uu,vv,1);

得到的图如下:

垂直风廓线风羽图

垂直风廓线风羽图



3. 将要解决的问题

想将垂直速度在图中表现出来,有两种方法:
1)风羽显示颜色来代表垂直速度(可能要改windbar的function源文件,具体还不知如何做)
2)格点填色代表垂直速度(可以实现,但是比较丑)

仍在研究中,欢迎大家和我讨论。


密码修改失败请联系微信:mofangbao
 楼主| 发表于 2020-6-30 09:49:30 | 显示全部楼层
藿稥丶誫炁 发表于 2020-6-29 11:40
您好,请问时间您是以什么格式带入的呢?谢谢~

批量读入风廓线雷达的数据(txt), 每个文件的第二行有个时间,例如:20170712120000,用str2num的函数将年月日小时分别转为数字,然后根据你的需求继续做
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-28 20:11:32 | 显示全部楼层
本帖最后由 /kfEspresso 于 2018-11-28 20:13 编辑

还不如从winbar函数摘取风羽部分,再自己手写手画一张图。
调用函数是为了更好使用,而不是受限于函数,根据函数来调整自己啊。
密码修改失败请联系微信:mofangbao
发表于 2018-12-27 20:01:38 | 显示全部楼层
您好,我现在在画风廓线随时间的变化图,但是每次画出来风向标都有问题,而且调用函数也不成功,看到您发的帖子成功画出来了,所以想请教一下在调用函数那块应该怎么处理?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2019-1-17 09:29:28 | 显示全部楼层
LPR 发表于 2018-12-27 20:01
您好,我现在在画风廓线随时间的变化图,但是每次画出来风向标都有问题,而且调用函数也不成功,看到您发的 ...

首先,你要保证分解出来的u、v数组是正确的,然后就可以直接调用函数啦, 贴一段我的程序你看一下,希望有帮助! 调用函数出错的话可以先看下它的报错提示,再研究一下这个函数windbar2.m文件,里面可以找到什么情况下会这样报错。

uu=-spd.*sin(dir*pi/180);
vv=-spd.*cos(dir*pi/180);
figure(1);
[x,y]=meshgrid(hh,height);         %我设置hh为小时,height为高度
windbarb2(x,y,uu,vv,1);
ylabel('高度 (KM)','fontsize',10);
xlabel('时间','fontsize',10);
密码修改失败请联系微信:mofangbao
发表于 2019-3-1 11:37:50 | 显示全部楼层
糊涂塌克 发表于 2019-1-17 09:29
首先,你要保证分解出来的u、v数组是正确的,然后就可以直接调用函数啦, 贴一段我的程序你看一下,希望 ...

谢谢,之后我用ncl画出来了,ncl有专门的函数,要简单点,多谢!
密码修改失败请联系微信:mofangbao
发表于 2019-10-20 14:22:31 | 显示全部楼层
请问楼主现在垂直速度的画法解决了吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-6-29 11:40:53 | 显示全部楼层
您好,请问时间您是以什么格式带入的呢?谢谢~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-7-7 07:40:39 | 显示全部楼层
糊涂塌克 发表于 2020-6-30 09:49
批量读入风廓线雷达的数据(txt), 每个文件的第二行有个时间,例如:20170712120000,用str2num的函数将 ...

感谢您的回复,请问您风羽图增加颜色您实现了吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-7-7 17:40:14 | 显示全部楼层
感谢奉献,学习一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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