IDL 8.5 출시
얼마전 IDL 8.5가 출시되었습니다. 다른 때에 비하면 비교적 조용한 분위기에서 업데이트가 되었는데요. 사실 8.4에서 8.5로의 버전업이긴 하지만, 새로운 기능이 아주 많지는 않습니다. 아무래도 8.x 버전의 후반부이기도 하고, 향후 9.x에서 보여줄 것들이 많이 있을 것 같다는 생각이 듭니다. 어쨌든 이번 8.5에서 주목해볼만한 새로운 특징들을 아주 간단하게 요약해보겠습니다.
1. Python Bridge
IDL과 Python 사이의 상호 교류(?)가 가능하도록 해주는 기능입니다. 이 기능을 사용하면, IDL에서 Python 모듈을 불러다 쓸 수 있고, 반대로 Python에서 IDL 모듈을 불러다 쓰는 것이 가능합니다. 이러한 상호 브릿지 기능은 IDL의 경우는 8.5 버전에서, 그리고 Python의 경우에는 2.7+와 3.4+ 버전에서 사용이 가능합니다. IDL 도움말에 나와있는 예제 코드를 보면 다음과 같습니다.
IDL> ran = Python.Import('numpy.random')
IDL> arr = ran.rand(100) ; call "rand" method
IDL> plt = Python.Import('matplotlib.pyplot')
IDL> p = plt.plot(arr) ; call "plot", pass an array
IDL> void = plt.show(block=0) ; pass keyword
IDL> >>>
>>> import matplotlib.pyplot as plt
>>> import numpy.random as ran
>>> arr = ran.rand(100)
>>> p = plt.plot(arr)
>>> plt.show()
>>>
IDL>
>>> from idlpy import IDL
>>> import numpy.random as ran
>>> arr = ran.rand(100)
>>> p = IDL.plot(arr, title='My Plot')
>>> p.color = 'red'
>>> p.save('myplot.pdf')
>>> p.close()
2. 컬러 선택용 GUI 기능
DIALOG_COLORPICKER라는 함수가 새로 추가되었는데, 이 함수를 다음과 같은 방식으로 실행하면 다음 그림과 같은 모습의 GUI가 뜹니다.
IDL> rgb = DIALOG_COLORPICKER()
여기서는 64개의 기본색상들 중 하나를 골라서 선택할 수도 있고, Custom 탭으로 들어가면 RGB값을 직접 설정하여 원하는 색상을 정의하여 사용하는 것도 가능합니다. 그리고 내부적으로 여러가지 키워드들이 지원되고 있습니다. 특히 이 기능을 IDL로 만들어진 GUI가 삽입하는 것도 가능합니다.
3. 패턴(Pattern) 채우기 기능 지원
BARPLOT, ELLIPSE, POLYGON 함수에서 패턴 채우기 기능이 지원됩니다. 기존에는 색상 채우기까지만 가능했었으나, 이번에 패턴까지 지원이 되기 시작한 것입니다. 이를 위하여 이 세 개의 그래픽 함수들에 다음과 같은 키워드들이 추가되었습니다.
PATTERN_BITMAP
다음은 BARPLOT 함수에서 패턴 채우기 기능을 사용한 예제 코드입니다. 이를 실행하여 얻은 그림은 다음과 같습니다. 위의 키워드들의 값을 조정하여 패턴의 특성들을 원하는대로 제어할 수 있습니다.
data = (RANDOMU(s,10)+0.1) < 1
bottom = (data/4-0.1) > 0
b = BARPLOT(data, $
BOTTOM_VALUES=bottom, $
FILL_COLOR='red', $
BOTTOM_COLOR='yellow', $
C_RANGE=[0,1], $
/HORIZONTAL, PATTERN_ORIENTATION=45, $
PATTERN_SPACING=6, PATTERN_THICK=3)
이외에도 몇몇 추가 기능들이 더 있긴 하지만, 오늘은 IDL 8.5의 주요 새로운 기능들에 관하여 이 정도로 소개를 해보기로 하겠습니다. 더 자세한 내용들은 IDL 8.5의 도움말에 있는 What's New in IDL 8.5에서 확인이 가능합니다.