본문 바로가기
자료분석 및 코딩/기타 해양, 기상 정보 및 분석툴

[기타 - CDO] NetCDF 분석 가공 - 1. 수치 모델 및 예측 데이터 처리 프로그램 CDO 개요

by 아다콘다 2023. 8. 17.

 최근 가장 자주 활용하는 분석 툴인 CDO에 대해 소개해보려 한다. CDO는 Climate Data Operators의 약자로, 기후 및 수치 기상 예측 데이터를 분석하고 처리하는 명령 연산자 모음이다. NetCDF3, 4와 Grib 형식 및 기타 형식의 데이터 처리 및 가공을 할 수 있는 툴이다. 공식 매뉴얼을 보면, 매우 방대한 기능이 설명되어 있고 페이지도 길지만 나는 주로 netCDF 파일을 처리할 때 활용한다. 따라서, 내가 자주 사용하는, netCDF 파일을 분석할 때 자주 사용하는 큼직큼직한 기능들 위주로 설명을 해보려 한다.

 

1. 다운로드 및 설치

 아래의 공식 페이지에서 다운로드가 가능하다. 버전별로 다운로드가 가능하며 메뉴얼 및 공식 문서들도 모두 확인이 가능하다. 

https://code.mpimet.mpg.de/projects/cdo

 

개요 - CDO - Project Management Service

Climate Data Operators¶ CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data. Supported data formats are GRIB 1/2, netCDF 3/4, SERVICE, EXTRA and IEG. There are more than 600 operators available. Please regist

code.mpimet.mpg.de

 내가 사용하는 서버에는 이미 CDO가 깔려있어 직접 설치해보지는 않았지만, 위 페이지에서 다운받은 CDO파일의 압축을 풀고, "./configure -prefix=설치경로 -with-netcdf=설치경로"로 경로를 설정해준 뒤, make로 컴파일해주고, make install로 설치해주면 된다.

 리눅스 고자인 나에게는 꽤나 어려운 과정이지만 configure로 설치파일의 환경설정을 해주는 것인데, -prefix로 설치경로를 설정해주고, cdo는 netcdf 프로그램과 물려야하므로 -with-netcdf 를 함께 입력해준다. make는 설치 소스를 컴파일하는 과정이며, 컴파일된 install 파일을 실행하여 설치하는 명령이 make install이다. 전체 과정은 아래와 같다.

mkdir cdo
tar -xvcf cdo-1.8.2
cd cdo-1.8.2

#### cdo의 설치경로 입력 ####
./configure -prefix=$HOME/cdo -with-netcdf=$HOME/cdo

make 
make check
make install

 또한, 어느 디렉토리에서나 cdo를 사용하려면 .bash_profile에서 cdo의 설치경로를 export 해줘야한다.

2. CDO의 활용

 위 언급했듯이 나는 주로 NetCDF를 처리하거나 수정할 때 사용한다. 파이썬에서 NetCDF모듈로도 충분히 가능한 일들이지만, NetCDF모듈로 데이터를 수정하거나 변환을 하게되면 nc파일을 새로 쓰면서 시간이 오래 걸리게 된다. 같은 기능이라면 명령창에서 cdo로 수행하는 것이 훨씬 효율적이다.

 수치모델을 분석/처리하는 과정에서 nc파일을 병합하거나, 보간하거나, 변수들을 수정하는 일들을 자주 하는데, 내가 자주 활용하는 기법 위주로 설명해보려고 한다. 사용법은 cdo 'option' 'infile' 'outfile' 과 같이 사용하며 자주 사용하는 옵션은 아래와 같다.

  • 시간 자르기 seltimestep - 전체 기간 중 특정 기간을 잘라낼 때 
  • 날짜 및 시간 수정 settaxis - 날짜 및 시간정보를 수정할 때
  • 시계열 보간 inttime - timestep을 특정 간격으로 보간할 때
  • 영역 자르기 sellonlatbox - 전체 영역 중 특정 영역을 잘라낼 때
  • 리그리드 remap - 격자 체계 및 해상도를 수정할 때
  • 파일병합 merge & mergetime - 여러 파일을 병합할 때
  • 변수명 수정 및 변수 삭제chname & delname - 변수명을 수정할 때
  • fill value 수정 setmissval : 파일 내 fill_value 속성 수

 CDO의 공식 메뉴얼을 보면, 230페이지가 넘을 정도로 많은 기능이 포함되어 있지만, 위의 옵션들이 주로 사용하는 간단한 기능들이다. 다음부터는 위 옵션들을 더 자세히 하나씩 알아보도록 하겠다.

반응형