exponenta event banner

Загрузить данные из веб-службы

В этом примере показано, как загрузить данные из веб-службы с помощью webread функция. Всемирный банк предоставляет различные климатические данные через API Всемирного банка по климатическим данным. Вызов этого API возвращает данные в формате JSON. webread преобразует объекты JSON в структуры, удобные для анализа в MATLAB ®.

Использовать webread для считывания среднегодовых температур в США в структурный массив.

api = 'http://climatedataapi.worldbank.org/climateweb/rest/v1/';
url = [api 'country/cru/tas/year/USA'];
S = webread(url)
S = 

112x1 struct array with fields:

    year
    data

webread преобразовали данные в структурный массив с 112 элементами. Каждая структура содержит температуру для данного года, с 1901 по 2012 год.

S(1)
ans = 

    year: 1901
    data: 6.6187
S(112)
ans = 

    year: 2012
    data: 7.9395

Постройте график средней температуры в год. Преобразуйте температуры и годы в числовые массивы. Преобразуйте годы в объект datetime для упрощения печати и преобразуйте температуры в градусы по Фаренгейту.

temps = [S.data];
temps = 9/5 * temps + 32;
years = [S.year];
yearstoplot = datetime(years,1,1);
figure
plot(yearstoplot, temps);
title('USA Average Temperature 1901-2012')
xlabel('Year')
ylabel('Temperature (^{\circ}F)')
xmin = datetime(1899,1,1);
xmax = datetime(2014,1,1);
xlim([xmin xmax])

Наложение наименьших квадратов подгонки линии к температурам.

p = polyfit(years,temps,1);
ptemps = polyval(p,years);
deltat = p(1);
hold on
fl = plot(yearstoplot, ptemps);
xlim([xmin xmax])
title('USA Average Temperature Trend 1901-2012')
xlabel('Year')
ylabel('Temperature (^{\circ}F)')
deltat = num2str(10.0*deltat);
legend(fl,['Least Squares Fit, ', deltat, '^{\circ}F/decade'])
hold off

API и данные предоставлены Всемирным банком: Climate Data API. (Для получения дополнительной информации об API см. World Bank: Climate Data API и World Bank: Terms of Use.)