根据风向和风速计算u和v分量

357次观看(过去30天)
你好,
我想在地图上画出风场。
我有纬度向量,长度向量,风速向量和风向向量。
据我所知,最简单的方法是使用quiverm或quiver(但quiver不能在地图上绘图)。
要使用这两个函数,我需要u和v分量,我没有它们,我也没有公式中cos和sin函数的角度。
如何计算它们?将风向转换为数学程度(用公式)并不简单。
用最简单的方式感谢你的帮助。
谢谢你!

接受的答案

Les贝克汉姆
Les贝克汉姆 2022年4月19日
编辑:Les贝克汉姆 2022年4月19日
实际上,这很简单。
v(北(y)分量)和u(东(x)分量)可由S(风速)和D(方向)计算如下
S = 10;% example -替换为您的数据
D = 30;例如,东北北吹来的风
D = 270 - D;%转换风向到Matlab图形坐标约定
u = S*cosd(D);
v = S*sind(D);
箭袋(0,0,u, v)
平等的
-10 xlim ([10])
-10 ylim ([10])
网格
9日评论
Les贝克汉姆
Les贝克汉姆 2022年4月22日
不客气
那么你介意接受我的回答吗?
不幸的是,我没有映射工具箱,所以我不能在这方面提供太多帮助。但是,看看在线文档,它看起来很像quiver。你可能需要在quiverm中使用scale参数(使用以下语法: H = quiverm(lat,lon,deltalat,deltalon,刻度) )使用你的u和v速度组件作为deltalat和deltalon参数。
祝你好运。

登录发表评论。

更多答案(1)

塔拉
塔拉 2022年4月19日
编辑:塔拉 2022年4月19日
我以前做过类似的工作。如果你有实验数据,你的传感器应该产生两个时间历史;速度(Mag)和方向(Dir)具有相同的长度,取决于您的采样频率。据我所知,没有传感器可以读取3D,如果你想要Z方向的测量,你需要旋转你的传感器。
你说得对,风向可能很棘手,因为风向的微小变化可能会导致探测器读数的显著变化。换句话说,您的探头可以读取350到10度,但实际上这些都是相似的值。你需要有策略地把你的探针放在合适的角度。如果取平均值,就得到180度,完全相反的角度!下面的图表说明了这个问题:
我找不到我以前用过的代码,但我做了类似这样的事情:
截断第一个和最后几个数据点
%nn=你想从一开始截断的点数
%mm=要从末尾截断的点数
Vx =总和((Mag (nn:毫米))。* cosd ((Dir (nn:毫米))))/ (mm-nn + 1);% V (i) .cos(θ(i)) / n
v =总和((Mag (nn:毫米))。*信德((Dir (nn:毫米))))/ (mm-nn + 1);
角= atand (v / Vx);
%,现在您需要创建一个x y z域(在您的情况下,纬度高度)
% Vz=0
quiver3 (x, y, z, Vx, v, 0);
下面是我从实验中得到的图。我测量了3个不同高度建筑物周围的风速。

类别

找到更多资料海洋学和水文学帮助中心而且文件交换

标签

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!