SMALL

분류 전체보기 776

블로그 이전 안내 드립니다

먼저 이 블로그에 방문해주시는 이용자 여러분들께 항상 감사드린다는 말씀을 드리고 싶습니다. 다름이 아니라 제가 운영중인 이 IDL 블로그를 이제 다른 곳으로 이전하기로 결정하게 되어서 이에 관한 안내 말씀을 드리고자 합니다. 제가 이 블로그를 시작한 시기가 2010년경이었으므로 이제 대략 16년 정도가 흘렀습니다. 이 블로그를 운영하게 된 취지는 국내 IDL 사용자들께 여러가지 기술적 도움을 드리고자 하는 마음이었습니다. 사실 국내에서는 IDL의 사용자 저변이 그리 넓은 편은 아니기 때문에 다른 프로그래밍 언어들처럼 유저 커뮤니티의 활동이 활발하지는 않습니다. 그렇기 때문에 IDL 도움말과 같은 교과서적이고 백과사전적인 내용 이외에 유저들이 실제로 겪게 되는 기술적 난관이나 의문들을 해소할만한 창구가 충..

IDL/General 2026.04.07

웨비나(Webinar) 안내 (2026. 4. 15)

IDL/ENVI의 제작사인 NV5 Geospatial에서 오는 4월 15일에서 4월 16일에 걸쳐 개최될 예정인 웨비나(Webinar)에 대하여 안내합니다. 이번 웨비나의 제목은 "Meet Your New Partners in Science: ENVI Agent and IDL Agent"입니다. 이번 웨비나에서는 최근에 ENVI와 IDL에 도입된 Agent 기능을 중점적으로 소개하게 됩니다. 이것은 작업의 도우미 역할을 하는 AI 기능이라고 보시면 됩니다. 요즘 워낙에 AI 시대이기도 하고 다양한 분야에 걸쳐서 AI의 기능이 이용되고 있는데, IDL에서도 코딩의 보조 역할을 하는 IDL Agent 기능이 도입된 셈입니다. 일단 이 기능을 사용하기 위해서는 다음과 같은 조건이 필요합니다. • IDL 9.2..

IDL/General 2026.04.02

궤적 상의 입자 운동 구현 및 애니메이션 (3D)

2차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개하는 게시물을 얼마전에 올린 바 있습니다. 이번에는 2차원 대신 3차원 공간에 대한 예제를 살펴보고자 합니다. 즉 3차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개해보기로 합니다. 사실 전반적인 내용의 흐름 자체는 2차원 예제와 크게 다르지는 않습니다. 다만 모든 것이 3차원이 구현된다는 부분만 다를 뿐입니다. 그러면 3차원 공간상에 존재하는 궤적을 구성하는 점들의 좌표 데이터를 생성하는 작업부터 진행해야 하는데요. ..

IDL/New Graphics 2026.03.31

이미지의 부분 영역 확대 표출 및 애니메이션

오늘은 이미지를 처리 및 표출하는 예제로서, 사이즈가 큰 이미지 데이터가 주어졌을 때 원본 이미지와 그 중 일부에 해당되는 영역만 확대된 부분 이미지를 나란히 배치하고 그 대상이 되는 영역의 위치를 순차적으로 변화시키는 예제를 살펴보고자 합니다. 예제로 사용할 이미지 데이터는 IDL의 설치 폴더에서 제공되는 boulder.tif라는 파일을 읽어서 배열로 가져오기로 합니다. 이 파일은 TIFF 형식이며 다음과 같이 READ_IMAGE 함수를 사용하여 읽으면 됩니다. file = FILEPATH('boulder.tif', SUBDIRECTORY=['examples', 'data']) data = READ_IMAGE(file) HELP, data 이와 같이 데이터를 읽으면 1071x1390의 크기를 갖는 바이..

궤적 상의 입자 운동 구현 및 애니메이션

오늘은 2차원 공간에 존재하는 궤적이 있고 그 위에서 움직이는 입자가 있는 상황을 가정하여 이를 그래픽적으로 도식화하고 그 움직임을 담은 애니메이션 파일을 만들어보는 예제를 소개하고자 합니다. 먼저 궤적을 구성하는 점들의 좌표 데이터를 생성하는 작업부터 진행합니다. 그 과정은 다음과 같이 정의해봅니다. n = 400 t = [0:2*!pi:2*!pi/n] r = 0.5+COS(t) x = r*COS(t) y = r*SIN(t) HELP, x, y 여기서는 총 401개의 X축 및 Y축 좌표값들로 구성된 배열 x 및 y를 정의하였습니다. 이러한 점들로 구성된 궤적을 그림으로 표출하기 위하여 다음과 같은 과정을 추가로 실행합니다. sx = 600 sy = 600 win = WINDOW(DIMENSIONS=[s..

IDL/New Graphics 2026.03.13

데이터 포인트들을 다양한 색상으로 표출하기 [3]

2차원 공간상에 흩어져있는 다수의 데이터 포인트들 다양한 색상으로 표출하는 방법에 관한 게시물들(링크 1, 링크 2)을 올렸던 적이 있습니다. 그래서 이러한 방식의 구현을 위하여 SCATTERPLOT 및 BUBBLEPLOT 함수를 사용하는 방법 및 예제들을 다양하게 소개한 바 있는데요. 오늘은 이러한 연장선상에 있는 또 다른 예제들을 소개해보고자 합니다. 먼저 예제 데이터를 생성하는 과정부터 시작하면 다음과 같습니다. n = 100 x1 = RANDOMU(-1, n)*100 y1 = RANDOMU(-2, n)*100 x2 = RANDOMU(-3, n)*100 y2 = RANDOMU(-4, n)*100 x3 = RANDOMU(-5, n)*100 y3 = RANDOMU(-6, n)*100 여기서는 2차원 공..

IDL/New Graphics 2026.03.06

배열간 연산과 반복형 구문에 의한 연산 사이의 비교 [2]

지난 회차 게시물에서는 배열들을 사용하여 연산 결과를 얻는 방식에 있어서 배열간 연산과 반복형 구문에 의한 연산이라는 두가지 방식에 대하여 살펴보고 서로 비교해보았습니다. 특히 대용량 데이터를 다루게 될 경우에는 두 방식의 소요 시간이 서로 상당히 큰 차이를 보인다는 것도 함께 확인한 바 있습니다. 그러면 이번 회차에는 이러한 차이를 가늠할 수 있는 다른 예제를 살펴보기로 하겠습니다. 이번 예제에서는 반복형 구문 내에서 IF와 같은 조건형 구문이 사용되는 경우입니다. 예제를 보면 다음과 같습니다. n = 10000000 a = RANDOMU(-1, n)*100 b = RANDOMU(-2, n)*100 c = RANDOMU(-3, n)*100 TIC r = FLTARR(n) FOR j = 0, n-1 DO..

IDL/Programming 2026.02.26

배열간 연산과 반복형 구문에 의한 연산 사이의 비교 [1]

우리가 IDL에서 대용량 데이터를 처리하는데 있어서는 배열로 정의된 데이터를 다루는 것이 일반적입니다. 즉 대용량의 데이터를 배열에 담고 이러한 배열에 대하여 필요한 연산을 수행하는 방식입니다. 이러한 작업에 있어서는 반복형 구문을 사용하는 연산을 수행하는 경우도 있고 그냥 배열끼리의 연산으로 처리하는 경우도 있습니다. 통상적으로는 배열끼리의 연산으로 처리하는 경우가 많지만 작업의 특성에 따라서는 반복형 구문을 사용하는 연산을 하게 되는 경우도 있습니다. 오늘은 이러한 두가지 연산 방식을 서로 비교해보고 그 차이점도 확인해보고자 합니다. 이를 위하여 간단한 예제를 다음과 같이 작성해봅시다. n = 10a = RANDOMU(-1, n)*100 b = RANDOMU(-2, n)*100 c = RANDOMU(..

IDL/Programming 2026.02.23

TIC, TOC 명령을 활용한 시간 측정 방법

오늘은 IDL에서 특정한 프로세스가 돌아가는데 걸리는 시간을 측정할 때 사용하는 TIC, TOC 명령들에 관하여 간략히 살펴볼까 합니다. 사실 TIC, TOC 명령들은 제가 이 블로그에서 올린 몇몇 게시물들에서도 이미 여러번 사용한 바 있습니다. 사용 방법은 매우 간단하며 마치 스톱워치처럼 사용하면 됩니다. 즉 TIC 명령을 실행하면 시간 측정이 시작되고 TOC 명령을 실행하면 시간 측정이 멈추면서 그때까지 경과한 시간을 초 단위로 표시해줍니다. 먼저 다음과 같이 IDL의 명령 프롬프트에서 간단히 시도해봅시다. IDL> TIC IDL> TOC % Time elapsed: 3.4210000 seconds. 이와 같이 TIC 명령을 실행하고 어느 정도 이후에 TOC 명령을 실행하면 경과 시간 즉 TIC 명령..

IDL/Miscellaneous 2026.02.12

이미지(Image)에 대한 광원 효과 적용 [2]

지난 회차 게시물에서는 2차원 데이터를 이미지의 형태로 표출하면서 화소값의 높낮이에 따른 명암 및 그림자 효과를 구현하기 위하여 IDL의 OG(Object Graphics) 체계 기반으로 2차원 데이터를 서피스(Surface) 객체로 구현하고 여기에 광원(Light Source) 객체를 추가하여 이용하는 예제를 살펴본 바 있습니다. 일단 지난 회차에서 작업했던 내용을 그대로 가져와서 계속 작업을 이어나가기로 하겠습니다. 그 내용은 다음과 같습니다. dd = 0.02x = [-5:5:dd]#MAKE_ARRAY(10/dd+1, VALUE=1)y = [-5:5:dd]##MAKE_ARRAY(10/dd+1, VALUE=1)z = 5*((x^2+y^2)^0.3+SIN((x^2+y^2)*0.5))HELP, zPRIN..

IDL/Object Graphics 2026.02.05
728x90