Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

使用罗盘图可视化方向数据

此示例演示了 MATLAB 中的矩阵计算以及在 MATLAB 可视化 App 中使用罗盘图来显示方向分布。在示例中,您将使用 ThingSpeak 中的 MATLAB Analysis 和 MATLAB Visualizations App 提供的代码模板之一作为起点。

ThingSpeak™ channel 12397 包含来自马萨诸塞州内蒂克 MathWorks 园区停车场顶部气象站的天气数据。字段 1 包含风速测量。

从模板代码创建 MATLAB 可视化

要创建来自 ThingSpeak通道的一组数据的罗盘图可视化,您可以使用提供的代码模板创建 MATLAB 脚本。

转到 App 选项卡并选择“MATLAB 可视化”。点击“新建”,选择“使用罗盘图可视化方向数据”,然后点击“创建”。

可视化您的数据

ThingSpeak 使用模板代码填充“MATLAB 代码”“”字段以读取数据,然后生成面积图。

1) 设置与 ThingSpeak 通信的变量。气象站通道是公共的,因此您不需要添加读取API密钥。如果您正在从自己的通道读取,则可以修改这些值。

readChannelID = 12397;
WindDirFieldID = 1;
WindSpeedFieldID = 2;
readAPIKey = '';

2)使用thingSpeakRead从字段1读取60点风向数据。从字段 2 读取风速数据。

windDir = thingSpeakRead(readChannelID,'Fields',WindDirFieldID,'NumPoints',60,...
'ReadKey',readAPIKey);

windSpeed = thingSpeakRead(readChannelID,'Fields',WindSpeedFieldID,'NumPoints',60,...
'ReadKey',readAPIKey);

3) 将风向从度数转换为弧度,并将风向转向北。这些方程对从 ThingSpeak 读取的数组中的每个元素进行运算。

rad = windDir*2*pi/360;
rad = rad+pi/2;

4) 将风测量值转换为笛卡尔坐标,以便与 compass 绘图输入保持一致。您可以编辑模板代码以适合您的应用。示例,编辑代码以更改要使用 thingSpeakRead 读取的点数。

u = cos(rad) .* windSpeed; 
v = sin(rad) .* windSpeed; 
compass(u,v);

5) 按 保存并运行 生成绘图。罗盘图是根据实时数据生成的,因此您的可视化效果与该图不同。该图显示了最近风测量的方向分布和强度。

6) 或者,您可以将保存的可视化添加到您的通道。在“显示设置”中,使用“将此可视化添加/编辑到通道”旁边的加号来展开通道列表。

选中要添加可视化的通道的复选框。要添加私有可视化,请选择“私有视图”。要共享 URL 并将可视化添加到“公共视图”,请点击“创建公共 URL”。要更新您的选择,请点击“保存显示设置”。

显示风测量的加权平均值

您可以使用 MATLAB 可视化比较同一图上的多个输出。示例,您可以添加指示加权平均方向的箭头。

1) 计算加权平均值。

aveDir = sum(rad.*windSpeed)/sum(windSpeed);

2) 将测量的风向转换为笛卡尔坐标。使用 hold on 将数据保留在同一图上,然后生成图。使用线类型 'ro-' 将平均线与其他线区分开。

w = mean(u); 
z = mean(v); 

% Generate the original plot.
compass(u,v);
hold on
c = compass(w,z,'ro-');
c.LineWidth = 2;

另请参阅

函数

相关示例

详细信息