IDL/Data Type & Format

IDL 8.8의 GRIB 포맷 지원에 관하여

이상우_IDL 2020. 11. 26. 17:10
728x90

IDL에서 GRIB 포맷의 파일을 읽는 기능에 관해서는 제가 예전에 관련 게시물들을 통하여 자세히 소개한 바 있습니다. 오늘은 IDL의 최신 버전인 8.8에서 GRIB 포맷의 지원에 관한 약간의 변동사항에 관하여 알려드리고자 합니다. 일단 기본적으로는 GRIB 포맷에 대한 지원은 IDL 8.8에서도 여전히 유효하며 오히려 전에 비하여 좀 더 강화되었다고 봐도 됩니다. 물론 8.8 이전 버전의 IDL에서도 웬만한 GRIB 포맷 파일들은 잘 읽을 수 있었지만, 간혹 잘 안읽히거나 이상하게 읽히는 GRIB 파일도 있었습니다. 저 뿐만 아니라 제 주변에서도 그런 사례가 간혹 있었고, 아마 비슷한 경험을 한 다른 유저들도 계실지도 모르겠습니다. 만약 그런 경험이 있으시다면 이번 IDL 8.8에서 다시 한번 시도해보시길 권장합니다. 아마도 웬만하면 다 잘 읽을 수 있을 것으로 예상합니다. 그 내막을 좀 살펴보면 IDL 내부적으로 GRIB 포맷 파일을 처리하는 라이브러리가 변경되었습니다. 실제로 IDL 도움말에서 What's New in IDL 8.8의 Library Updates 섹션의 일부 내용을 보면 다음과 같이 기술되어 있습니다.

 

The following 3rd party libraries have been added in this release:

  • AdoptOpenJDK 11.0.7
  • AdoptOpenJDK JRE 11.0.7
  • ecCodes 2.15.0
  • Esri Projection Engine and data 10.7.0
  • GCTP2 2
  • jaxb-api 2.3.1
  • Mesa Open GL Utility 9.0.1
  • MGRS 1.3.4
  • NumPy 1.18.1
  • Openmp 9.0.1
  • TBB 2020.2
  • TinyXML2 8.0.0
  • wglext.h 23

The following 3rd party libraries have been removed in this release:

  • Anaconda
  • Apache HTTP Client
  • CBLAS
  • Apache Commons Validator
  • F2CMath
  • GEOS
  • Google GSON
  • GRIB API
  • libiconv
  • MODTRAN
  • ogr2ogr
  • SpatialLite
  • Zulu

 

그런데 이 내용을 보면 GRIB API는 '제거된 라이브러리' 목록에 있습니다. 그래서 이 내용만 보면 마치 GRIB 관련 기능이 삭제된 것 아닌가 하는 오해를 할 수도 있습니다. 저도 처음에 그렇게 오해를 했었는데, 막상 IDL 내부적으로는 GRIB 관련 루틴들은 여전히 건재합니다. 뭔가 좀 이상하죠. 그래서 제가 본사에 문의하여 확인해본 결과, GRIB API 자체는 IDL 8.8에서 삭제된 것이 맞지만 그 대신 ecCodes라는 라이브러리가 새롭게 추가되었고 이 ecCodes 라이브러리가 GRIB 관련 기능을 완전히 대체하게 된 것입니다. 이 ecCodes라는 것은 ECMWF(European Centre for Medium-Range Weather Forecasts)라는 기관에서 개발한 소프트웨어 패키지로서, WMO 기준에 맞는 GRIB, BUFR, GTS 등의 형식에 대한 인코딩 및 디코딩 기능이 포함되어 있습니다. 이 기능이 이번 IDL 8.8에서 탑재되기 시작한 것입니다. 이번에 탑재된 ecCodes 라이브러리의 버전은 2.15.0이며 위의 내용에서도 '새로 추가된 라이브러리' 목록에 적혀있습니다. 그리고 이와 관련된 정보는 IDL 8.8의 커맨드창에서도 다음과 같이 확인할 수 있습니다.

 

IDL> HELP, /DLM, 'grib'

** GRIB - IDL GRIB format support DLM (not loaded)

    Version: eccodes 2.15.0, Build Date: JUN 17 2020, Source: Harris Geospatial Solutions, Inc.

    Path: /Applications/harris/idl88/bin/bin.darwin.x86_64/idl_grib.so

IDL> GRIB_GET_API_VERSION()

% Loaded DLM: GRIB.

       21500

 

어쨌든 GRIB 포맷의 데이터 파일들을 다뤄야 하는 IDL 유저 입장에서는 상황이 더 나아진 것이라고 봐도 될 것 같습니다.

LIST