Climate Data Store (CDS) 접속 및 로그인

Catalogue — Climate Data Store

원하는 product 찾기 → “Download” → 옵션 선택

(예시 1) https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels?tab=overview

(예시 2) https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels-monthly-means?tab=overview

image.png

원하는 자료에서 옵션 다 선택한 다음에 API request를 보면 python 스크립트가 작성되어져 있다.

image.png

이 스크립트를 copy해서 python 환경에 붙여넣는다.

이 상태로 실행을 시켜보면, 첫 줄에서 오류가 나오는 것을 볼 수 있다.

image.png

따라서 “cdsapi” 라는 패키지를 불러오기에 앞서서, 이를 준비하는 과정이 필요하다.

  1. cdsapi 패키지 설치

    Python 가상 환경이 활성화된 상태에서 아래 명령어를 터미널에 입력한다.

    pip install cdsapi
    
  2. CDS API 키 설정

    패키지 설치만으로는 데이터를 다운로드할 수 없다. CDS(Copernicus Data Store)에 접속하기 위한 API 키를 설정해야 한다.

    1. 회원 가입

      ECMWF(European Centre for Medium-Range Weather Forecasts)의 Copernicus Climate Change Service (C3S) 웹사이트에서 회원 가입을 한다.

    2. API 키 확인

      로그인 후 프로필 페이지에서 API 키를 확인할 수 있다.

      image.png

    3. API 키 파일 생성

      확인한 API 키를 사용하여 홈 디렉터리(~ 또는 %USERPROFILE%)에 .cdsapirc 파일을 생성한다. 윈도우의 경우 C:\\Users\\사용자이름 경로에 해당한다.

      C:\\Users\\사용자이름\\.cdsapirc 파일의 내용은 ECMWF 홈페이지 > 프로필 > API key 란에 소개된 본인의 API token (위 사진 참고)을 복사해서 붙여넣으면 된다.

      url: <https://cds.climate.copernicus.eu/api>
      key: 
      

      이때 .cdsapirc 파일은 새로운 txt 문서를 만든 다음에 위 내용을 채우고 이름을 바꾸면 되는데, 이때 확장자명에서 txt를 제거해야 한다. 만약 이름 바꾸기에서 “.txt”가 안 나온다면, 아래와 같이 보기 설정을 바꾸면 된다.

      image.png

      image.png

      image.png

  3. 코드 실행

    이제 cdsapi 패키지가 설치되었고 API 키가 올바르게 설정되었다면, 제시된 코드를 실행하여 ERA5 재분석 데이터를 다운로드할 수 있다.

  4. 위 과정 이후에, uv pip list 를 통해 cdsapi 툴박스가 설치되어져 있는 것을 확인했음에도 불구하고 Jupyter Interactive 창에서 “No module named ‘cdsapi’” 라는 문구가 나올 수도 있다.

    이는 현재 Jupyter의 환경이 “cdsapi를 설치한 가상환경”이 아니기 때문일 수 있다.

    아래 사진에서처럼 Interactive 창의 우측 상단에 본인이 작업하는 가상환경의 이름(예시에서는 “forpy”)이 나와야 한다. 만약 저기 적힌 이름이 본인 가상환경 이름이 아니라면, 클릭해서 kernal을 바꿔주겠다고 하고, 만약 ipykernel이 안 깔려있으므로 지금 설치할까요? 라는 문구가 뜨면 ok 하면 된다.

    image.png

.cdsapirc 파일이 안 읽혀질 때

동료 형님의 도움으로 아래와 같이 코드를 작성하여 해결하였음.

.cdsapirc 파일 자체를 읽지 않고, 코드 상에서 url, key 정보를 바로 제공하는 방식.