В этом примере показано, как агрегировать данные до более низкого временного разрешения в канале ThingSpeak™, чтобы удалить нерегулярность. Нерегулярность в данных может быть вызвана несколькими факторами, такими как событийно-управляемое измерение, неисправность датчиков или сетевые задержки.
Канал ThingSpeak 22641 содержит данные о приливе и погоде, измеренные один раз в минуту в Окуэй-Бей, Кейп-Код. Поле 2 канала содержит данные температуры воздуха. Считайте данные о температуре воздуха за последние 3 часов от 22641 канала с помощью thingSpeakRead
функция.
datetimeStop = dateshift(datetime('now'),'start','hour'); datetimeStart = dateshift(datetime('now'),'start','hour') - hours(3); data = thingSpeakRead(22641,'DateRange',[datetimeStart,datetimeStop],... 'Fields',2,'outputFormat','timetable');
Данные измеряются один раз в минуту. Однако из-за задержки в сети, связанной с системой измерения, фактические временные метки могут быть больше или меньше минуты друг от друга. Кроме того, для применения интереса, частота данных, измеренных каждую минуту, высока. Данных в почасовом разрешении достаточно. Можно использовать retime
функция для агрегирования данных для каждого часа до одного значения. Для агрегирования данных можно использовать максимальное значение для каждого часа. Предварительный просмотр первых четырех значений данных с head
.
dataHourly = retime(data,'hourly','max'); head(dataHourly,4)
ans = 3×1 timetable Timestamps AirTemperatureC ____________________ _______________ 03-Jan-2019 14:00:00 7.5 03-Jan-2019 15:00:00 6.9 03-Jan-2019 16:00:00 6.4
Измените channelID и writeAPIKey, чтобы отправить данные на свой канал
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,data,'writeKey',writeAPIKey);