SMALL

전체 글 724

HSV 및 HLS 체계 기반의 컬러테이블 생성 [2]

지난 회차에서는 IDL에 HSV 체계를 기반으로 컬러테이블을 생성하는 방법 및 예제들을 소개하였습니다. 오늘은 HLS 체계를 기반으로 컬러테이블을 생성하는 방법 및 예제들을 소개해보도록 하겠습니다. HLS라는 명칭의 이니셜들은 각각 Hue(색상), Lightness(명도), Saturation(채도)를 뜻합니다. 얼핏 보면 HSV와 비슷해보일 수도 있지만 분명한 차이가 있습니다. 일단 색상 및 채도의 개념은 HSV의 경우와 동일합니다. 하지만 명도의 개념이 서로 다르다는 점을 염두에 두면 좋을 것 같습니다. 먼저 색상의 경우는 컬러휠(Color Wheel)이라고 하는 마치 개별 색상들로 구성된 원형의 바퀴같은 형태로 구성되어 있는데, 각도 0~360도에 걸쳐 각각의 각도 값에 대하여 고유의 색상이 매칭되..

HSV 및 HLS 체계 기반의 컬러테이블 생성 [1]

IDL에서 컬러테이블(Color Table)을 사용하는데 있어서 원래 IDL이 기본적으로 지원하는 75종과는 별도로 사용자가 직접 커스텀 컬러테이블을 정의하여 사용하는 방법에 관해서는 제가 이 블로그를 통하여 여러 차례 소개해드린 바 있습니다. 그리고 이러한 작업에 있어서는 색상을 Red, Green, Blue 값으로 정의하는 RGB 체계를 기반으로 설명을 해왔습니다. 실제로도 RGB 체계가 가장 일반적이고 보편화된 색상 체계이긴 합니다. 그런데 RGB 이외에도 다른 컬러 체계들도 있는데, 바로 이번에 소개할 HSV 및 HLS 체계들입니다. 물론 컬러테이블을 만드는데 있어서 RGB 체계 기반으로도 충분하긴 하지만, HSV 및 HLS 기반의 방법도 나름의 특성과 장단점이 있습니다. 물론 IDL에서도 HSV..

IDL에서 메모리를 절약하는 팁 (DELVAR, TEMPORARY)

우리가 IDL에서 많은 변수 및 배열들을 갖고 작업을 하다보면 이러한 항목들이 메모리를 점점 차지하게 됩니다. 특히 배열의 경우 크기가 클수록 한번에 차지하는 메모리의 양이 결코 적지 않습니다. 그런데 만약 이런 배열들을 여러 개를 한꺼번에 정의하여 처리하게 되면, 컴퓨터의 사양에 따라서는 작업의 속도 및 효율이 저하되는 경우가 종종 있습니다. 또한 배열 자체는 한두개 정도라 하더라도 그 용량이 크고 여러 단계의 과정들을 거처 이러한 배열 데이터를 계속 처리해가는 작업을 할 경우에도 비슷한 현상이 발생할 수 있습니다. 특히 2차원 또는 3차원 데이터를 갖고 작업하면서 이런 현상을 경험해보신 유저들도 있을 것이라 봅니다. 저도 물론 그런 경험들을 많이 했었습니다. 이와 같은 메모리 문제를 해결하기 위해서는..

IDL/Miscellaneous 2023.03.23

SER 포맷의 파일 읽기

SER 포맷은 천문관측 소프트웨어인 SharpCap에서 생성되는 일종의 비디오 파일 형식입니다. 즉 여러 장의 사진들을 묶어서 동영상의 형태로 합쳐놓은 방식으로서 종종 AVI 포맷과도 비교가 됩니다. 이러한 포맷은 SharpCap 이외에도 Lucam Recorder, SIRIL, PIPP 등과 같은 천문관측 이미징 소프트웨어들에서도 지원됩니다. 이러한 SER 포맷의 파일을 IDL에서 읽을 수 있을까요? 일단 IDL에서 기본적으로 지원되는 각종 파일 형식들 중에는 SER 포맷은 포함되어 있지는 않습니다. 하지만 기본 지원되지는 않더라도 IDL에서 SER 포맷의 파일을 읽는 것은 가능합니다. 왜냐하면 SER 포맷의 파일은 기본적으로 바이너리(Binary) 파일이고 그 안에 어떤 형식으로 데이터들이 저장되어있..

3차원 공간상에서 지도와 타 그래픽 요소의 중첩 표출 [2]

지난 회차에 이어서 오늘은 두번째 순서로서 3차원 그래픽 공간에서 지도를 바닥에 깔고 그 위에 이미지(Image) 또는 등위선(Contour)을 중첩 표출하는 예제를 소개해보고자 합니다. 먼저 예제 데이터는 한반도 및 주변 영역에 대하여 일정한 경도 및 위도에 걸쳐 분포하는 2차원 격자 데이터를 가정해보았습니다. 이러한 가상 데이터를 정의하고 생성하는 과정은 다음과 같습니다. data = HANNING(400, 400)*100 add = FLTARR(400, 400) add[200, 200] = HANNING(200, 200)*50 data = data+add lons = 120+FINDGEN(400)*0.05 lats = 30+FINDGEN(400)*0.05 이와 같이 경도 120~140도 및 위도 3..

IDL/New Graphics 2023.03.13

3차원 공간상에서 지도와 타 그래픽 요소의 중첩 표출 [1]

오늘은 글 제목을 3차원 공간상에서 지도와 타 그래픽 요소의 중첩 표출이라고 적었는데, 구체적으로 얘기해보면 XYZ 축으로 구성되는 3차원 그래픽 공간에서 지도를 바닥에 깔고 그 위에 다른 평면적인 그래픽 요소들(이미지, 벡터 등)을 중첩하여 표출하는 방법에 관한 것입니다. 약간 비슷한 느낌의 표출 예제를 제가 예전에 관련 게시물을 통하여 한번 소개했던 적이 있으므로 이 게시물에 수록된 그림들을 한번 참조해보시면 좋을 것 같습니다. 일단 오늘은 첫 순서로서 3차원 그래픽 공간에서 지도를 바닥에 깔고 그 위에 벡터장을 중첩 표출하는 예제를 소개해보고자 합니다. 그러면 본격적인 시작을 위하여 먼저 예제 데이터부터 생성해보겠습니다. 여기서는 한반도 및 주변 영역에 대한 2차원적인 벡터장이 여러 고도층에 걸쳐서..

IDL/New Graphics 2023.03.08
728x90