Язык Wolfram Language

Операции с временными рядами

Применение фильтров к временным рядам с датами

Получим температуру для заданных дат с помощью WeatherData. Создадим новый временной ряд и воспользуемся MissingDataMethod для восполнения недостающих данных.

In[1]:=
Click for copyable input
data = TimeSeries[ WeatherData["Chicago", "Temperature", {{2015, 1, 1}, {2015, 12, 31}}], MissingDataMethod -> "Interpolation"]
Out[1]=
In[2]:=
Click for copyable input
DateListPlot[data, FrameLabel -> Automatic]
Out[2]=

Bоспользуемся фильтром MinFilter с месячным диапазоном, чтобы определить даты первых и последних заморозков в конкретном году.

In[3]:=
Click for copyable input
minF = MinFilter[data, Quantity[1, "Month"]];
код на языке Wolfram Language целиком
In[4]:=
Click for copyable input
freezeline = {{minF["FirstDate"], 0}, {minF["LastDate"], 0}};
In[5]:=
Click for copyable input
DateListPlot[{data, minF, freezeline}, FrameLabel -> Automatic]
Out[5]=

Первый день после весенних заморозков.

In[6]:=
Click for copyable input
spring = TimeSeriesWindow[minF, {"15 April 2015", "15 May 2015"}];
In[7]:=
Click for copyable input
DateObject[ First@FirstCase[ spring["Path"], _?(#[[2]] > Quantity[0, "DegreesCelsius"] &)]]
Out[7]=

Первый день осенних заморозков.

In[8]:=
Click for copyable input
fall = TimeSeriesWindow[minF, {"1 Oct 2015", "31 Oct 2015"}];
In[9]:=
Click for copyable input
DateObject[ First@FirstCase[ fall["Path"], _?(#[[2]] <= Quantity[0, "DegreesCelsius"] &)]]
Out[9]=

Родственные примеры

de en es fr ja ko pt-br zh