반응형

IDL/Direct Graphics 27

DG 체계에서 여백의 설정 방법

오늘은 IDL의 DG(Direct Graphics) 체계에서 그림을 표출할 때 여백을 설정하는 방법에 관하여 알아보고자 합니다. 참고로 NG(New Graphics) 체계에서는 주로 MARGIN 키워드를 사용하여 상하좌우의 여백을 직접 설정하는 방식을 많이 사용합니다. 하지만 DG 체계에서는 여백을 설정하는 방식이 조금 다릅니다. 그러면 DG 체계에서 예제 그림을 표출해보면서 시작하기로 합니다. 간단한 예제로서 플롯(Plot) 형태의 그림을 표출하기 위한 예제 데이터의 생성 및 기본적인 표출 과정은 다음과 같습니다. DEVICE, DECOMPOSED=0 WINDOW, XSIZE=600, YSIZE=500 LOADCT, 0 !P.BACKGROUND = 255 x = FINDGEN(121) y = 1.7*S..

IDL/Direct Graphics 2024.04.09

DG 체계에서 지도와 이미지 중첩 표출 [4]

DG 체계에서 지도를 표출하고 그 위에 2차원 데이터를 중첩하는 방법에 관한 일련의 게시물들을 계속 올리고 있는데, 오늘은 4회차입니다. 지난 3회차에서 소개된 내용은 2차원 데이터가 거리 기반의 격자 분포를 하는 경우 DG 체계에서 지도상에 중첩 표출하는 방법이었습니다. 그래서 의도했던 표출 결과는 얻었는데, 다만 몇가지 보완이 필요해 보이는 부분들이 있었습니다. 오늘은 그 보완 작업을 마저 진행해보기로 하겠습니다. 먼저 지도가 LCC 투영법이라는 특성으로 인하여 내부의 경위도 격자선들이 비어보이는 부분들이 생기는데, 이를 보완하여 격자선들이 사각형 프레임 내에서 모두 채워지도록 해보고자 합니다. 이와 같이 DG 체계에서 LCC 투영법의 지도를 표출하면서 사각형 프레임 내에 경위도 격자선들이 빠짐없이 ..

IDL/Direct Graphics 2023.09.25

DG 체계에서 컬러바를 직접 제작하기

IDL에서 컬러바(Colorbar)를 표시하는 방법에 관해서는 예전에 한번 관련 게시물을 통하여 소개를 한 바 있습니다. 이 게시물에서도 언급하였듯이 원래 IDL의 DG(Direct Graphics) 체계에서는 컬러바의 표시를 위한 명령이라 할 만한 것이 딱히 있지는 않습니다. 그래서 Coyote 라이브러리에 있는 COLORBAR 프로시저를 따로 받아서 사용하는 것이 일반적인 해결책이었습니다. 다만 IDL에 NG(New Graphics) 체계가 도입되면서 동일한 이름으로 NG 체계의 COLORBAR 함수가 지원되기 시작하면서 서로 이름이 중복되는 문제가 발생하였기 때문에, Coyote 라이브러리의 COLORBAR 프로시저를 이름만 COLORBAR_COYOTE 프로시저로 바꿔서 소개를 한 것이 바로 앞서 ..

IDL/Direct Graphics 2023.09.18

DG 체계에서 지도와 이미지 중첩 표출 [3]

DG 체계에서 지도를 표출하고 그 위에 2차원 데이터를 중첩하는 방법에 관한 일련의 게시물들을 계속 올리고 있는데, 오늘은 3회차입니다. 앞서 1~2회차에서 소개된 내용은 2차원 데이터가 경도/위도 기반의 격자 분포를 하는 경우 DG 체계에서 지도상에 중첩 표출하는 방법이었습니다. 오늘은 또 다른 경우로서 바로 2차원 데이터가 거리 기반의 격자 분포를 하는 경우를 살펴보고자 합니다. 참고로 NG 체계에서 거리 기반의 격자 분포를 하는 2차원 데이터를 지도상에 중첩하는 방법 및 예제는 제가 전에도 관련 게시물들을 통하여 여러 차례 소개한 바 있습니다. 그런데 이러한 방식의 중첩 표출을 DG 체계에서 구현하려면 어떻게 해야 할까요? 물론 방법은 있습니다. 다만 이를 위해서는 제가 1회차 게시물의 서두에서 언..

IDL/Direct Graphics 2023.09.12

DG 체계에서 지도와 이미지 중첩 표출 [2]

지난 회차 게시물에서는 DG 체계에서 2차원 데이터를 지도상에 이미지의 형태로 중첩 표출하는 방법을 소개하기 시작하였는데, 중첩된 이미지 데이터가 이상하게 보이는 문제가 발생한 상태입니다. 이번 회차에서는 그 해결책을 알아보기로 하겠습니다. 우선 지난 회차에서 발생한 문제의 표출 결과는 다음과 같습니다. 사실 이 모습을 보면 가장 문제가 되는 증상들은 이미지 내부의 데이터 값의 범위에 대한 색상 배정 그리고 데이터가 존재하지 않는 짜투리 공간에 대한 값 처리 및 색상 배정 등 두가지 정도 측면에서 당초 우리가 기대했던 바와 다르게 나타나고 있다는 것입니다. 일단은 원본 데이터 배열인 data의 값 범위가 대략 43~55였다는 점을 주목해야 합니다. 이 data라는 배열 데이터는 MAP_IMAGE 함수에 ..

IDL/Direct Graphics 2023.09.05

DG 체계에서 지도와 이미지 중첩 표출 [1]

지도와 이미지 데이터를 중첩하여 표출하는 방법에 관해서는 제가 이 블로그에서 여러 차례 소개한 바 있습니다. 물론 주로 NG(New Graphics) 체계를 기준으로 관련 예제와 함께 소개를 했었는데요. DG(Direct Graphics) 체계에서의 방법에 관해서는 제대로 소개를 한 적이 없었던 것 같습니다. 그래서 DG 체계에서 지도와 이미지를 중첩 표출하는 방법에 관하여 이번 기회에 본격적으로 소개를 해보고자 합니다. 먼저 DG 체계에서 지도를 표출하는 방식에 관하여 간략하게 언급을 하고 진행하는 것이 좋을 것 같습니다. DG 체계에서 지도의 표출과 관련된 기능들을 보면 MAP_SET, MAP_CONTINENTS, MAP_GRID, MAP_PROJ_INIT 등이 있습니다. 그런데 이러한 기능들을 활용..

IDL/Direct Graphics 2023.09.01

LCC 투영법 기반의 지도 외곽 및 격자선 처리 (DG 체계)

IDL에서 LCC(Lambert Conformal Conic) 투영법 기반의 지도를 표출하는데 있어서 외곽 부분을 직사각형의 형태로 처리하는 방법에 관한 게시물을 얼마전에 올린 바 있습니다. 여기서는 INSERT_GRID_LABELS_IN_LCC_MAP_NG라는 별도의 프로그램을 추가적으로 사용하여 예를 들면 다음과 같은 표출 결과를 얻을 수 있었습니다. 그런데 여기서 제시한 방법은 NG(New Graphics) 체계 기반으로 지도를 LCC 투영법으로 표출할 경우에 대한 것이었는데요. 그렇다면 DG(Direct Graphics) 체계에서는 어떨까요? 사실 DG 체계에서 LCC 투영법의 지도를 표출할 경우에도 외곽 부분이 부채꼴과 같은 형태를 띄는 것이 기본이긴 하지만, DG 체계에서도 위의 그림과 같이 ..

IDL/Direct Graphics 2023.08.22

DG 체계에서 NaN 값이 포함된 이미지의 표출

2차원적인 이미지 데이터가 있을 때 IDL에서 이러한 데이터를 이미지의 형태로 표출하는 것은 그리 복잡한 일은 아닙니다. 그런데 이미지 데이터 내에 아무런 의미가 없는 값들이 존재하는 경우가 종종 있습니다. 통상적으로는 특정한 화소에 대하여 의미있는 데이터 값이 전혀 대응되지 못한 경우인데, 주로 이미지 데이터를 얻는 과정에 있어서 관측기기의 문제일 수도 있고 또는 관측에서 데이터로 전환되는 과정에서 뭔가 문제가 발생한 경우일 수도 있습니다. 어쨌든 이렇게 무의미한 값들이 2차원 데이터 내에서 NaN(Not a Number) 값의 형태로 존재하는 상태에서 이 데이터를 이미지의 형태로 표출하는 경우를 가정해보는 것입니다. 먼저 이러한 형태의 가상의 데이터를 다음과 같이 생성해보겠습니다. data = HAN..

IDL/Direct Graphics 2023.08.10

색상 이름을 RGB로 변환하여 사용하기

이미 많이들 알고계시겠지만, IDL의 NG 체계에서는 색상을 이름으로 지정하여 사용할 수 있습니다. 예를 들어 파란색의 경우에는 'blue'라는 문자값으로 정의됩니다. 물론 그 외에도 여러가지 색상들이 있는데 그 중 'hot_pink'라는 색상도 있습니다. 어쨌든 원하는 색상을 사용하고자 할 경우에는 다음과 같이 이름을 그대로 사용하면 됩니다. p = PLOT(x, y, COLOR='hot_pink') IDL에서는 이와 같이 이름으로 지정 가능한 색상들이 총 147종입니다. 이와 관련된 구체적인 정보는 다음과 같이 시스템 변수 !COLOR로부터 확인이 가능합니다. PRINT, N_TAGS(!COLOR) PRINT, !COLOR 그런데 이와 같이 이름으로 정의되어있는 색상에 대한 RGB 값을 가져오는 것이..

IDL/Direct Graphics 2023.02.23

DG 체계에서 컬러테이블에 없는 색상 사용하기

DG(Direct Graphics) 체계에서 특정한 색상(Color)을 사용하고자 할 경우에는 그 색상이 포함되어 있는 컬러테이블을 불러와서 그 색상의 번호(Index)를 명시하는 사용하는 방법이 일반적입니다. 예를 들어 빨간색(Red)을 사용하고자 할 경우 다음과 같이 이 색상을 포함하는 컬러테이블(예를 들면 13번)을 불러온 다음 색상 번호 255를 사용하는 방식입니다. LOADCT, 13 XYOUTS, 0.5, 0.5, 'IDL', COLOR=255, /NORMAL 그런데 작업을 하다보면 컬러테이블에 속한 256개의 색상들 외에 다른 색상을 사용하는 것이 필요할 경우가 있습니다. 앞서 예를 들었던 13번 컬러테이블의 경우 그 색상 구성을 보면 다음과 같습니다. 이 모습을 보면 금방 알 수 있는데 실..

IDL/Direct Graphics 2022.06.17