用日期滤波时间序列
用 WeatherData 获取给定日期的温度. 然后用特定的 MissingDataMethod 填补遗漏的数据来创建一个新的时间序列.
In[1]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_93.png)
data = TimeSeries[
WeatherData["Chicago",
"Temperature", {{2015, 1, 1}, {2015, 12, 31}}],
MissingDataMethod -> "Interpolation"]
Out[1]=
![](assets.zh/filter-time-series-with-dates/O_49.png)
In[2]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_94.png)
DateListPlot[data, FrameLabel -> Automatic]
Out[2]=
![](assets.zh/filter-time-series-with-dates/O_50.png)
用范围为一个月的 MinFilter 来分析那一年最后一次和第一次冰冻发生在什么时候.
In[3]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_95.png)
minF = MinFilter[data, Quantity[1, "Month"]];
显示完整的 Wolfram 语言输入
Out[5]=
![](assets.zh/filter-time-series-with-dates/O_51.png)
春天最后一个冰冻日后的第一天.
In[6]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_98.png)
spring = TimeSeriesWindow[minF, {"15 April 2015", "15 May 2015"}];
In[7]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_99.png)
DateObject[
First@FirstCase[
spring["Path"], _?(#[[2]] > Quantity[0, "DegreesCelsius"] &)]]
Out[7]=
![](assets.zh/filter-time-series-with-dates/O_52.png)
秋天第一个冰冻日.
In[8]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_100.png)
fall = TimeSeriesWindow[minF, {"1 Oct 2015", "31 Oct 2015"}];
In[9]:=
![Click for copyable input](assets.zh/filter-time-series-with-dates/In_101.png)
DateObject[
First@FirstCase[
fall["Path"], _?(#[[2]] <= Quantity[0, "DegreesCelsius"] &)]]
Out[9]=
![](assets.zh/filter-time-series-with-dates/O_53.png)