03 2022년 08월

03

IDL/New Graphics MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [5]

지난 회차에 이어서 오늘은 Type 3에 해당되는 Cylindrical 유형에 관하여 알아보겠습니다. 이 유형은 말 그대로 원기둥과 같은 형태를 띄는 폴리곤에 해당됩니다. 이것은 마치 평면상에 존재하는 원형 폴리곤을 Z축 방향으로 연장함으로써 마치 단면이 원형인 기둥과 같은 형태의 폴리곤을 생성하는 경우라고 보면 됩니다. 실제로는 기둥보다는 단면이 원형이고 속이 빈 강관의 모습에 더 가깝긴 합니다. 이것도 사실 원형 기반의 압출이라고 볼 수 있기 때문에 원리적으로는 Type 5 유형인 Extrusion과 유사한 측면이 분명히 있습니다. 다만 압출의 대상이 임의의 다각형이냐 아니면 원형이냐의 차이만 있을 뿐입니다. 어쨌든 이러한 특성에 맞는 입력정보들을 제공하여 MESH_OBJ 명령을 사용하면 되는데요. ..

29 2022년 07월

29

IDL/Image Processing 제임스웹 우주망원경(JWST) 데이터의 입수 및 표출

제임스웹 우주망원경(JWST)에 관해서는 이미 언론 기사 등을 통하여 많이 보셨을 것 같습니다. JWST(James Webb Space Telescope)는 현존하는 최대 크기의 우주망원경으로서 얼마전(7월 12일) 첫번째 관측 이미지를 공개하면서 많은 화제와 관심을 불러일으키고 있습니다. 그리고 초기 관측 데이터들이 관련 웹페이지를 통하여 제공되고 있는데요. 오늘은 이 데이터 파일을 수신하고 IDL에서 간단하게 처리 및 표출해보는 예제를 소개하고자 합니다. 현재 JWST 데이터는 MAST(Mikulski Archive for Space Telescopes)라는 포탈 웹사이트를 통하여 제공되고 있습니다. 이 웹페이지에서는 계정 등록이나 로그인 절차 없이도 데이터의 조회 및 다운로드가 가능하게 되어 있습니..

26 2022년 07월

26

IDL/New Graphics TEXT 함수 소개

* 이 내용은 원래 2022년 1월 18일에 올렸던 게시물에 대하여 빠졌던 그림을 보강하고 약간의 내용을 추가한 버전입니다. TEXT 함수는 NG 체계에서 문자를 삽입하는 기능을 수행하는 그래픽 함수이며, 제가 이 블로그에서 올린 다양한 게시물들에서 자주 활용해왔던 함수이기도 합니다. 다만 오늘은 이 TEXT 함수 자체에 집중하면서 주요 기능 및 관련 예제를 다양하게 소개해보고자 합니다. 그러면 간단한 예제부터 시작해봅시다. 다음은 그래픽창을 하나 띄우고 그 안에 문자열 하나를 삽입하는 예제입니다. win = WINDOW(DIMENSIONS=[600, 400], /NO_TOOLBAR) tx = TEXT(0.5, 0.5, "What's up?", COLOR='green', FONT_SIZE=36, /NOR..

19 2022년 07월

19

IDL/New Graphics MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [4]

지난 회차에 이어서 오늘은 Type 5에 해당되는 Extrusion 유형에 관하여 알아보겠습니다. Extrusion이라는 유형은 그 단어의 뜻을 찾아보면 ‘압출’이라고 번역되는데, 이것은 마치 평면상에 존재하는 다각형을 Z축 방향으로 연장함으로써 마치 단면이 다각형(삼각형, 사각형, 오각형 등등)인 기둥과 같은 형태의 폴리곤을 생성하는 경우라고 보면 됩니다. 실제로는 기둥보다는 파이프 형태의 속이 빈 강관에 더 가깝긴 합니다. 어쨌든 이러한 특성에 맞는 입력정보들을 제공하여 MESH_OBJ 명령을 사용하면 되는데요. 예제를 먼저 보겠습니다. arr = [[3, 8, 8, 3, 3], [1, 1, 7, 7, 1], [2, 2, 2, 2, 2]] arr = TRANSPOSE(arr) HELP, arr MES..

13 2022년 07월

13

IDL/New Graphics MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [3]

지난 회차에 이어서 오늘은 Type 2에 해당되는 Polar 유형에 관하여 알아보겠습니다. Polar 유형은 말 그대로 극좌표 기반 즉 각도(angle)와 반경(radius) 기반의 좌표로 정의된 꼭지점들로 구성된 폴리곤에 해당됩니다. 따라서 그 특성에 맞는 입력 정보들을 제공해주어야 하는데, 예제를 보면 다음과 같습니다. p1 = 30*!DTOR p2 = 270*!DTOR p3 = 2 p4 = 6 arr = REPLICATE(4, 10, 5) MESH_OBJ, 2, vertices, polygons, arr, $ P1=p1, P2=p2, P3=p3, P4=p4 여기서 MESH_OBJ 명령에서는 Type에 해당되는 2라는 값을 첫번째 인수로 주는 것 외에도 다양한 입력 인수 및 키워드들이 사용되고 있습니..

06 2022년 07월

06

IDL/New Graphics MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [2]

지난 회차에서는 MESH_OBJ 명령에 관한 일반적인 개요를 먼저 살펴보았고 이제부터는 각 유형별로 자세히 들어가보겠습니다. 그 첫 순서로서 Type 1에 해당되는 Rectangular 유형부터 시작해봅니다. 이것은 말 그대로 사각형의 폴리곤이라고 보면 됩니다. 원래 사각형은 마치 평면과 같은 모습을 하고 것이 일반적입니다. 다만 다수의 셀(Cell)들로 구성된 사각형 폴리곤의 경우에는 이를 구성하는 꼭지점들의 좌표에 따라서는 반드시 평면적인 모습이 아닌 경우도 있습니다. 하지만 여기서는 일단 먼저 가장 간단한 예제부터 살펴봅시다. p1 = [3, 8] p2 = [1, 7] arr = [[0, 0], [0, 0]] MESH_OBJ, 1, vertices, polygons, arr, P1=p1, P2=p2..

04 2022년 07월

04

IDL/New Graphics MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [1]

3차원 공간상에서 존재하는 다면체 즉 폴리곤(Polygon)을 구성하려면 우선 이를 구성하는 여러 개의 꼭지점(Vertex)들에 대한 좌표 데이터가 필요합니다. 그리고 그 꼭지점들이 어떤 방식으로 서로 연결되어야 하는가를 규정하는 연결성(Connectivity) 정보도 함께 필요합니다. 폴리곤이 가질 수 있는 형태는 매우 다양하며, 꼭지점들의 개수가 많을수록 더 세밀한 모습을 갖게 됩니다. 예를 들어 사람, 동물, 자동차 등등의 개체들과 유사한 형태를 갖는 폴리곤을 가정해보면 세밀한 묘사를 위해서는 엄청나게 많은 꼭지점들이 필요하고 연결성 정보도 매우 복잡할수 밖에 없습니다. 그리고 이러한 복잡한 폴리곤을 컴퓨터에서 처리하여 표출하는데 있어서는 강력한 파워와 상당량의 메모리가 필요하게 됩니다. 그런데 이..

30 2022년 06월

30

IDL/New Graphics SetData 메서드의 활용 예제 [2]

NG 체계에서 SetData 메서드를 활용하는 예제를 얼마전에 관련게시물을 통하여 소개했던 바 있는데, 오늘은 그 두번째 순서입니다. 지난 첫번째 예제에서는 1차원 플롯 데이터를 대상으로 했었는데 이번 두번째 예제에서는 2차원 데이터를 대상으로 해보겠습니다. 그래서 2차원 데이터 배열을 이미지의 형태로 표출한 다음 SetData 메서드를 적용하는 예제를 소개해보도록 하겠습니다. 그러면 다음과 같이 500x500의 2차원 구조를 갖는 실수형 배열 data를 생성하고 IMAGE 함수를 사용하여 표출해봅시다. data = HANNING(500, 500)*10 data_scl = BYTSCL(data, MIN=0, MAX=100) win = WINDOW(DIMENSIONS=[600, 600], /NO_TOOLB..