Main Content

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

Regularizar datos muestreados irregularmente

Este ejemplo muestra cómo regularizar datos muestreados de forma irregular para tener un período de tiempo constante entre mediciones. Actualiza las marcas de tiempo de los datos leídos desde un canal ThingSpeak™ para eliminar irregularidades y luego escribe los datos en un canal. Las variaciones de marca de tiempo en los datos medidos introducidas debido a latencias de la red o reinicios de hardware pueden afectar el preprocesamiento de datos y los algoritmos de análisis de datos. Muchos algoritmos requieren datos muestreados periódicamente para funcionar correctamente.

Leer datos del canal de la estación meteorológica

El canal ThingSpeak 12397 contiene datos de la estación meteorológica MathWorks®, ubicada en Natick, Massachusetts. Los datos se recopilan una vez por minuto. El campo 4 del canal contiene datos de temperatura del aire. Para verificar si hay datos muestreados irregularmente, lea los datos de temperatura del aire del canal 12397 usando la función thingSpeakRead .

data = thingSpeakRead(12397,'NumMin',60,'Fields',4,'outputFormat','timetable');

Verifique si hay datos muestreados irregularmente

Los datos de los últimos 60 minutos leídos del canal 12397 se almacenan como un horario. Utilice la función isregular para verificar si los datos del canal se muestrean regularmente. Si los datos se muestrean de manera irregular, genere un vector de tiempo espaciado regularmente para el período de interés. Genere un nuevo vector de tiempo usando linspace con startTime, stopTime y el número de mediciones.

regularFlag = isregular(data,'Time');

if ~regularFlag
    startTime = data.Timestamps(1);
    stopTime  = data.Timestamps(end);
    newTimeVector = linspace(startTime,stopTime,height(data)); 
    data.Timestamps = newTimeVector;
end

Enviar datos a ThingSpeak

Envía los datos procesados ​​a un canal ThingSpeak usando la función thingSpeakWrite .

% Change the channelID and the writeAPIKey to send data to your channel.
channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,data,'WriteKey',writeAPIKey);

Consulte también

(MATLAB) | (MATLAB) | (MATLAB)