Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

웹 서비스에서 데이터 다운로드하기

이 예제에서는 webread 함수를 사용하여 웹 서비스에서 데이터를 다운로드하는 방법을 보여줍니다. World Bank는 World Bank Climate Data 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

World Bank에서 제공하는 API와 데이터: Climate Data API. (World Bank: Climate Data API에서 API와 World Bank: 사용 약관에 대한 자세한 정보를 참조할 수 있습니다.)