Contenuto principale

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 i 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 smussare 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 disporre di dati sufficienti per decidere se ogni punto è un valore anomalo. Poiché i dati sono dinamici, i risultati potrebbero variare a seconda delle condizioni meteorologiche attuali. Specificare che il numero di deviazioni standard sia 2. Se un punto dati differisce dalla mediana locale per un numero superiore a questo, viene sostituito con il valore della mediana 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. Modifica 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