SMALL

IDL/Programming 99

JSON 데이터의 수신/처리/표출 예제

IDL에서 JSON 형식의 파일을 읽는 방법에 관해서는 제가 이 블로그에서 몇 차례 관련 게시물들(링크 1, 링크 2, 링크 3)을 올리면서 자세히 소개한 바 있고, JSON 형식의 파일을 읽고 간단하게 표출을 해보는 예제도 함께 소개한 바 있습니다. 오늘 소개할 내용도 기본적인 골격은 크게 다르지는 않습니다. 그냥 실제로 배포되는 JSON 형식의 데이터 파일을 수신하여 IDL에서 읽고 그림으로 표출하는 과정에 대한 하나의 실전 예제 정도로 생각해주시면 될 것 같습니다. 일단 예제로 사용할 JSON 파일은 아래에 링크를 통하여 다운로드받을 수 있습니다. https://services.swpc.noaa.gov/products/solar-wind/plasma-7-day.json 이 파일에 수록된 데이터는 항..

IDL/Programming 2024.12.23

HttpRequest 클래스 소개

오늘 소개할 HttpRequest 클래스는 HTTP 또는 HTTPS 서버와 접속하여 Get, Post, Put 등의 요청을 수행할 수 있도록 해주며, IDL 9.0 버전에서 처음 도입되었습니다. 오늘은 HttpRequest 클래스의 기능에 관하여 간략히 소개를 해볼까 합니다. 사실 이와 유사한 기능이 기존에 없었던 것은 아닙니다. 제가 예전에 관련 게시물을 통하여 소개했던 IDLnetURL 클래스 역시 그 역할은 비슷합니다. 다만 둘 사이에는 기능상의 차이가 좀 있는데 대략 요약해보면 다음과 같습니다. (1) HTTP, HTTPS 또는 FTP 서버에 접속(2) Get, Put 등의 메서드들이 지원되지만 Post 메서드는 지원하지 않음(3) 파일 다운로드 기능 탑재 (1) HTTP 또는 HTTPS 서버에 ..

IDL/Programming 2024.12.09

LABEL_DATE 함수의 활용법

IDL에서 날짜 기반의 데이터를 플롯(Plot)의 형태로 표출하는 방법에 관해서는 예전에 관련 게시물들(링크 1, 링크 2, 링크 3)을 통하여 소개했던 적이 있습니다. 이 게시물들에서는 주로 날짜 기반의 포맷 코드를 활용하는 방식으로 처리를 하였으며 이러한 포맷 코드의 사용 방법에 관해서도 관련 게시물들(링크1, 링크 2)을 통하여 따로 소개한 바 있습니다. 실제로 앞서 언급한 관련 게시물들에서는 PLOT 함수의 XTICKFORMAT 속성에 대하여 예를 들면 다음과 같은 방식으로 날짜 기반의 포맷 코드를 부여한 바 있습니다. XTICKFORMAT='(C(CMoA, " ", CDI, " ", CHI2.2, ":", CMI2.2))' 이러한 방식으로 처리하면 플롯의 X축의 눈금값들이 일정한 포맷의 날짜 형..

IDL/Programming 2024.09.24

IDL 8.9에서 추가된 상수 정의 기능

IDL 8.9에서는 상수(Constants)의 정의 기능에 있어서 업데이트된 사항들이 몇가지 있습니다. 그래서 관련된 주요 사항들을 정리하여 소개해보고자 합니다. 기존의 IDL에서는 복소수를 정의하는데 있어서 COMPLEX 함수를 사용하는 것이 유일한 방법이었습니다. 예를 들어서 복소수 2-3i를 정의하는 방법은 다음과 같습니다. a = COMPLEX(2, -3) HELP, a 이렇게 하면 출력된 내용을 통하여 확인할 수 있듯이 변수 a는 복소수 2-3i를 담게 됩니다. A COMPLEX = ( 2.00000, -3.00000) 그런데 IDL 8.9에서는 복소수를 정의하는 새로운 방법이 추가되었는데, 바로 알파벳 i 또는 j를 활용하는 방법입니다. 즉 다..

IDL/Programming 2023.06.29

IDL 8.9의 Literal Strings 문법

IDL에서는 문자값을 정의할 때 항상 따옴표를 사용하는데, 따옴표는 싱글 또는 더블 모두 가능합니다. 즉 다음 두 경우는 모두 같은 결과를 출력합니다. PRINT, 'IDL 8.9 is now available' PRINT, "IDL 8.9 is now available" 그런데 만약 다음과 같은 문장을 출력하고 싶다고 합시다. There are 43 persons in this class 그리고 저 43이라는 값이 n이라는 변수에 저장된 상황을 가정합니다. 그러면 위와 같은 문장을 출력하기 위해서는 기존에는 다음과 같은 문법으로 처리해야 했습니다. n = 43 PRINT, 'There are '+STRTRIM(n, 2)+' persons in this class' 이것은 정수형 값 변수인 n을 문자값 ..

IDL/Programming 2023.06.28

음수 범위를 로그 스케일(Log Scale)로 표시하기

IDL에서 플롯 계열의 표출을 하는데 있어서 축(Axis)의 눈금을 로그(Log) 스케일로 표시하는 기능은 이미 예전부터 지원되어오고 있습니다. NG 체계의 PLOT 함수 및 DG 체계의 PLOT 프로시저 모두 /XLOG 및 /YLOG 키워드를 사용하여 설정하면 됩니다. 간단한 예제를 하나 본다면 다음과 같습니다. x = FINDGEN(11) y = x*450+500 win = WINDOW(DIMENSIONS=[600, 500], /NO_TOOLBAR) p = PLOT(x, y, YRANGE=[100, 10000], /YLOG, YTICKUNITS='exponent', $ SYMBOL='circle', /SYM_FILLED, COLOR='crimson', CLIP=0, FONT_SIZE=10, $ MAR..

IDL/Programming 2023.04.25

WHILE 및 REPEAT 구문의 이해

일반적으로 프로그래밍을 하면서 자주 하게 되는 작업 중 하나가 바로 반복 작업입니다. 물론 IDL에서도 여러가지 형태의 반복형 구문들이 지원됩니다. IDL에서 지원되는 반복형 구문들의 종류는 다음과 같습니다. FOR FOREACH WHILE REPEAT FOR 구문은 횟수제어형 즉 반복의 횟수를 미리 정해놓고 반복을 수행하는 방식이며 일반적으로 가장 많이 사용되는 반복형 구문입니다. FOREACH 구문은 배열을 대상으로 그 원소들의 갯수만큼만 반복을 수행하는 방식의 구문이며 자세한 내용은 관련 게시물을 참조하시면 됩니다. 그리고 WHILE 및 REPEAT 구문은 횟수를 미리 정해놓지않고 그 대신 특정한 조건을 걸고 반복을 수행하는 방식으로서 오늘은 이 두 종류의 구문들에 관해서 소개를 해보기로 하겠습니다..

IDL/Programming 2023.02.10

주프로그램과 부프로그램의 구성 및 운용 방식

우리가 IDL로 프로그래밍을 하다보면 프로그램을 하나만 만들어서 사용하는 경우도 있지만 다수의 프로그램들을 함께 사용해야하는 경우도 많습니다. 즉 각자의 역할을 담당하는 별도의 부프로그램들까지도 만들어서 함께 사용하는 방식입니다. 그런데 주프로그램과 부프로그램들을 어떤 방식으로 구성하여 사용하느냐에 있어서는 크게 두가지 방식이 있습니다. 1) 주프로그램과 부프로그램들이 모두 함께 하나의 파일 내에 존재하는 방식 2) 주프로그램과 부프로그램들 각각 개별 프로그램 파일로 존재하는 방식 먼저 1)과 같이 주프로그램과 부프로그램들이 모두 함께 하나의 파일 내에 존재하는 방식부터 봅시다. 간단한 예를 하나 들어보자면 다음과 같습니다. FUNCTION c_to_f, temp result = 1.8*temp + 32..

IDL/Programming 2022.04.01

작업을 위한 디렉토리의 설정 방법들

IDL에서의 작업에 있어서 디렉토리의 설정은 여러가지 측면에서 꽤 중요합니다. 작성한 프로그램 파일들(.pro 파일들)의 저장 또는 프로그램 내에서 읽거나 작성할 파일들의 위치 등을 제어하는데 있어서 반드시 필요하기 때문입니다. 오늘은 IDL에서 디렉토리 설정법에 관한 개요 및 몇가지 중요한 팁들을 소개해보도록 하겠습니다. IDL에서 "현재 디렉토리"는 말 그대로 IDL에서 현재 작업중인 디렉토리를 뜻합니다. 예를 들어 IDL에서 "파일 열기" 버튼을 눌러서 파일 브라우저를 띄우면 "현재 디렉토리" 내에 있는 프로그램 파일들이 우선적으로 보이게 됩니다. 그리고 IDL 프로그램에서 텍스트 또는 그림 파일을 저장하면 "현재 디렉토리" 내에 그 파일이 ..

IDL/Programming 2022.03.07

FILE_INFO 함수의 활용법

IDL에서는 파일들에 대한 접근(File Access)을 위한 여러가지 기능들이 내장되어 있는데, 이러한 기능들은 그 이름이 주로 "FILE_"이라는 문구로 시작합니다. 그 중에서 제가 예전에 FILE_SEARCH 함수에 관해서는 관련 게시물을 통하여 자세히 소개한 바 있습니다. 오늘은 동일 카테고리의 기능들 중 FILE_INFO 함수에 관하여 알아보고자 합니다. 이 함수는 이름 그대로 어떤 파일에 대한 여러가지 정보들을 추출하여 돌려주는 역할을 합니다. 그러면 지금부터 이 FILE_INFO 함수에 관하여 예제와 함께 소개해보도록 하겠습니다. 설명을 위하여 제 PC 내에서 myfiles라는 폴더를 만들고 그 안에 여러 개의 파일들을 넣어보았습니다. 파일 브라우저를 이용하여 이 폴더 내의 파일들의 목록을 ..

IDL/Programming 2022.03.02
728x90