반응형

전체 글 715

IDL 9.0의 그림 저장 문제에 관하여 [2]

얼마전에 IDL 9.0의 NG 체계에서 그래픽 요소들이 중첩된 그림을 표출했을 때 중첩이 정상적으로 되지 않는 문제에 관한 게시물을 올린 바 있습니다. 그리고 이러한 문제점의 증상을 살펴보고, 만족스럽지는 않지만 나름의 대안도 함께 살펴보았는데요. 만족스럽지는 않지만 나름 써볼만한 괜찮은 대안이 있어서 오늘 소개해보고자 합니다. 일단 지난 게시물에서 제시했던 예제를 그대로 사용하면서 여기에 TEXT 함수로 문자를 삽입하는 내용까지 추가해보기로 합니다. 그 과정은 다음과 같습니다. x = FINDGEN(101) y = SQRT(x) + RANDOMU(-1, 101) * 2 - 1 win = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR) p = PLOT(x, y, THICK=2..

IDL/New Graphics 2024.06.25

플랑크(Planck) 복사량 법칙의 가시화

플랑크의 복사량 법칙(Planck's Radiation Law)은 잘 알려져있듯이 특정한 온도의 흑체(Black Body)로부터 방출되는 복사량을 모든 파장(또는 주파수)에 걸쳐서 계산하는 수식으로 표현됩니다. 그래서 이러한 수식을 플랑크 곡선의 형태로 표출한 그림은 각종 물리학 교과서나 웹페이지들에서 많이 볼 수 있습니다. 오늘은 플랑크 법칙을 기반으로 플랑크 곡선을 표출하는 작업을 IDL에서 직접 구현해보고자 합니다. 이 작업은 이론적인 수식을 프로그램에 반영하고 이를 기반으로 표출용 데이터를 생성하여 그림의 형태로 표출하는 일련의 과정이라고 볼 수 있습니다. 일단 결과의 티저부터 먼저 보면 대략 다음과 같은 그림을 표출해보고자 하는 것입니다. 일단 이 작업을 시작하기 위해서는 플랑크 법칙을 나타내는..

IDL/Math 2024.06.20

특정 화소들만 강조한 이미지의 표출 (DG 체계)

어떤 특정한 조건을 내걸고 그 조건을 만족하는 화소들을 판별한 후 이미지 상에서 이러한 화소들만 특별히 강조하는 표출 방식에 관한 내용이 바로 얼마전의 게시물에서 소개된 바 있습니다. 여기서는 2차원 데이터를 흑백 계열 색상의 컬러테이블로 표출해놓은 상태에서 특정한 화소들만 붉은색으로 강조하여 표시하는 예제를 소개하면서 NG 체계 기준으로 두가지의 구현 방법을 소개하였습니다. 그런데 이러한 방식의 표출을 DG 체계에서도 구현할 수 있을까요? 사실 불가능하지는 않습니다. 다만 앞서 NG 체계 기준의 방법들의 경우는 원본 이미지를 먼저 표출하고 그 위에 NaN 값들이 포함된 이미지를 중첩하는 방식이었는데, 일단 DG 체계에서는 이러한 방식이 먹히지 않습니다. 왜냐하면 이미지 배열 내에 NaN 값이 있다해도 ..

IDL/Direct Graphics 2024.06.17

특정 화소들만 강조한 이미지의 표출

2차원적인 데이터를 이미지(Image)의 형태로 표출하는데 있어서는 기본적으로 다양한 컬러테이블(Color Table)들을 적용하여 값이 높낮이를 반영하는 방식이 일반적입니다. 그런데 경우에 따라서는 특정한 화소(Pixel)들만을 강조하여 나타내는 것이 필요할 수 있습니다. 즉 어떤 조건을 내걸고 그 조건을 만족하는 화소들이 판별한 후 이미지 상에서 이러한 화소들만 특별히 강조하는 방식을 뜻합니다. 제가 얼마전에 올렸던 게시물에서 다음과 같은 그림을 제시했던 적이 있습니다. 이 그림은 2차원 데이터를 흑백 계열 색상의 컬러테이블로 표출해놓은 상태에서 특정한 화소들만 붉은색으로 강조하여 표출한 것입니다. 사실 이러한 표출을 위해서는 약간의 요령이 필요한데, 여기서는 NG 체계에서 두 종류의 이미지를 중첩하..

배열 내 특정 값들의 탐색

어떤 배열이 주어졌을 때 그 안에서 특정한 값을 찾아내고 싶은 경우를 가정해봅시다. 실제로 이러한 경우는 드물지 않습니다. 그렇다면 특정한 값을 배열 내에서 찾아내고자 하는 경우에는 어떻게 처리를 해야 할까요? 사실 어떻게 보면 매우 간단한 문제일 수도 있습니다. 예를 한번 들어봅시다. 다음과 같이 1차원 배열이 주어진 상황을 가정해봅니다. data = [14, 58, 47, 92, 25, 66] 이렇게 6개의 값들로 구성된 1차원 배열 data가 있습니다. 여기서 25라는 값을 탐색하고자 합니다. 어떤 방법으로 처리하는 것이 좋을까요? 아무래도 이런 경우에는 WHERE 함수를 떠올리는 것이 인지상정(?)일 것 같습니다. 그렇다면 아마도 다음과 같이 처리하면 될 것 같습니다. ww = WHERE(data..

VALUE_LOCATE 함수 소개

오늘은 VALUE_LOCATE 함수를 소개해보고자 합니다. 이 함수의 역할은 점진적으로 증가 또는 감소하는 원소값들로 구성된 1차원 배열에 대하여 특정한 값이 위치한 구간을 찾아내는 것입니다. 그러면 이 함수의 역할을 예제와 함께 구체적으로 살펴보겠습니다. 예제로 사용할 1차원 배열은 다음과 같이 정의해봅시다. arr = [1:11]*10.+RANDOMU(-1, 11)*6-3 PRINT, arr  여기서 정의된 1차원 배열 arr은 다음과 같이 11개의 값들로 구성됩니다.    7.58579   17.6696   32.4743   40.3762   51.7342   60.1579   71.6800   81.6237   87.1076   98.7014   112.817 그리고 이 값들은 뒤로 갈수록 증가하..

IDL/Math 2024.06.07