IDL/Direct Graphics

DG 체계에서 Colorbar 사용 방법

이상우_idl 2017. 5. 19. 09:30
728x90
반응형

IDL에서 컬러바(Color Bar)를 삽입하는 방법에 대해서는 제가 이 블로그에서 여러 차례 언급한 바 있습니다. 하지만 이 내용들은 거의 모두 NG(New Graphics) 체계에서 COLORBAR 함수를 사용하는 방법 위주였습니다. 오늘은 DG(Direct Graphics) 체계에서 컬러바를 삽입하는 방법에 관하여 언급해보고자 합니다.


사실 IDL을 좀 오래 사용해오신 분들이라면 많이 아실 수도 있는데, IDL의 DG 체계에서는 컬러바를 표출하는 기능을 수행하는 쓸만한 명령이 딱히 존재하지 않았었습니다. 그래서 많이 애용되던 것이 Coyote 라이브러리에 있는 COLORBAR 프로시저입니다. 물론 이 프로시저는 IDL이 자체적으로 내장하고 있는 것은 아니기 때문에, 사용을 위해서는 Coyote 라이브러리를 따로 받아서 설치해야 했습니다. 이 라이브러리는 David Fanning 선생께서 운영하시는 idlcoyote.com이라는 웹사이트를 통해서 제공되었고 많은 IDL 유저들이 받아서사용했었습니다. 그런데 Coyote 라이브러리에 있는 그래픽 관련 루틴들이 모두 CG 라이브러리라는 형태로 이전되면서, 기존의 그래픽 관련 루틴들 일부는 라이브러리에서 제외되기도 했습니다. COLORBAR 프로시저 역시 같은 운명을 맞게 되면서, 최근 버전의 Coyote 라이브러리에서는 COLORBAR 프로시저는 제외되고 대신 CGCOLORBAR 프로시저로 대체되었습니다.


어쨌든 예전의 COLORBAR 또는 최근의 CGCOLORBAR 모두 DG 체계에서 컬러바 표출의 편의성을 높여주는 기능들이기 때문에, 유저들 입장에서는 Coyote 라이브러리를 받아서 이 기능을 사용하면 됩니다. 물론 이 라이브러리도 최근 것을 받으면 CGCOLORBAR만 있고 COLORBAR는 없는 것으로 알고 있습니다. 그래서 만약 예전 버전인 COLORBAR를 사용하고자 할 경우에는 예전 버전의 라이브러리를 받아야 그 안에 colorbar.pro 파일이 존재합니다. 그런데 예전 것이든 최근 것이든간에 굳이 Coyote 라이브러리를 통째로 다 받지 않고 컬러바 기능만 골라서 갖다 쓰는 것도 가능합니다. 그래서 예전 라이브러리에 있던 colorbar.pro 파일만 가져다 사용해도 됩니다. 다만 이 파일을 사용하는데 있어서는 유념해야 할 점이 두어가지가 있습니다.


첫째는, 2010년 이후로는 기능 업데이트가 더 이상 진행되지 않고 있다는 것입니다. 원저자인 David Fanning 선생은 지금은 사실상 은퇴를 하셨고, 은퇴 직전까지는 주로 CG 라이브러리의 기능 업데이트에 주안점을 뒀기 때문에, 예전 라이브러리의 COLORBAR 기능에 대한 업데이트는 2010년이 마지막입니다. 하지만 큰 걱정을 할 필요는 없습니다. 현재 가장 최신 버전의 IDL에서도 이 기능은 잘 작동합니다. 그리고 웬만한 필요한 기능들은 이미 다 내장하고 있기 때문에 굳이 더 업데이트가 필요하다는 생각은 별로 들지 않을 정도입니다.


두번째는 이름 문제입니다. 즉 COLORBAR 기능을 수행하는 colorbar.pro라는 소스코드의 이름인 colorbar를 얘기하는 것인데요. 왜 문제가 되냐 하면, 요즘 IDL의 자체 라이브러리에는 colorbar.pro라는 파일이 이미 존재합니다. 그런데 이 파일은 바로 NG 체계에서 컬러바 표출 기능을 담당합니다. 따라서 만약 Coyote 라이브러리의 colorbar.pro를 가져다 쓰고자 할 경우에는 두 파일의 이름이 서로 충돌하게 됩니다. 이 경우 승자는 무조건 IDL 자체 라이브러리의 colorbar.pro입니다. 따라서 Coyote 라이브러리의 colorbar.pro를 온전하게 사용하기 위해서는 그 이름 자체를 바꿔줌으로써 서로간의 파일명 충돌이 발생하지 않도록 하는 것이 좋습니다.


그래서 예전 Coyote 라이브러리에서 마지막으로 업데이트되었던 colorbar.pro를 제가 이름만 살짝 바꾼 파일을 여기 첨부합니다. 새로운 이름은 제가 임의로 colorbar_coyote.pro로 정하였습니다. 물론 이름만 바꾸었을 뿐, 파일 내부에 있는 주석문 및 세부 내용은 그대로입니다. 제가 바꾼 것이라고는 이 코드의 222번째 줄에 있는 프로시저명 뿐입니다. 필요하신 분들은 이 파일을 받아서 사용해보시기 바랍니다.


colorbar_coyote.pro


이 기능을 사용한 컬러바 표출 예제를 아래에 올려 봅니다. 이와 같은 방식으로 DG 체계에서 컬러바 표출을 좀 더 간편하게 구현할 수 있습니다. 아래 예제코드에 대한 세부적인 설명은 생략하겠습니다. 특히 COLOBAR_COYOTE의 세부적인 기능들에 대해서는 내부 주석문에 자세히 나와 있으므로 이 내용을 참조하시면 됩니다.


data = HANNING(600, 600)

DEVICE, DECOMPOSED=0

WINDOW, XSIZE=600, YSIZE=700, RETAIN=2

LOADCT, 0

ERASE, 255

LOADCT, 73

TVSCL, data, 0

COLORBAR_COYOTE, POSITION=[0.1, 0.03, 0.9, 0.11], DIVISIONS=10, $

  MINRANGE=0, MAXRANGE=MAX(data), MINOR=0, FORMAT='(F3.1)'

LOADCT, 0




colorbar_coyote.pro
0.02MB
반응형