반응형

IDL/New Graphics 150

그래픽 창의 캡쳐(capture) 기능 (NG 체계)

지난번 게시물에는 DG 체계에서 그래픽 창의 화면을 캡쳐하기 위하여 TVRD 함수를 사용하는 방법을 예제와 함께 살펴본 바 있습니다. 오늘은 NG 체계에서 그래픽 창의 화면을 캡쳐하는 방법에 관하여 살펴보기로 합니다. NG 체계에서는 그래픽 창을 띄울 때 기본적으로 WINDOW 함수를 사용하는 것이 정석입니다. 즉 WINDOW 함수를 사용하여 그래픽 창을 띄워 놓고 그 다음에 여러가지 그래픽 표출용 함수들(PLOT, CONTOUR, IMAGE 등)을 사용하여 그림을 표출하게 됩니다. 그러면 NG 체계 기반으로 간단한 예제 그림을 표출하는 과정을 다음과 같이 진행해봅시다. data = HANNING(600, 600)*100 add = FLTARR(600, 600) add[300, 300] = HANNING..

IDL/New Graphics 2024.11.21

동영상 파일의 제작 [3] (Animation GIF)

지난 [1], [2] 게시물들에서는 IDLffVideoWrite 및 WRITE_VIDEO를 이용하여 MPEG-4 형식의 동영상을 .mp4 파일로 생성하는 방법을 예제와 함께 소개하였습니다. 그리고 지난 회 게시물의 말미에서 애니메이션 GIF로 만드는 방법에 관하여 살짝 언급하였는데요. 그래서 지난 게시물들에서 제시했던 그래픽 표출 예제를 애니메이션 GIF 파일로 생성하는 방법을 소개해보도록 하겠습니다. 사실 애니메이션 GIF 파일을 생성하기 위하여 WRITE_GIF 프로시저를 사용하는 방법에 관해서는 제가 이미 관련 게시물을 통하여 자세히 설명한 바 있습니다. 따라서 구체적인 방법에 관해서는 그 내용을 참조하기로 하겠습니다. 앞선 게시물들에서 제시되었던 예제를 바탕으로 애니메이션 GIF 파일을 생성하도록..

IDL/New Graphics 2024.11.13

동영상 파일의 제작 [2] (WRITE_VIDEO)

지난 회차 게시물에서는 IDLffVideoWrite 클래스의 객체를 이용하여 동영상을 제작하는 방법을 소개하였습니다. 오늘은 그 두번째 방법으로서 WRITE_VIDEO 프로시저를 사용하는 방법을 소개해보겠습니다. 먼저 예제 데이터의 생성 및 표출의 기본적인 내용은 지난 회와 동일하게 시작합니다. x = FINDGEN(301) y = SIN(2*x*!DTOR)*5+RANDOMU(seed, 301) sx = 800sy = 450win = WINDOW(DIMENSIONS=[sx, sy], BACKGROUND_COLOR='khaki', $  /NO_TOOLBAR) p = PLOT(x, y, XRANGE=[0, 300], YRANGE=[-6, 6], $   /NODATA, FONT_SIZE=11, MARGIN=0..

IDL/New Graphics 2024.11.12

동영상 파일의 제작 [1] (IDLffVideoWrite)

오늘은 IDL에서 동영상 파일을 제작하는 방법을 소개해보고자 합니다. 물론 IDL에서는 여러가지 형식의 동영상 파일을 제작할 수 있지만, 여기서는 확장자가 .mp4인 파일로 저장되는 MPEG-4 형식의 동영상 파일을 제작하는 경우에 촛점을 맞추어서 살펴보겠습니다. 참고로 IDL의 동영상 파일 제작 기능은 8.1 버전에서 처음 도입이 되었고, 초창기에는 라이센스 문제 등으로 인하여 사용 범위가 다소 제한적이기도 했었지만, 최근 버전의 IDL에서는 이러한 이슈는 거의 다 사라지고 별다른 제한없이 해당 기능의 사용이 가능합니다. IDL에서 MPEG-4 형식의 동영상을 제작하는 기능은 두가지 방식으로 지원됩니다. 첫번째는 IDLffVideoWrite라는 클래스의 객체를 이용하는 방법이고, 두번째는 WRITE_V..

IDL/New Graphics 2024.11.07

그래픽 창 없이 그림을 표출하고 저장하기 (Z-Buffer)

우리가 뭔가 그림을 표출하고 그 내용을 그림 파일로 저장하는 작업은 IDL에서 워낙 많이 하는 작업입니다. 그리고 이러한 작업을 할 때에는 당연히 그래픽 창을 먼저 띄우고 그 위에 그림을 표출하는 것이 너무나 당연한 것이고, 그 내용을 그림 파일로 파일로 저장하기도 합니다. 그런데 오늘 소개할 내용은 그래픽 창을 띄우지 않고 그림을 표출하는 방법에 관한 것입니다. 과연 그게 가능은 한 것인가 그리고 가능하다고 해도 그게 굳이 필요한가에 대한 의문이 생길 수 있습니다. 사실 통상적인 작업에서는 당연히 그래픽 창을 띄우고 그림을 표출하여 그 그림을 보면서 여러가지 필요한 수정 및 개선을 하는 것이 당연합니다. 하지만 유저가 원하던 형태의 그림이 표출되도록 프로그램의 모든 작업 체계가 완성된 상태에서 그 프로..

IDL/New Graphics 2024.10.28

플롯(Plot) 상에 축과 데이터 추가하기 [2]

지난 회차 게시물에서는 NG 체계에서 PLOT 함수를 사용하여 플롯 그림을 표출한 상태에서 AXIS 함수를 사용하여 새로운 축과 새로운 데이터 플롯을 추가하는 방법을 예제와 함께 소개하였습니다. 여기서는 x, y1에 대한 플롯을 먼저 표출한 후 x, y2에 대한 플롯 및 Y축을 추가하는 방식으로 작업을 해보았고 다음과 같은 결과 그림을 얻은 바 있습니다. 오늘은 이어지는 예제로서 또 다른 추가 데이터인 y3를 가정하여 x, y3에 대한 플롯 및 Y축을 추가해보고자 합니다. 일단 앞선 예제에서 사용했던 예제 데이터인 x, y1, y2는 그대로 활용하면서 새로운 데이터인 y3까지 다음과 같이 정의합니다. x = FINDGEN(101) y1 = SQRT(x) y2 = (x/10)^2+100y3 = SIN(x*..

IDL/New Graphics 2024.10.22

플롯(Plot) 상에 축과 데이터 추가하기 [1]

우리가 플롯(Plot) 형태의 그림을 표출할 경우에는 기본적으로 X 및 Y 데이터가 주어진 상태에서 X축 및 Y축으로 구성되는 공간 내에서 데이터 포인트들이 표시되도록 하는 방식이 일반적입니다. 그런데 경우에 따라서는 추가적인 데이터를 중첩하면서 X축 또는 Y축을 추가로 표시하고 싶은 경우가 종종 있습니다. 이러한 작업은 NG 체계를 기준으로 본다면, 먼저 주어진 데이터에 해당되는 플롯을 PLOT 함수로 표출한 상태에서 AXIS 함수를 사용하여 새로운 축을 추가하고 새로운 데이터에 해당되는 플롯도 추가하는 방식이 됩니다. 예를 하나 들어본다면 아마 다음과 같은 형태의 그래픽 표출이 될 것입니다. 그래서 오늘은 NG 체계에서 PLOT 함수 및 AXIS 함수를 사용하여 이러한 작업을 수행하는 방법에 관하여 ..

IDL/New Graphics 2024.10.16

IDL 9.1의 MAPCONTINENTS 함수

제가 바로 이전에 올렸던 게시물에서 이미 언급했듯이 IDL 9.1 버전이 최근에 출시되었고 이와 관련된 내용을 그 게시물에서 정리하여 소개한 바 있습니다. 그런데 여기서 제가 미처 언급하지 못하고 넘어갔던 내용들 중 주목할만한 사항이 있어서 여기서 따로 소개해보고자 합니다. 바로 MAPCONTINENTS 함수에 관한 것인데요. 이 함수는 NG 체계에서 지도를 표출할 때 대륙, 해안, 강, 호수 등의 경계선을 표시하는 기능을 담당합니다. 그리고 이러한 경계선들은 IDL이 내장하고 있는 Shapefile 형태의 데이터를 기반으로 하는데요. 이번 IDL 9.1에서는 MAPCONTINENTS 함수에서 사용되는 Shapefile 형태의 기반 데이터가 최신의 데이터로 갱신되었다고 합니다. 또한 기본적으로 표시되는 ..

IDL/New Graphics 2024.10.10

수식(Equation)의 가시화에 관한 유의 사항들

앞서 두 차례에 걸쳐서 데이터 배열 없이 수식(Equation)만 받아서 가시화하는 기능들에 관한 게시물들을 올린 바 있습니다. PLOT 함수에서 1차원 수식을 가시화하는 방법에 관한 게시물 그리고 CONTOUR 및 SURFACE 함수에서 2차원 수식을 가시화하는 방법에 관한 게시물 두가지로 나눠서 올렸는데요. 두 게시물에서 미처 언급하지 못했지만 유의해야 할 사항들이 좀 있어서 여기서 마저 정리를 해보고자 합니다. 1) IDL NG(New Graphics) 체계의 PLOT, CONTOUR, SURFACE 함수에서만 지원됩니다. 그리고 이러한 기능이 지원되기 시작한 것은 IDL 8.3 버전부터입니다. 그 이전 버전의 IDL에서는 지원되지 않습니다. 2) 웬지 3차원 수식을 VOLUME 같은 함수에서 지원..

IDL/New Graphics 2024.07.12

수식(Equation)만 명시하여 Contour 및 Surface 표출하기

NG 체계의 PLOT 함수에서 수식(Equation)만 명시하여 1차원적인 플롯(Plot)을 표출하는 방법에 관하여 바로 직전의 게시물을 통하여 소개한 바 있습니다. 이것은 결국 y = f(x) 형태의 1차원 함수에 대한 수식 자체를 PLOT 함수에 그대로 투입하는 방식이라고 볼 수 있습니다. 비슷한 맥락으로 y = f(x, y) 형태의 2차원 함수에 대한 수식만 명시하여 그림을 표출하는 것도 가능합니다. 이러한 기능은 CONTOUR 및 SURFACE 함수에서 지원됩니다. 따라서 오늘은 그 방법에 관하여 예제와 함께 살펴보기로 하겠습니다. 먼저 CONTOUR 함수에서 수식만 명시하여 2차원적인 등위선(Contour) 그림을 표출하는 예제부터 보면 그 과정은 다음과 같습니다. ct = COLORTABLE(..

IDL/New Graphics 2024.07.09