반응형

IDL/Data Type & Format 35

JSON 파일의 읽기 및 처리 (Hash within List)

지난 회차에서는 리스트 내 리스트(List within List)의 형태로 데이터가 수록된 JSON 파일을 읽고 처리하는 방법 및 예제를 소개하였습니다. 오늘은 해쉬 내 리스트(Hash within List)의 형태로 데이터가 수록된 JSON 파일을 읽고 처리하는 방법에 관하여 예제와 함께 알아보겠습니다. 리스트 내 해쉬 (Hash within List) 지난 회 게시물에서는 해쉬 내 리스트의 형태로 데이터가 수록된 JSON 파일의 일부를 제시한 바 있습니다. 그 모습을 다시 보면 다음과 같습니다. [{"time-tag": "1749-01", "ssn": 96.7}, {"time-tag": "1749-02", "ssn": 104.3}, {"time-tag": "1749-03", "ssn": 1..

JSON 파일의 읽기 및 처리 (List within List)

IDL에서 JSON 형식의 파일을 읽는 방법에 관해서는 꽤 오래전에 관련 게시물을 올린 바 있습니다. 일반적으로 JSON 형식으로 배포되는 파일들은 내부에 많은 양의 데이터를 담고 있는 경우가 많으며, 그 데이터를 읽어서 배열의 형태로 가져오는 것이 최우선적인 과제가 됩니다. 그래야 실제로 처리 및 표출 등의 작업으로 이어질 수 있기 때문입니다. 앞서 언급한 과거의 관련 게시물에서도 언급을 한 바 있지만, 실제로 배포되는 JSON 파일들의 내용을 잘 보면 내부적으로 포함된 데이터의 형태가 리스트(List)인 경우 또는 해쉬(Hash)인 경우로 나눠집니다. 실제로 배포되는 JSON 파일들 중 한 파일의 모습을 일부만 살펴보면 다음과 같습니다. [["time_tag","dst"],["2024-02-14 08..

클래스 기반 문법에 의한 변수 및 배열 처리 [3]

IDL에서 변수 또는 배열을 일종의 클래스(Class) 기반의 문법으로 처리하는 방법에 관하여 소개하고 있습니다. 지난 회에 이어서 오늘은 IDL_String 클래스에 관하여 알아보겠습니다. 이 클래스에 대하여 지원되는 여러가지 메서드(Method)들 중에서 주목해볼만한 몇가지만 골라서 예제와 함께 살펴보고자 합니다. * 참고로 오늘 소개될 내용은 IDL 도움말에서 Routines (by Topic) -> Variable Functions and Attributes 섹션의 내용을 바탕으로 합니다. 그리고 이 내용은 해당 웹페이지를 통해서도 볼 수 있습니다. CharAt 메서드는 대상 문자열에 대하여 특정한 위치의 문자를 추출하는 역할을 합니다. 위치는 인덱..

클래스 기반 문법에 의한 변수 및 배열 처리 [2]

IDL에서 변수 또는 배열을 일종의 클래스(Class) 기반의 문법으로 처리하는 방법에 관하여 소개하고 있습니다. 지난 회에 이어서 오늘은 IDL_Variable 클래스에 관하여 알아보겠습니다. 이 클래스에 대하여 지원되는 여러가지 메서드(Method)들 중에서 주목해볼만한 몇가지만 골라서 예제와 함께 살펴보고자 합니다. * 참고로 오늘 소개될 내용은 IDL 도움말에서 Routines (by Topic) -> Variable Functions and Attributes 섹션의 내용을 바탕으로 합니다. 그리고 이 내용은 해당 웹페이지를 통해서도 볼 수 있습니다. 이 메서드는 대상 데이터를 기준값과 비교하는 역할을 하는데, 정확히 말하면 크다(GT), 똑같다(EQ), 작다(LT)..

클래스 기반 문법에 의한 변수 및 배열 처리 [1]

오늘은 IDL에서 변수 또는 배열을 일종의 클래스(Class) 기반의 문법으로 처리하는 개념에 관하여 간략하게 살펴보고자 합니다. 이러한 개념은 IDL 8.4 버전에서부터 도입되기 시작하였습니다. 이것은 단일값 변수 및 배열과 같은 항목 자체를 마치 하나의 객체(Object)처럼 취급하면서 그것에 대한 다양한 속성(Attribute)들의 확인 또는 메서드(Method) 형태의 명령을 적용하여 여러가지 처리를 할 수 있도록 해주는 개념으로 이해하면 됩니다. 물론 이러한 원론적인 설명만으로는 좀 부족할 것 같고 관련 예제들을 통해서 그 개념을 이해하는 것이 더 좋을 것 같습니다. 일단 다음과 같이 단일 정수형 값을 포함하는 변수를 정의합니다. IDL> var = 47 이러한 변수 var에 대하여 몇가지 속성..

ASDF 형식 파일의 생성 및 읽기

ASDF(Advanced Scientific Data Format)는 주로 천문학 분야에서 이미지 및 데이터의 교환을 위하여 많이 사용되어왔던 FITS 표준을 대체하는 역할로서 최근들어 많이 사용되고 있는 데이터 형식입니다. 제임스웹 우주망원경(James Webb Space Telescope)의 데이터 처리 파이프라인에서도 사용되고 있기도 합니다. 따라서 이러한 형식의 데이터 파일을 생성하거나 읽는 기능을 여러 프로그래밍 언어들에서 이미 지원하고 있는데, IDL의 경우도 8.9 버전부터 ASDF 형식의 파일 생성 및 읽기 기능을 지원하기 시작하였습니다. 얼마전에 IDL 8.9의 출시에 관한 게시물을 통해서도 간략하게 언급을 한 바 있는데요. 오늘은 IDL에서 ASDF 파일을 생성하고 읽는 방법에 관하여 ..

SER 포맷의 파일 읽기

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

문자->숫자 변환 및 유의사항

우리가 작업을 하다보면 값의 자료형(Data Type)을 변환해야 하는 경우들이 종종 있습니다. 오늘은 그 중에서도 문자를 숫자로 변환하는 경우를 보고자 합니다. 특히 겉으로 보기엔 숫자이긴 하지만 실제로는 문자형으로 존재하는 값을 숫자로 변환하는 경우입니다. 예를 들면 다음과 같습니다. a = '37' b = FIX(a) HELP, b PRINT, a 이와 같이 a는 '37'이라는 문자형 값인데 FIX 함수를 사용하여 정수형 값으로 변환하는 경우입니다. 이 과정을 IDL 커맨드 입력창에서 실행해보면 결과는 다음과 같습니다. IDL> a = '37' IDL> b = FIX(a) IDL> HELP, b B INT = 37 IDL> PRINT, b 37 이와 같이 37이라는 정수형 값으로 변환된 것을 알 수..

IDL의 폰트 체계 및 활용 [3] Device Font

IDL에서 그래픽 표출 작업을 하면서 그림과 함께 문자들을 표시하는 경우가 상당히 많습니다. 주로 알파벳, 숫자 및 각종 기호들을 표시하게 되는데요. 이 때 적용 가능한 폰트(Font)들의 종류도 꽤 많습니다. IDL에서 지원되는 폰트들의 체계를 보면 크게 다음과 같은 3종의 카테고리들로 나눠집니다. 1) 허쉬 벡터 폰트 (Hershey Vector Font) 2) 트루타입 폰트 (True Type Font) 3) 디바이스 폰트 (Device Font) 그래서 각 카테고리에 대하여 순차적으로 소개를 하고 있는데, 허쉬 벡터 폰트 및 트루타입 폰트 두 종류에 관해서는 관련 게시물을 이미 올린 바 있습니다. 그런데 관련 작업을 계속 하다보니 디바이스 폰트에 관한 소개도 바로 가능하게 준비가 되었습니다. 그래..

IDL의 폰트 체계 및 활용 [2] True Type Font

IDL에서 그래픽 표출 작업을 하면서 그림과 함께 문자들을 표시하는 경우가 상당히 많습니다. 주로 알파벳, 숫자 및 각종 기호들을 표시하게 되는데요. 이 때 적용 가능한 폰트(Font)들의 종류도 꽤 많습니다. IDL에서 지원되는 폰트들의 체계를 보면 크게 다음과 같은 3종의 카테고리들로 나눠집니다. 1) 허쉬 벡터 폰트 (Hershey Vector Font) 2) 트루타입 폰트 (True Type Font) 3) 디바이스 폰트 (Device Font) 그래서 각 카테고리에 대하여 순차적으로 소개를 해보고자 하는 포부를 갖고 관련 게시물들을 올려볼까 합니다. 다만 이번 기회에는 허쉬 벡터 폰트 및 트루타입 폰트 두 종류에 관하여 주로 소개를 하고, 디바이스 폰트는 일단 보류했다가 좀 더 나중에 기회가 되..