Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

コンパスプロットによる方向データの視覚化

この例では、 MATLABでの行列計算と、 MATLAB Visualizationsアプリでのコンパス プロットを使用して方向分布を表示する方法を示します。この例では、開始点として、 ThingSpeakのMATLAB AnalysisアプリとMATLAB Visualizationsアプリが提供するコード テンプレートの 1 つを使用します。

ThingSpeak™ channel 12397 には、マサチューセッツ州ネイティックのMathWorksキャンパスの駐車場の上にある気象観測所からの気象データが含まれています。フィールド 1 には風速の測定値が含まれます。

«テンプレート コードからMATLABビジュアライゼーションを作成する»

ThingSpeakチャネルからの一連のデータのコンパス プロット視覚化を作成するには、提供されているコード テンプレートを使用してMATLABスクリプトを作成できます。

[アプリ] タブに移動し、[MATLAB Visualizations] を選択します。「新規」をクリックし、「コンパスプロットで方向データを視覚化」を選択し、「作成」をクリックします。

データを視覚化する

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 Visualizationsを使用すると、同じプロット上の複数の出力を比較できます。たとえば、加重平均の方向を示す矢印を追加できます。

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;

参考

関数

関連する例

詳細