Применение фильтров к временным рядам с датами
Получим температуру для заданных дат с помощью WeatherData. Создадим новый временной ряд и воспользуемся MissingDataMethod для восполнения недостающих данных.
In[1]:=

data = TimeSeries[
WeatherData["Chicago",
"Temperature", {{2015, 1, 1}, {2015, 12, 31}}],
MissingDataMethod -> "Interpolation"]
Out[1]=

In[2]:=

DateListPlot[data, FrameLabel -> Automatic]
Out[2]=

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

minF = MinFilter[data, Quantity[1, "Month"]];
код на языке Wolfram Language целиком
Out[5]=

Первый день после весенних заморозков.
In[6]:=

spring = TimeSeriesWindow[minF, {"15 April 2015", "15 May 2015"}];
In[7]:=

DateObject[
First@FirstCase[
spring["Path"], _?(#[[2]] > Quantity[0, "DegreesCelsius"] &)]]
Out[7]=

Первый день осенних заморозков.
In[8]:=

fall = TimeSeriesWindow[minF, {"1 Oct 2015", "31 Oct 2015"}];
In[9]:=

DateObject[
First@FirstCase[
fall["Path"], _?(#[[2]] <= Quantity[0, "DegreesCelsius"] &)]]
Out[9]=
