SMALL

IDL/Math 64

INTERPOL 함수를 이용한 1차원 내삽(1-d Interpolation)

내삽 또는 보간이라고 부르는 Interpolation이라는 기법에 대해서는 아마 많이들 알고 계시리라 생각합니다. 공간 또는 시간적인 분포를 하는 데이터가 주어진 상태에서, 원래 데이터 값이 존재하지 않던 특정한 위치에 대한 값을 계산하여 추정하는 기법이라고 할 수 있습니다. 특히 공간 분포의 관점에서 본다면 원론적으로는 1차원, 2차원, 3차원 등 모든 차원에 대하여 원리 자체는 동일하다고 볼 수 있습니다. 사실 2차원 데이터를 기반으로 한 내삽 기법에 관해서는 제가 예전에 관련 게시물을 작성하여 올린 바 있습니다. 오늘은 가장 기본이 된다고 볼 수 있는 1차원 데이터에 대한 내삽 기법에 관하여 관련 예제와 함께 소개해보기로 하겠습니다. IDL에서 1차원 내삽 기법에 해당되는 기능 함수는 바로 INTE..

IDL/Math 2021.07.26

MEDIAN 함수에 의한 중간값 산출에 관한 유의사항

IDL의 MEDIAN 함수는 중간값(Median Value)을 산출하는 역할을 하는 내장함수입니다. 즉 대상 배열이 있을 때 그 배열 값들을 크기 순서로 오름차순 또는 내림차순으로 나열했을 때 딱 가운데 순위에 해당되는 값을 산출하는 역할을 합니다. 예를 들면 다음과 같습니다. IDL> data = [68, 45, 77, 89, 62] IDL> PRINT, MEDIAN(data) 68.0000 이와 같이 5개의 값들로 구성된 배열 data에 대하여 MEDIAN 함수를 적용하면, 배열 내 5개의 값들 중 크기 순서상으로 정확히 중간 순위인 3위에 해당되는 68이란 값을 결과로 얻게 됩니다. 이와 같이 배열의 원소값 갯수가 홀수일 경우에는 중간 순위가 정확히 정수값으로 떨어집니다. 즉 갯수가 7개라면 4위,..

IDL/Math 2021.06.18

GAUSS2DFIT 함수를 이용한 2차원 Gaussian 함수 근사

얼마전에 GAUSSFIT 함수를 사용하여 Gaussian 근사를 하는 방법을 소개하는 게시물을 올린 바 있는데요. 오늘은 그 2차원 버전에 해당되는 GAUSS2DFIT 함수를 사용하여 2차원 Gaussian 근사를 하는 방법을 소개해보기로 하겠습니다. 즉 2차원 데이터가 나타내는 패턴을 2차원 Gaussian 함수에 맞춰서 근사하는데 있어서 GAUSS2DFIT 함수를 사용하는 방법이 될텐데요. IDL 도움말에서 GAUSS2DFIT 함수에 관한 내용을 보면 그 근거가 되는 수식에 관하여 다음과 같이 자세히 소개되어 있습니다. 즉 2차원 타원형 Gaussian 수식이라고 볼 수 있는데요. 2차원적인 패턴을 타원의 형태로 근사하고 그 타원의 장반경, 단반경, 중심점, 기울기 등에 해당되는 인자들을 근사에 의하..

IDL/Math 2021.01.05

GAUSSFIT 함수를 이용한 Gaussian 함수 근사

오늘은 IDL의 GAUSSFIT 함수를 이용하여 Gaussian 함수 근사를 수행하는 방법에 관하여 소개해보기로 하겠습니다. Gaussian 함수는 그 형태가 마치 종의 모양(Bell Shape)을 띄며, 기초통계에서 등장하는 정규분포함수 역시 이러한 형태를 띄는 것으로 잘 알려져 있습니다. 원래 이 함수의 일반적인 수식은 다음과 같습니다. 이 수식에서는 그 형태를 결정짓는 인자들이 a, b, c 세 개입니다. 그런데 IDL의 GAUSSFIT 함수에서는 이러한 3-term Gaussian 함수에 대한 근사 뿐만 아니라, 인자들이 더 많은 케이스들(4, 5, 6-term)에 대한 근사도 가능합니다. 즉 다음과 같이 기본적으로는 Gaussian의 형태를 가지면서 베이스라인의 형태가 다양한 일반적인 케이스들까..

IDL/Math 2020.12.28

구면상의 지점 분포 데이터에 대한 격자화 및 유의사항

오늘은 글로벌 맵(Global Map) 즉 세계 전체 지도 상에서 분포하는 지점별 데이터들을 규칙 격자 데이터로 변환하는 작업에 대하여 소개하고 이와 관련된 유의사항에 관해서도 함께 언급해보고자 합니다. 사실 불규칙하게 지점별로 분포하는 데이터를 규칙 격자 데이터로 변환하는 방법에 관해서는 제가 이 블로그에서 여러 차례 관련 게시물들을 통하여 소개한 바 있습니다. 이 게시물들에서는 격자화를 위한 내삽 연산을 담당하는 GRIDDATA, KRIG2D, SPH_SCAT 등의 함수들의 사용법 및 관련 예제들이 상세히 설명되어 있습니다. 그런데 이 게시물들에서 주로 예제로 사용되었던 지점 분포 데이터들의 경우 그 지점들이 주로 한반도 및 그 주변 영역에 제한되었습니다. 아무래도 국내 사용자들 입장에서는 그런 데이..

IDL/Math 2020.12.18

NaN, Infinity와 FINITE 함수

우리가 데이터를 다루다보면 숫자값들 중에 실질적으로 아무 의미가 없는 값들이 나오는 경우가 있습니다. 바로 NaN 값과 무한대(Infinity) 값입니다. 특히 숫자값들로 구성된 배열의 형태로 데이터를 다룰 때 그 배열 내에 군데군데 이러한 무의미한 값들이 낑겨들어가 있는 경우는 흔히 있는 일입니다. 예를 들어서 10개의 실수값들로 구성된 배열 x와 y가 있는데, 배열 y의 값들 중 일부가 이러한 무의미한 값들인 경우를 가정해봅시다. x = [0:90:10.] y = [3.7, 6.2, SQRT(-4.1), 8.3, 5.5, 4.6, 6.8/0, ALOG10(-3.2), 7.1, 7.8] HELP, x, y PRINT, y 여기서 배열 y의 값들을 잘 보면 -4.1의 제곱근, 6.8을 0으로 나눈 값, ..

IDL/Math 2020.08.10

IDL에서 기초 통계량의 산출 및 유의사항 (한장강의 A/S)

제가 일하는 (주)에스이랩에서는 정기적으로 한장강의라는 것을 PDF 파일로 만들어서 발송합니다. IDL, ENVI, SARscape 등과 같은 Harris Geospatial의 제품들에 관한 사용법이나 팁 등을 한 장(두 페이지) 분량으로 담아서 등록된 고객들에게 이메일로 발송하는 서비스입니다. 그 중에서 최근에 발송되었던 "IDL에서 기초통계를 해봅시다"라는 제목의 한장강의가 있었습니다. 이 블로그에 방문하시는 분들 중에서 이 한장강의를 메일로 수신하신 분들도 있겠지만 그렇지 않은 분들도 있을 것 같습니다. 그래서 제가 여기에도 첨부를 하겠습니다. 이 한장강의의 내용은 제가 작성한 것입니다. 사실 IDL을 많이 사용해오신 분들이라면 대부분 아실만한 내용이긴 합니다. 그런데 제가 이 한장강의를 작성하면서..

IDL/Math 2020.06.24

Kriging 기법의 이용 방법

Kriging 기법은 불규칙한 분포를 하는 데이터들을 규칙적인 격자 데이터로 변환하는데 있어서 자주 사용되는 알고리즘입니다. 불규칙 분포 데이터를 규칙 격자 데이터로 변환하는 방법에 관해서는 제가 예전에 이 블로그에서 "불규칙 분포 데이터를 규칙 격자화된 데이터로 만들기"라는 제목으로 3회에 걸쳐 올렸던 게시물들(1, 2, 3)에서도 소개했던 바 있습니다. 다만 이 게시물들에서는 GRIDDATA 함수를 위주로 하여 이 함수 내에서 지원되는 다양한 내삽 기법들을 조금씩 소개하였고, 그 중 하나로서 Kriging 기법의 적용 방법에 관하여 매우 간단하게 소개를 했었습니다. 오늘은 IDL에서 Kriging 기법을 사용할 수 있도록 해주는 전용 내장함수인 KRIG2D 함수의 사용법을 위주로 하여 조금만 더 심층..

IDL/Math 2020.06.01
728x90