최근 가장 자주 활용하는 분석 툴인 CDO에 대해 소개해보려 한다. CDO는 Climate Data Operators의 약자로, 기후 및 수치 기상 예측 데이터를 분석하고 처리하는 명령 연산자 모음이다. NetCDF3, 4와 Grib 형식 및 기타 형식의 데이터 처리 및 가공을 할 수 있는 툴이다. 공식 매뉴얼을 보면, 매우 방대한 기능이 설명되어 있고 페이지도 길지만 나는 주로 netCDF 파일을 처리할 때 활용한다. 따라서, 내가 자주 사용하는, netCDF 파일을 분석할 때 자주 사용하는 큼직큼직한 기능들 위주로 설명을 해보려 한다.
1. 다운로드 및 설치
아래의 공식 페이지에서 다운로드가 가능하다. 버전별로 다운로드가 가능하며 메뉴얼 및 공식 문서들도 모두 확인이 가능하다.
https://code.mpimet.mpg.de/projects/cdo
내가 사용하는 서버에는 이미 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페이지가 넘을 정도로 많은 기능이 포함되어 있지만, 위의 옵션들이 주로 사용하는 간단한 기능들이다. 다음부터는 위 옵션들을 더 자세히 하나씩 알아보도록 하겠다.
'자료분석 및 코딩 > 기타 해양, 기상 정보 및 분석툴' 카테고리의 다른 글
kwgrib2를 활용한 기상청 수치모델 grib파일 형식 변환(txt, netcdf) (0) | 2024.01.12 |
---|---|
[기타 - CDO] 2. NetCDF 날짜 및 시간 자르기 seltimestep (0) | 2023.08.18 |
[기타 - 쉘] 해양수치모델 하이컴 다운로드 3 - 과거 자료 다운로드 자동화 (0) | 2023.08.16 |
[기타 - 쉘] 해양수치모델 하이컴 다운로드 2 - 스크립트를 활용한 자동 다운로드. 쉘, wget, crontab (0) | 2023.07.31 |
[기타 - 쉘] 해양수치모델 하이컴 다운로드 1 - 데이터 개요 및 웹 다운로드 (0) | 2023.07.12 |