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
thingSpeakRead
(MATLAB) | thingSpeakWrite
(MATLAB) | linspace
(MATLAB)