SMALL

IDL/Programming 99

HttpRequest 클래스의 FILENAME 키워드 사용법

이번에 출시된 IDL 9.2에 관한 게시물을 얼마전에 올린 바 있습니다. 여기서 이미 언급되었듯이 HttpRequest 클래스에 FILENAME 키워드가 추가되었습니다. HttpRequest 클래스는 IDL 9.0 버전에서 처음 도입되었고, 기존에 비슷한 역할을 하던 IDLnetURL 클래스를 향후 대체할 목적으로 도입되었다고 볼 수 있습니다. HttpRequest 클래스 자체에 대해서는 IDL 9.0 출시 당시에 이미 관련 게시물을 올린 바 있습니다. 다만 오늘은 이번에 추가된 FILENAME 키워드에 촛점을 맞춰서 간략히 살펴보고자 합니다. 일단 IDL 9.2 기준으로 HttpRequest 클래스의 메서드들 중에서 Get, Post, Put, Patch 메서드들이 FILENAME 키워드를 지원합니다...

IDL/Programming 2025.08.25

COMPILE_OPT 선언문의 이해 [2]

IDL에서 몇가지 기본적인 설정들을 인위적으로 변경 및 강제하는 역할을 하는데 사용되는 COMPILE_OPT 선언문에 관하여 소개하는 게시물을 지난번에 올린 바 있습니다. 이 게시물에서는 COMPILE_OPT에서 설정 가능한 인자들 중 사용 빈도가 비교적 많은 DEFINT32, STRICTARR 인자들에 관하여 중점적으로 살펴보았습니다. 물론 설정 가능한 인자들은 그 외에도 더 있습니다. 그래서 나머지 인자들 중에서 주목해볼만한 몇가지를 더 소개해보기로 합니다. 먼저 FLOAT64라는 인자부터 보겠습니다. 일단 이러한 인자를 사용하는 방식은 다음과 같습니다. COMPILE_OPT FLOAT64 이러한 문구를 프로시저나 함수 프로그램의 맨 앞부분에 명시할 수도 있고 또는 그냥 IDL의 커맨드 입력창에서 ..

IDL/Programming 2025.07.24

COMPILE_OPT 선언문의 이해 [1]

IDL을 사용하다보면 유저가 직접 작성한 프로그램 외에도 다른 유저들에 의하여 작성된 IDL 프로그램들을 받아서 사용하게 되는 경우가 꽤 있습니다. 이러한 외부 IDL 라이브러리의 프로그램들을 받아서 그 내용을 보면 맨 앞부분에 COMPILE_OPT라는 일종의 선언문이 사용된 경우들을 종종 보게 됩니다. 그래서 이 COMPILE_OPT 선언문을 별로 사용해보지 않은 유저라면 이것이 대체 어떤 목적으로 사용되는 것인지 궁금할 수도 있을 것입니다. 사실 COMPILE_OPT는 일종의 선언문(Statement)으로서 IDL의 프로시저 및 함수형 프로그램에서 몇가지 기본적인 설정들을 인위적으로 강제하는 역할을 합니다. 이렇게만 표현하면 다소 막연하게 느껴질 수도 있으므로 그 내막을 좀 들여다보기로 하겠습니다. ..

IDL/Programming 2025.07.22

날짜 기반의 이름을 갖는 파일들에 대한 접근법

우리가 IDL에서 파일들을 대상으로 작업을 할 때 파일의 이름에 날짜 기반의 문자열이 포함된 경우가 종종 있습니다. 예를 들면, 다음과 같은 이름을 갖는 파일을 가정해봅시다. 20250603_181500_Ic_flat_4k.jpg 이것은 실제로 배포되고 있는 파일로서, 그 관측시각이 2025년 6월 3일 18시 15분 00초인 JPG 파일입니다. 그런데 만약 유저가 원하는 특정한 날짜에 대하여 위와 같은 형식을 갖는 파일명을 직접 문자로 생성하려면 어떻게 하면 될까요? 예를 들어서 2025년 6월 7일 13시 30분에 해당되는 파일명을 위와 같은 형식의 문자열로 생성하려는 경우입니다. 이러한 작업을 위해서는 기본적으로는 JULDAY 함수 및 STRING 함수를 사용하면 됩니다. 그리고 STRING 함수의..

IDL/Programming 2025.07.01

FILE_COPY 및 FILE_MOVE 명령

IDL로 작업을 하면서 외부 파일들에 접근해야 하는 경우들은 종종 있습니다. 예를 들면, 디렉토리 내의 파일 목록을 살펴보고 특정한 파일을 읽어야 하는 경우 또는 IDL에서 파일을 생성하여 특정한 디렉토리에 저장하는 경우 또는 파일(들)을 원래 위치로부터 다른 디렉토리로 옮기는 경우 등 여러가지 경우들을 생각해볼 수 있습니다. 이와 같이 IDL에서 외부 파일 시스템에 접근하는 방법에 해당되는 기능들 몇 가지에 관해서는 예전에 관련 게시물들(링크1, 링크2, 링크3, 링크4)을 올린 바 있습니다. 오늘은 이러한 기능들 중 파일의 복제 또는 이동의 역할을 담당하는 FILE_COPY 및 FILE_MOVE 명령들에 관하여 살펴보기로 합니다. 먼저 FILE_COPY 명령은 파일(들)을 원래 위치에서 다른 위치로 ..

IDL/Programming 2025.06.20

FOREACH 구문 소개

오늘은 IDL 8.0 버전부터 새로 도입된 FOREACH라는 구문(Statement)을 소개하기로 하겠습니다. 이름을 봐서는 아무래도 FOR문과 흡사한 역할을 할 것 같다는 느낌이 먼저 듭니다만, 사용법은 약간 다릅니다. 사실 IDL에서는 반복형 구문으로서 FOR, WHILE, REPEAT 구문들이 지원되는데 FOREACH 구문은 가장 나중에 도입된 반복형 구문이라고 보시면 됩니다. 그러면 FOREACH 구문의 예제를 하나 보도록 하겠습니다. 그러면 아마 FOR 구문과의 차이점을 확연히 느낄 수 있을 것입니다. 다음과 같이 a라는 배열을 먼저 생성해봅시다. a = 100*INDGEN(11) 이 배열은 0, 100, 200, ..., 900, 1000과 같은 11개의 정수값들로 이루어져 있습니다. 이 배열..

IDL/Programming 2025.05.26

CASE 구문과 SWITCH 구문

IDL에서 지원되는 구문들(Statements) 중에는 여러가지 경우들 중 조건에 부합되는 하나의 경우에 대하여 지정된 작업이 실행되도록 해주는 CASE 구문 및 SWITCH 구문이 있습니다. 그런데 CASE와 SWITCH는 얼핏 보면 비슷해 보일 수도 있지만 세부적인 기능은 서로 다릅니다. 오늘은 이 두가지 구문들 각각에 대한 개요 및 서로간의 차이점을 살펴보기로 하겠습니다. CASE 구문은 여러가지 경우들 중 조건에 부합되는 하나의 경우에 대하여 지정된 작업을 실행하도록 하는 구문입니다. CASE 구문은 기본적으로 CASE로 시작하여 ENDCASE로 끝나는 구조를 갖습니다. 간단한 예제를 보면 다음과 같습니다. x = 2CASE x OF 1 : PRINT, 'one' 2 : PRINT, '..

IDL/Programming 2025.05.20

QHULL 함수를 이용하여 최대 볼록 다각형 찾기 (3차원)

2차원 이상의 공간 내에서 다수의 점들이 분포하는 상태에서 Quick Hull 알고리즘에 의하여 이 점들을 모두 포함하는 최대 크기의 볼록 다각형(Largest Convex Polygon)을 찾아내는 작업을 IDL에서 QHULL 함수를 사용하여 수행하는 방법 및 예제를 지난 회차 게시물에서 소개한 바 있습니다. 지난 예제의 경우는 2차원 공간상에 분포한 데이터 포인트들을 대상으로 하였는데요. 기본적으로 QHULL 함수는 2차원 이상인 경우에 대하여 적용이 가능합니다. 그래서 오늘은 3차원 공간상에 분포한 데이터 포인트들을 대상으로 QHULL 함수를 적용해보는 예제를 소개해보고자 합니다. 먼저 다음과 같이 3차원 공간상에 분포하는 10개의 포인트들에 대한 X, Y, Z 좌표 데이터를 생성하는 방식으로 가상..

IDL/Programming 2025.05.14

QHULL 함수를 이용하여 최대 볼록 다각형 찾기 (2차원)

오늘은 IDL에서 Quick Hull 알고리즘을 사용할 수 있게 해주는 QHULL 프로시저를 소개해보고자 합니다. 이 알고리즘은 2차원 이상의 공간 내에서 다수의 점들이 분포하는 상태에서 Quick Hull 알고리즘에 의하여 이 점들을 모두 포함하는 최대 크기의 볼록 다각형(Largest Convex Polygon)을 찾아내는 기법입니다. 그러면 2차원 공간 내에 존재하는 임의의 점들을 가정하여 그 과정을 살펴보기로 하겠습니다. 먼저 다음과 같이 10개의 점들로 구성된 가상 데이터를 생성하고 이 점들을 2차원 공간상에 표시해봅시다. x1 = RANDOMU(-1, 10)*10 y1 = RANDOMU(-2, 10)*10+50 win = WINDOW(DIMENSIONS=[600, 600], /NO_TOOLBA..

IDL/Programming 2025.05.07

Permil 기호의 표시 featuring 유니코드 문자 사용법

IDL의 NG 체계에서 Tex 형식의 특수 문자 및 기호들을 사용하는 방법에 관해서는 예전에 관련 게시물들(링크1, 링크2)을 통하여 소개한 바 있습니다. 예제를 하나 보면 다음과 같습니다. win = WINDOW(DIMENSIONS=[600, 400], /NO_TOOLBAR)tx = TEXT(0.5, 0.5, '$\alpha\beta\gamma\Mars\Sun$', $ FONT_SIZE=36, ALIGNMENT=0.5, /NORMAL)이와 같은 방식으로 다양한 특수 문자 및 기호들을 표시할 수 있습니다. 그런데 이런 작업을 하다보면 특정한 문자나 기호가 제대로 표시되지 않는 경우가 가끔 있습니다. 예를 들면 Permil(천분율) 기호가 그러한 케이스인데요. 일단 이 기호의 모습을 보면 다음과 같습니다..

IDL/Programming 2025.04.22
728x90