Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

Regolarizzare i dati campionati in modo irregolare

Questo esempio mostra come regolarizzare i dati campionati in modo irregolare per avere un periodo di tempo costante tra le misurazioni. Aggiorna i timestamp dei dati letti da un canale ThingSpeak™ per rimuovere le irregolarità, quindi scrivi i dati su un canale. Le variazioni del timestamp nei dati misurati introdotte a causa di latenze di rete o reimpostazioni hardware possono influenzare la preelaborazione dei dati e gli algoritmi di analisi dei dati. Molti algoritmi richiedono dati campionati regolarmente per funzionare correttamente.

Leggere i dati dal canale della stazione meteorologica

Il canale ThingSpeak 12397 contiene i dati della stazione meteorologica MathWorks® , situata a Natick, Massachusetts. I dati vengono raccolti una volta ogni minuto. Il campo 4 del canale contiene i dati sulla temperatura dell'aria. Per verificare la presenza di dati campionati in modo irregolare, leggere i dati della temperatura dell'aria dal canale 12397 utilizzando la funzione thingSpeakRead .

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

Controllare i dati campionati in modo irregolare

I dati degli ultimi 60 minuti letti dal canale 12397 vengono memorizzati come orario. Utilizzare la funzione isregular per verificare se i dati del canale vengono campionati regolarmente. Se i dati vengono campionati in modo irregolare, generare un vettore temporale distanziato regolarmente per il periodo di tempo di interesse. Genera un nuovo vettore temporale utilizzando linspace con startTime, stopTime e il numero di misurazioni.

regularFlag = isregular(data,'Time');

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

Invia dati a ThingSpeak

Invia i dati elaborati ad un canale ThingSpeak utilizzando la funzione thingSpeakWrite .

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

Vedi anche

(MATLAB) | (MATLAB) | (MATLAB)