Упорядочение нерегулярно дискретизированных данных

Этот пример показывает, как упорядочить нерегулярно выбранные данные, чтобы иметь постоянный период времени между измерениями. Вы обновляете временные метки данных, считанных из канала ThingSpeak™, чтобы удалить нерегулярность, затем записываете данные в канал. Изменения временных меток в измеренных данных, введенные из-за задержек в сети или аппаратных сбросов, могут повлиять на предварительную обработку данных и алгоритмы аналитики данных. Многие алгоритмы требуют, чтобы регулярно дискретизированные данные работали правильно.

Чтение данных из канала метеостанции

Канал ThingSpeak 12397 содержит данные метеостанции MathWorks ®, расположенной в Натике, штат Массачусетс. Данные собираются один раз в минуту. Поле 4 канала содержит данные температуры воздуха. Для проверки нерегулярных выборочных данных считайте данные о температуре воздуха из канала 12397 с помощью thingSpeakRead функция.

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

Проверяйте на нерегулярно дискретизированные данные

Данные за последние 60 минут, считанные из канала 12397, хранятся в качестве расписания. Использование isregular функция для проверки, регулярно ли дискретизируются данные канала. Если данные дискретизированы нерегулярно, сгенерируйте регулярно разнесенный временной вектор для интересующего периода времени. Сгенерируйте новый временной вектор с помощью linspace с startTime, stopTime, и количество измерений.

regularFlag = isregular(data,'Time');

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

Отправка данных в ThingSpeak

Отправьте обработанные данные в канал ThingSpeak с помощью thingSpeakWrite функция.

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

См. также

| |