Main Content

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

Rimuovi i valori anomali dai tuoi dati

Questo esempio mostra come rilevare e rimuovere valori anomali nei dati del canale ThingSpeak™ utilizzando un filtro Hampel. Questo filtro è strettamente correlato a un filtro mediano e aiuta a rimuovere i valori anomali da un segnale senza livellare eccessivamente i dati.

Leggi i dati

Leggere la velocità del vento memorizzata nel canale 22641 utilizzando la funzione thingSpeakRead .

data = thingSpeakRead(12397,'NumPoints',80,'Fields',2,'outputFormat','table');

Rimuovi valori anomali

Rimuovere i valori anomali nei dati grezzi applicando la funzione hampel . Specificare la dimensione della finestra su 6, ovvero circa tre minuti di dati su entrambi i lati della finestra di misurazione. Questa impostazione consente di avere dati sufficienti per decidere se ciascun punto è un valore anomalo. Poiché i dati sono dinamici, i risultati possono variare a seconda del tempo attuale. Specificare il numero di deviazioni standard che deve essere 2. Se un punto dati differisce dalla mediana locale di più di questo numero, viene sostituito con il valore mediano locale.

windowSize = 6;
numMedians = 2;
[filteredData,outliers]=hampel(data.WindSpeedmph,windowSize,numMedians);

Scrivi dati su ThingSpeak

Invia il numero di valori anomali rilevati a un canale ThingSpeak utilizzando la funzione thingSpeakWrite . Cambia channelID e writeAPIKey per inviare dati al tuo canale.

channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
totalOutliers = sum(outliers)
thingSpeakWrite(channelID,totalOutliers,'WriteKey',writeAPIKey);
totalOutliers =

     8

Vedi anche

Funzioni