Данные из источников в сети Интернет
Загрузим значения среднесуточных температур за прошлый год для района Великих озер.
In[1]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_111.png)
rawdata =
Import["http://coastwatch.glerl.noaa.gov/ftp/glsea/avgtemps/glsea-\
temps_1024.dat", "Data"];
Данные начинаются со строки номер 11.
In[2]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_112.png)
rawdata[[;; 11]]
Out[2]=
![](assets.ru/data-from-internet-sources/O_61.png)
In[3]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_113.png)
obs = rawdata[[11 ;;]];
Получим количество доступных температурных значений.
In[4]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_114.png)
Length[obs]
Out[4]=
![](assets.ru/data-from-internet-sources/O_62.png)
Зададим список озер.
In[5]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_115.png)
lakes = {"Superior", "Michigan", "Huron", "Erie", "Ontario",
"St. Clair"};
код на языке Wolfram Language целиком
Out[6]=
![](assets.ru/data-from-internet-sources/O_63.png)
Зададим даты, которые будем использовать в качестве временных отметок в TimeSeries.
In[7]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_117.png)
dates = Table[
DatePlus[{obs[[k, 1]], 1, 1}, Quantity[obs[[k, 2]], "Days"]], {k,
1, Length[obs]}];
Воспользуемся функцией QuantityArray для сохранения температурных значений и единиц измерения.
In[8]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_118.png)
values = QuantityArray[obs[[All, 3 ;;]], "DegreesCelsius"]
Out[8]=
![](assets.ru/data-from-internet-sources/O_64.png)
Сохраним список озер в качестве метаинформации, MetaInformation, которая может быть использована в дальнейшем, например для графиков.
In[9]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_119.png)
ts = TimeSeries[values, {dates},
MetaInformation -> {"Lakes" -> lakes}]
Out[9]=
![](assets.ru/data-from-internet-sources/O_65.png)
In[10]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_120.png)
DateListPlot[ts, PlotLegends -> ts["Lakes"], PlotTheme -> "Detailed",
FrameLabel -> Automatic]
Out[10]=
![](assets.ru/data-from-internet-sources/O_66.png)
Рассмотрим описательную статистику для каждого озера.
In[11]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_121.png)
stats = {Min, Max, Mean, Median, StandardDeviation};
summary[lake_] := Map[#[lake] &, stats]
In[12]:=
![Click for copyable input](assets.ru/data-from-internet-sources/In_122.png)
TableForm[
Table[summary[ts["PathComponent", k]], {k, 1, Length[lakes]}],
TableHeadings -> {lakes, stats}]
Out[12]//TableForm=
![](assets.ru/data-from-internet-sources/O_67.png)