Данные из источников в сети Интернет
Загрузим значения среднесуточных температур за прошлый год для района Великих озер.
In[1]:=
rawdata =
Import["http://coastwatch.glerl.noaa.gov/ftp/glsea/avgtemps/glsea-\
temps_1024.dat", "Data"];
Данные начинаются со строки номер 11.
In[2]:=
rawdata[[;; 11]]
Out[2]=
In[3]:=
obs = rawdata[[11 ;;]];
Получим количество доступных температурных значений.
In[4]:=
Length[obs]
Out[4]=
Зададим список озер.
In[5]:=
lakes = {"Superior", "Michigan", "Huron", "Erie", "Ontario",
"St. Clair"};
код на языке Wolfram Language целиком
Out[6]=
Зададим даты, которые будем использовать в качестве временных отметок в TimeSeries.
In[7]:=
dates = Table[
DatePlus[{obs[[k, 1]], 1, 1}, Quantity[obs[[k, 2]], "Days"]], {k,
1, Length[obs]}];
Воспользуемся функцией QuantityArray для сохранения температурных значений и единиц измерения.
In[8]:=
values = QuantityArray[obs[[All, 3 ;;]], "DegreesCelsius"]
Out[8]=
Сохраним список озер в качестве метаинформации, MetaInformation, которая может быть использована в дальнейшем, например для графиков.
In[9]:=
ts = TimeSeries[values, {dates},
MetaInformation -> {"Lakes" -> lakes}]
Out[9]=
In[10]:=
DateListPlot[ts, PlotLegends -> ts["Lakes"], PlotTheme -> "Detailed",
FrameLabel -> Automatic]
Out[10]=
Рассмотрим описательную статистику для каждого озера.
In[11]:=
stats = {Min, Max, Mean, Median, StandardDeviation};
summary[lake_] := Map[#[lake] &, stats]
In[12]:=
TableForm[
Table[summary[ts["PathComponent", k]], {k, 1, Length[lakes]}],
TableHeadings -> {lakes, stats}]
Out[12]//TableForm=