SMALL

전체 글 734

INDGEN 함수 사용시 주의할 점

아마 IDL 사용자라면 이미 많이들 알고계시겠지만, INDGEN 함수는 0으로 시작하여 1씩 증가하는 정수형 값들로 구성된 배열을 생성하는 역할을 하는 함수입니다. 예를 들어서 다음과 같이 INDGEN(10)이면 0부터 9까지 1씩 증가하는 정수형 값들로 구성된 배열이 생성됩니다. IDL> a = INDGEN(10) IDL> HELP, a A INT = Array[10] IDL> PRINT, a 0 1 2 3 4 5 6 7 8 9 그런데 이 INDGEN 함수를 사용할 때 유의해야할 사항이 있습니다. 상당히 많은 갯수의 정수형 연속값들로 구성된 배열을 생성해야하는 경우입니다. 예를 들어서 5만개의 연속 정수값들로 구성된 배열을 생성하는 경우를 봅시다. IDL> a = INDGEN(50000) IDL> HE..

WHILE 및 REPEAT 구문의 이해

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

IDL/Programming 2023.02.10

대륙 또는 해양의 마스킹(Masking) [2]

지난 회차에 이어서 오늘은 2)에 관한 내용, 즉 지도상에 2차원 데이터를 중첩 표출하면서 대륙 부분에서만 데이터가 보이도록 처리하는 방법을 소개해보겠습니다. 지난 회 게시물에서 잠시 언급했듯이 그 반대의 경우인 1)은 구현 방법이 꽤 간단하지만 2)는 좀 복잡합니다. 1)의 경우는 지도와 2차원 데이터의 중첩 처리를 한 이후에 대륙경계선을 표시하기 위하여 MAPCONTINENTS 함수를 사용할 때 FILL_COLOR 속성을 사용함으로써 대륙 부분을 색상으로 채우는 방식의 처리만 하면 됩니다. 꽤 간단하죠. 그런데 2)의 경우는 그냥 단순하게 생각해보면 MAPCONTINENTS 함수에서 대륙 대신 해양을 색상으로 채우는 기능만 있으면 간단하지않을까하는 생각을 가져볼 수 있습니다. 그렇게만 된다면야 매우 ..

IDL/Mapping 2023.02.06

대륙 또는 해양의 마스킹(Masking) [1]

IDL에서 지도를 표출하고 그 위에 2차원 데이터를 중첩하여 표출하는 방법 및 예제들은 제가 이 블로그를 통하여 여러 차례 소개해드린 바 있습니다(관련 링크). 그런데 오늘 소개하고자하는 내용은 이와 같이 중첩 표출을 하면서 대륙 또는 해양에 해당되는 부분만 보이도록 하는 방법에 관한 것입니다. 예를 들면 지도상에 2차원 데이터를 등위선(Contour)의 형태로 중첩표출을 하되, 왼쪽은 대륙을 가리고 해양 부분만 보이도록 처리하는 경우 또는 반대로 해양을 가리고 대륙 부분만 보이도록 처리한 경우입니다. 물론 등위선 대신 이미지가 될 수도 있을 것입니다. 어쨌든 실제로 이와 같은 표출을 하고싶은 경우가 분명히 있습니다. 그래서 이번 기회에 그 방법을 소개해보고자 합니다. 소개할 순서는 다음과 같습니다. 1..

IDL/Mapping 2023.01.31

IDL에서 표(Table) 그리기(?)

오늘은 조금 특이한 주제를 갖고 얘기를 해보고자 합니다. 글 제목 그대로 IDL에서 표(Table)을 그려보고자 하는데요. 사실 표(Table)라는 것이 우리가 파워포인트나 워드 등과 같은 일반적인 사무용 앱들에서는 당연히 편리하게 그릴 수 있습니다. 그러나 하나의 프로그래밍 언어인 IDL의 경우 비교적 다양한 그래픽 표출 기능들이 포함되어 있음에도 불구하고 표를 그릴 수 있는 기능은 포함되어 있지 않습니다. 따라서 제가 오늘 소개하려는 내용은 그나마 있는 기능들을 나름 활용해서 되도록이면 표와 비스무리한 표출을 시도해보려는 의도입니다. 그렇기 때문에 우리가 다른 앱들에서 편리하게 표를 그렸던 것에 비해서는 다소 번거로운 코딩이 들어갈 수 밖에 없습니다. 다만 우리가 IDL에서 얻은 결과가 2차원적인 데..

IDL/New Graphics 2022.12.27

MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [8]

MESH_OBJ에 관한 연재 게시물 이제 8회차 마지막편까지 왔습니다. 이번 회차에서는 Type 0에 해당되는 Triangulated 유형에 관하여 알아보겠습니다. 이 유형은 XYZ 3차원 공간상에 흩어져 있는 다수의 포인트들 즉 꼭지점(Vertex)들을 적절하게 연결하여 폴리곤을 생성하는 경우에 해당됩니다. 그리고 각 꼭지점의 XYZ 좌표만 존재할 뿐 이 점들이 구체적으로 어떻게 연결될 것인가에 해당되는 연결성(Connectivity)에 대한 사전 정보는 전혀 없는 경우입니다. 따라서 주어진 꼭지점들을 어떻게 “적절하게 연결”할 것인가에 대해서는 별도의 계산이 필요한데 이 때 삼각법(Triangulation)이라는 기법이 적용됩니다. 그러면 예제를 보기 위하여 다음과 같이 12개의 꼭지점들을 가정하고 ..

IDL/New Graphics 2022.12.21
728x90