카테고리 없음

IDL 8.8의 PLOT, SYMBOL 관련 이슈

이상우_IDL 2020. 8. 31. 16:30
728x90

IDL 8.8에서 PLOT 함수와 SYMBOL 속성을 사용하여 플롯과 심볼들을 함께 표시하는 경우에 발생하는 이슈에 관한 것입니다. 특히 색상이 채워진 심볼들을 선과 함께 표시할 때 발생하는 현상인데요. 일단 예제 코드는 다음과 같습니다.

 

x = [2, 3, 5, 7, 8]

y = [8.5, 11.2, 9.0, 8.1, 12.6]

win = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR)

pl = PLOT(x, y, XRANGE=[0, 10], YRANGE=[5, 15], $

  SYMBOL='circle', /SYM_FILLED, SYM_COLOR='crimson', $

  SYM_SIZE=2, /CURRENT)

 

그런데 IDL 8.8에서 이 내용을 실행하면 그래픽창이 뜨고 다음과 같은 그림이 표출될 수가 있습니다.

 

 

즉 이와 같이 색상이 채워진 심볼 앞으로 선이 보이는 현상입니다. 원래는 심볼과 위치가 겹치는 선들은 보이지 않아야 합니다. 제 경우는 이러한 현상을 Mac OS용 IDL 8.8에서 확인했습니다. 이전 버전의 IDL에서는 발생하지 않던 현상이기 때문에, 이러한 모습은 당연히 정상은 아닙니다. 다만 이렇게 그래픽창에 그림을 표출한 다음 그림 파일로 저장을 하면 이러한 현상은 보이지 않습니다.

 

win.Save, 'plot_symbol_idl88.png', WIDTH=600

 

즉 이렇게 저장된 PNG 파일을 열어보면 앞서 보았던 현상은 나타나지 않고 정상적인 모습으로 저장된 것을 확인할 수 있습니다.

 

 

제가 직접 테스트해본 바에 의하면, 이러한 이슈는 Mac OS용 IDL 8.8에서 발생하고 윈도우즈 10용 IDL 8.8에서는 발생하지 않았는데요. 그런데 윈도우즈 10용 IDL 8.8에서도 발생하는 경우에 대한 보고도 있었습니다. 따라서 IDL 8.8에서 발생한다는 것은 확실하지만, OS가 명확히 구분되어 발생하는 것은 아닌 것 같습니다. 일단 제가 직접 확인한 것은 Mac OS용 IDL 8.8입니다. OS별로 발생 여부가 구분이 되는지에 대해서는 저도 좀 더 알아봐야 할 것 같습니다.

 

일단 이 이슈는 우회방법이 있습니다. 바로 ANTIALIAS 속성을 추가적으로 이용하는 것입니다. 위의 예제 코드에서 PLOT 함수가 사용된 부분만 다음과 같이 수정해봅시다.

 

pl = PLOT(x, y, XRANGE=[0, 10], YRANGE=[5, 15], $

  SYMBOL='circle', /SYM_FILLED, SYM_COLOR='crimson', $

  SYM_SIZE=2, ANTIALIAS=0, /CURRENT)

 

이 속성의 디폴트 값은 원래 1인데 일부러 0으로 설정한 것입니다. 이렇게 수정하여 다시 실행하면 이제는 화면상의 그래픽창에서도 정상적으로 표출됩니다. 물론 그림파일로 저장해도 마찬가지로 정상적인 모습으로 저장됩니다.

 

 

만약 화면에서 보이는 모습이 어떻든간에 그림파일로 저장된 모습이 정상이기만 하면 되는 경우라면, 굳이 ANTIALIAS 속성까지 동원하지 않아도 됩니다. 그리고 이와 같은 현상은 선의 두께가 디폴트인 경우에만 발생합니다. 만약 THICK 속성을 따로 사용하여 디폴트값인 1이 아닌 2나 3 등의 더 큰 값으로 설정할 경우에는, 화면상의 표출에서도 이러한 이슈는 발생하지 않습니다. 즉 다음과 같이 ANTIALIAS 속성은 사용하지않고 그냥 THICK 속성만 사용하여 그 값을 3으로 설정하여 선을 두껍게 처리해봅시다.

 

pl = PLOT(x, y, XRANGE=[0, 10], YRANGE=[5, 15], $

  SYMBOL='circle', /SYM_FILLED, SYM_COLOR='crimson', $

  SYM_SIZE=2, THICK=3, /CURRENT)

 

그러면 화면상에 표출되는 그림도 다음과 같이 정상적으로 표출됩니다.

 

 

그래서 이 이슈에 관해서는 일단 다음과 같이 정리해볼 수 있을 것 같습니다.

 

1. IDL 8.8에서 발생한다.

2. OS가 확실히 구분되지는 않는 것으로 보인다 (Mac OS에서는 확인, Windows 10의 경우는 좀 더 확인 필요)

3. THICK=1인 경우에만 발생한다.

4. 화면에서는 이상하게 보이더라도 그림파일로 저장된 모습은 정상이다.

 

사실 이러한 이슈가 발생하면 안되겠지만 엄연히 발생하고 있는 현상이기 때문에 제가 나름대로 확인을 해보고 정리해보았습니다. 혹시라도 이와 같은 이슈를 겪고 뭔일인지 궁금하셨던 유저들께서는 일단 이 내용을 참조하시기 바랍니다. 이와 관련된 궁금증이나 코멘트가 있으시다면 댓글 또는 이메일(lee@selab.co.kr)로 알려주시면 됩니다. Harris에서도 이 문제를 인지하고 확인하는 중이기 때문에, 혹시라도 이 이슈와 관련하여 더 업데이트되는 내용이 생긴다면 이 게시물을 통하여 알리도록 하겠습니다.

 

LIST