Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la version originale en anglais.

Visualisez les données directionnelles avec Compass Plot

Cet exemple illustre les calculs matriciels dans MATLAB et l'utilisation d'un compas dans une application de visualisation MATLAB pour afficher la distribution directionnelle. Dans l'exemple, comme point de départ, vous utilisez l'un des modèles de code fournis par les applications MATLAB Analysis et MATLAB Visualizations dans ThingSpeak.

ThingSpeak ™ canal 12397 contient des données météorologiques provenant d'une station météorologique située au sommet d'un parking sur le campus MathWorks à Natick, Massachusetts. Le champ 1 contient la mesure de la vitesse du vent.

Créer une visualisation MATLAB à partir du code du modèle

Pour créer une visualisation de tracé de boussole d'un ensemble de données à partir d'un canal ThingSpeak , vous pouvez créer un script MATLAB à l'aide d'un modèle de code fourni.

Accédez à l’onglet Apps et sélectionnez MATLAB Visualizations. Cliquez sur New, sélectionnez Visualize directional data with compass plot, puis cliquez sur Create.

Visualiser vos données

ThingSpeak remplit le champ MATLAB Code avec le code de modèle pour lire les données, puis générer le tracé de zone.

1) Définissez les variables pour communiquer avec ThingSpeak. Le canal de la station météo est public, vous n'avez donc pas besoin d'ajouter la clé d'API en lecture. Si vous lisez depuis votre propre canal, vous pouvez modifier ces valeurs.

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

2) Utilisez thingSpeakRead pour lire 60 points de données de direction du vent à partir du champ 1. Lire les données de vitesse du vent du champ 2.

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

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

3) Convertissez la direction du vent de degrés en radians et déplacez la direction pour l'aligner avec le nord. Ces équations fonctionnent sur chaque élément du tableau lu à partir de ThingSpeak.

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

4) Convertissez les mesures du vent en coordonnées cartésiennes pour assurer la cohérence avec les entrées du tracé compass. Vous pouvez modifier le code du modèle pour l'adapter à votre application. Par exemple, modifiez le code pour changer le nombre de points à lire avec thingSpeakRead.

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

5) Appuyez sur Save and Run pour générer le tracé. Le tracé de la boussole est généré à partir de données en temps réel, votre visualisation est donc différente de ce tracé. Le graphique montre la distribution directionnelle et la force des mesures récentes du vent.

6) Vous pouvez éventuellement ajouter des visualisations enregistrées à votre canal. Dans Display Settings, utilisez le signe plus à côté de Add/Edit this Visualization to a Channel pour développer la liste des canaux.

Cochez la case du canal auquel vous souhaitez ajouter la visualisation. Pour ajouter des visualisations privées, sélectionnez Private View. Pour partager l'URL et ajouter la visualisation à la Public View, cliquez sur Create a public URL. Pour mettre à jour vos sélections, cliquez sur Save Display Settings.

Afficher la moyenne pondérée des mesures du vent

Vous pouvez comparer plusieurs sorties sur le même tracé avec les visualisations MATLAB. Par exemple, vous pouvez ajouter une flèche indiquant la direction moyenne pondérée.

1) Calculez la moyenne pondérée.

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

2) Convertissez les directions du vent mesurées en coordonnées cartésiennes. Utilisez hold on pour conserver les données sur le même tracé, puis générez le tracé. Utilisez le type de ligne 'ro-' pour distinguer la ligne moyenne des autres.

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

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

Voir aussi

Fonctions

Rubriques