Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

Visualice datos direccionales con un gráfico de brújula

Este ejemplo demuestra cálculos matriciales en MATLAB y el uso de un gráfico de brújula en una aplicación MATLAB Visualizations para mostrar la distribución direccional. En el ejemplo, como punto de partida, se utiliza una de las plantillas de código que proporcionan las aplicaciones MATLAB Analysis y MATLAB Visualizations en ThingSpeak.

ThingSpeak™ channel 12397 contiene datos meteorológicos de una estación meteorológica situada en lo alto de un aparcamiento en el campus de MathWorks en Natick, Massachusetts. El campo 1 contiene la medición de la velocidad del viento.

Crear una visualización en MATLAB a partir de código de plantilla

Para crear una visualización gráfica de un conjunto de datos de un canal ThingSpeak, puede crear un script de MATLAB utilizando una plantilla de código proporcionada.

Vaya a la pestaña Aplicaciones y seleccione Visualizaciones MATLAB. Haga clic en Nuevo, seleccione Visualizar datos direccionales con trazado de brújula y haga clic en Crear.

Visualice sus datos

ThingSpeak completa el campo Código MATLAB con código de plantilla para leer los datos y luego generar el gráfico de área.

1) Establecer las variables para comunicarse con ThingSpeak. El canal de la estación meteorológica es público, por lo que no es necesario agregar la clave API de lectura. Si estás leyendo desde tu propio canal, puedes modificar estos valores.

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

2) Utilice thingSpeakRead para leer 60 puntos de datos de dirección del viento del campo 1. Lea los datos de velocidad del viento del campo 2.

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

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

3) Convierta la dirección del viento de grados a radianes y cambie la dirección para alinearla con el norte. Estas ecuaciones operan en cada elemento de la matriz leída de ThingSpeak.

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

4) Convierta las mediciones del viento a coordenadas cartesianas para mantener la coherencia con las entradas del gráfico compass . Puede editar el código de la plantilla para que se ajuste a su aplicación. Por ejemplo, edite el código para cambiar la cantidad de puntos a leer con thingSpeakRead.

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

5) Presione Guardar y ejecutarpara generar el gráfico. El gráfico de la brújula se genera a partir de datos en tiempo real, por lo que su visualización es diferente de este gráfico. El gráfico muestra la distribución direccional y la fuerza de las mediciones recientes del viento.

6) Opcionalmente, puedes agregar visualizaciones guardadas a tu canal. En Configuración de pantalla, use el signo más junto a Agregar/Editar esta visualización a un canal para expandir la lista de canales.

Seleccione la casilla de verificación del canal al que desea agregar la visualización. Para agregar visualizaciones privadas, seleccione Vista privada. Para compartir la URL y agregar la visualización a la Vista pública, haga clic en Crear una URL pública. Para actualizar sus selecciones, haga clic en Guardar configuración de pantalla.

Mostrar Promedio Ponderado de Mediciones de Viento

Puede comparar múltiples resultados en el mismo gráfico con MATLAB Visualizations. Por ejemplo, puede agregar una flecha que indique la dirección del promedio ponderado.

1) Calcular el promedio ponderado.

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

2) Convierta las direcciones del viento medidas a coordenadas cartesianas. Utilice hold on para mantener los datos en el mismo gráfico y luego genere el gráfico. Utilice el tipo de línea 'ro-' para distinguir la línea promedio de las demás.

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

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

Consulte también

Funciones

Ejemplos relacionados

Más acerca de