III. CLIK 플랫폼의 메뉴 구성

    4. CLIK API

CLIK Open Application Program Interface (API)는 사용자가 프로그래밍을 이용하여 자료를 사용할 수 있도록 하는 서비스입니다. API를 이용하여 자신의 코드내에 자료를 다운로드하는 코드를 추가할 수 있습니다. CLIK 플랫폼은 현재 API를 사용할 수 있는 API Client를 Python, Java 두 가지 언어로 제공하고 있습니다. 이 튜토리얼에서는 Python 언어를 이용하는 방법을 소개합니다.


가. API Key 설정

API Key는 API를 사용할 때 필수적입니다. 사용자 Key는 다음과 같이 설정할 수 있습니다.

  • 사용자 계정이 없으면 “Registration” 메뉴에서 사용자 가입
  • 로그인한 후 “Member Info” 메뉴에서 “Get key” 버튼을 선택하여 Key 발급

(그림 3-5-1) 사용자 Key 발급

(그림 3-5-1) 사용자 Key 발급

  • 다음의 내용을 $HOME/apccapi.properties 파일에 기록 ($HOME 설정은 부록을 참고)

key=810050f2-727e-5ed3-a871-b7a881a04d34
request_url=https://request.apcc21.org/apccdata
status_url=https://request.apcc21.org/status

[코드 1] apccapi.properties


나. API Client 설치

CLIK은 Python 언어로 작성된 API Client를 제공하고 있습니다. 다음과 같은 방법으로 API Client를 설치할 수 있습니다.

  • CLIK API 페이지에서 API client를 다운로드하거나 wget을 이용하여 직접 다운로드
  • 작업 폴더에 다음과 같은 방법으로 API Client 설치
$ wget http://download.apcc21.org/pythonapi -O apccapi.tar.gz
$ tar xvf apccapi.tar.gz

[코드 2] API Client 다운로드 및 설치


다. API Client 사용

API Client를 설치한 후 사용자는 프로그램 내에서 자료를 요청하기 위해서 API를 호출할 수 있습니다.

사용자는 Python을 사용하여 다음과 같이 3개월, 6개월 MME 자료를 내려받을 수 있습니다. 예제의 type, method, variable 등의 선택사항은 Dataset 다운로드 페이지에서 확인할 수 있습니다

#!/usr/bin/env python
import apccapi
c = apccapi.Client()
c.retrieve(
{
   'jobtype': 'MME',
   'dataset': 'MME_3MONTH',
   'type': 'FORECAST',
   'method': 'SCM',
   'variable': ['prec', 't2m'],
   'period': ['Monthly mean'],
   'yearmonth': ['201909', '201910']
},
   'mme3.zip'
)

[코드 3] Python 예제: MME (3-Month)


#!/usr/bin/env python
import apccapi
c = apccapi.Client()
c.retrieve(
{
   'jobtype': 'MME',
   'dataset': 'MME_6MONTH',
   'type': 'HINDCAST',
   'method': 'GAUS',
   'variable': ['prec', 't2m'],
   'period': ['Monthly mean', 'Seasonal mean'],
   'yearmonth': ['201909']
},
   'mme6.zip'
)

[코드 4] Python 예제: MME (6-Month)


사용자는 Python을 사용하여 다음과 같이 MME 모델 자료를 내려받을 수 있습니다. 예제의 type, institute, model, variable 등의 선택사항은 Dataset 다운로드 페이지에서 확인할 수 있습니다.

#!/usr/bin/env python
import apccapi
c = apccapi.Client()
c.retrieve(
{
   'jobtype': 'MODEL',
   'dataset': 'MODEL',
   'type': 'FORECAST',
   'institute': 'APCC',
   'model': 'SCOPS',
   'variable': ['prec', 't2m'],
   'yearmonth': ['201909']
},
   'model.zip'
)

[코드 5] Python 예제: Model


사용자는 Python을 사용하여 다음과 같이 CMIP5 자료를 내려받을 수 있습니다. 예제의 code 값은 Dataset 다운로드 페이지에서 확인할 수 있습니다.

#!/usr/bin/env python
import apccapi
c = apccapi.Client()
c.retrieve(
{
   'jobtype': 'CMIP5',
   'dataset': 'CMIP5',
   'code': 'AD'
},
   'cmip5.zip'
)

[코드 6] Python 예제: CMIP5