IDL에서 netCDF 형식의 파일들을 다루는 방법에 관하여 제가 예전에 이 블로그에서 관련 게시물들을 몇 개 올렸던 적이 있습니다. 직접적인 내용의 게시물들은 다음과 같습니다.
http://blog.daum.net/swrush/468
http://blog.daum.net/swrush/469
물론 그 외 다른 연관된 게시물들에서도 언급을 했었습니다. 그런데 IDL의 버전별로 이 기능의 사용 가능 여부가 어떠한가에 대하여 가끔씩 문의도 들어오고, 또 약간 오해가 있는 경우들도 있었습니다. 그래서 정리하는 의미에서 이번 게시물에서 그 부분에 관하여 설명을 드리고자 합니다.
먼저 사용 가능한 IDL 버전에 관한 것인데요. IDL의 netCDF 관련 기능들은 사실상 모든 버전의 IDL에 걸쳐 사용이 가능합니다. 엄밀하게 따지면 IDL 4.0 버전쯤부터 사용 가능하다고 되어있긴 합니다. 실제로 IDL 도움말에서 netCDF 관련 루틴들에 대한 내용을 살펴보면 version history에서 "pre 4.0"이라고 되어 있습니다. 즉 버전 4.0 이전부터도 이미 지원되어 오고 있는데 정확히는 아마 파악이 안되는 것 같습니다. 어쨌든 IDL 4.0이면 벌써 20년도 훨씬 넘은 것이기 때문에, IDL 8.7이 최신 버전인 2020년 현 시점에서 보면 사실상 IDL 전 버전이라고 봐도 무방합니다. 제가 국내에서 IDL을 가장 오랫동안 사용해오고 있는 유저인데, 제가 처음에 썼던 버전이 3.5~3.6이었습니다. 지금은 그 버전 구하고 싶어도 못구합니다. 따라서 그냥 netCDF 관련 기능들은 현 시점에서 보면 사실상 어떤 버전의 IDL에서든 사용이 가능하다고 알고 계시면 됩니다.
다만 한가지 유의하실 것은 netCDF 관련 루틴들 중 일부는 버전 의존성이 있는 것들이 몇 개 있습니다. 물론 netCDF 파일을 읽거나 쓰는 등의 기본적인 기능들에 해당되는 루틴들은 앞서 언급한 것과 같이 현존하는 거의 모든 버전의 IDL에서 사용이 가능합니다. 하지만 다음과 같은 3개의 루틴들은 약간 예외적입니다.
NCDF_GET
NCDF_LIST
NCDF_PUT
이 루틴들은 IDL 8.4.1 버전에서부터 도입된 것들입니다. 사실 이 루틴들의 기능은 필수적이라기 보다는 편의성 도모의 측면이 더 강합니다. 즉 8.4.1 이전 버전의 IDL의 경우는 이 3개의 루틴들은 없지만, netCDF 파일을 읽거나 쓰는 등의 기본적인 작업에는 전혀 지장이 없습니다. 다만 IDL 8.4.1 버전부터는 netCDF 파일 관련 작업에 있어서 약간의 편의성을 도모하기 위하여 위의 3개의 루틴들이 추가된 것입니다. 따라서 IDL 8.4.1 또는 그 이후의 버전을 사용중일 경우에는 기본적인 관련 루틴들 외에도 저 3개의 루틴들까지 추가적으로 모두 사용이 가능합니다.
그런데 만약 8.4.1 이전 버전의 IDL을 사용중인데 그래도 저 3개의 루틴들을 사용해보고 싶다면 어떻게 해야 할까요? 그럴 경우에는 8.4.1 또는 이후 버전의 IDL의 사용자로부터 저 3개의 루틴들에 대한 소스코드 파일들을 받아서 사용해보는 것이 가능합니다. 저 루틴들은 IDL의 설치 디렉토리 내에 있는 lib라는 하위 디렉토리 내에 .pro 파일로 저장되어 있습니다. 그래서 저 파일들들을 전달 받아서 lib 디렉토리 내에 카피해서 사용해보면 됩니다. 물론 이런 방식으로 사용할 경우에 정상적으로 잘 작동할 것인가에 대한 부분은 공식적으로는 보증되지 않습니다. 왜냐하면 특정 버전에서 새로 도입된 기능의 경우 이전 버전의 IDL에서의 소급 사용 가능 여부는 어떤 경우든 공식적으로 보증되지 않는 것이 원칙이기 때문입니다. 하지만 아마도 실제로는 잘 작동할 가능성이 큽니다. 실제로 저 3개의 루틴들 각각의 소스코드의 내용을 잘 살펴보면, 이미 기존의 IDL에 내장되어 있던 기본적인 netCDF 관련 루틴들을 사용하고 있기 때문입니다. 어쨌든 8.4.1 이전 버전의 IDL에서 저 3개의 루틴들에 대한 소스코드 파일들을 가져다가 사용할 경우에 잘 작동하느냐 여부는 유저 각자가 시도해보고 판단하셔야 합니다. IDL 8.3에서는 될 것인지, 7.1에서도 될 것인지, 6.4에서도 될 것인지 등에 대해서는 누구도 보증을 못해드립니다. 하지만 아마 되리라고 추측합니다.
따라서 현재 사용중인 IDL이 8.4.1보다 이전 버전이고 당장 업데이트할 여건은 안되지만 그래도 저 3개의 루틴들을 사용하고자 하시는 유저들이 계시다면 저 또는 (주)에스이랩으로 연락을 주시면 파일들을 보내드리겠습니다. 물론 앞서 언급했듯이 실제 작동 가능 여부에 대해서는 공식적으로 보증해드릴 수는 없다는 점을 미리 유념해주시기 바랍니다.
이상우 : lee@selab.co.kr
(주)에스이랩 : sales@selab.co.kr
'IDL > Data Type & Format' 카테고리의 다른 글
IDL 8.8의 GRIB 포맷 지원에 관하여 (0) | 2020.11.26 |
---|---|
HDF 파일 읽고 쓰기에 관한 문서 자료 (0) | 2020.05.13 |
READ_CSV 함수를 이용하여 CSV 파일 읽기 (0) | 2018.07.31 |
실수의 소수점 이하 자릿수 변경 방법 (0) | 2018.07.30 |
netCDF 포맷의 데이터를 읽고 표출하기 [2] (0) | 2018.07.16 |