IDL–PYTHON Bridge 기능 살펴보기(2)

이전 포스팅을 통해서 IDL에서 PYTHON을 사용하는 내용에 대해서 확인을 했었습니다. 이번에는 PYTHON에서 IDL을 사용하는 방법을 보여드리겠습니다. 우선 이 과정에 앞서 파이썬에 Bridge를 연동하는 것은 이미 완료하셨다고 생각하고 진행을 하도록 하겠습니다. 이 내용은 이전 포스팅에도 있는 이상우 박사님의 블로그 혹은 IDL Help를 통해서 자세히 확인할 수 있습니다. 모든 준비가 완료되었다면, Bridge 연동을 위해서 우선 IDL Bridge …

Continue reading ‘IDL–PYTHON Bridge 기능 살펴보기(2)’ »

IDL–PYTHON Bridge 기능 살펴보기(1)

IDL 8.5가 출시되면서 IDL에는 IDL–PYTHON Bridge 라는 새로운 기능이 생겼습니다. 이 기능은 IDL과 PYTHON을 서로 불러와 사용할 수 있도록 지원하는 기능입니다. IDL –PYTHON Bridge에 대한 기본적인 내용은 이상우 박사님께서 작성하신 블로그를 참조해주세요. 오늘부터 제가 하고자 하는 IDL–PYTHON Bridge 기능 살펴보기에서는 몇 개의 파트를 거쳐서 IDL과 파이썬에서 각각 구현되어있는 모듈과 함수를 사용해보고, IDL에서 유저가 작성한 클래스를 …

Continue reading ‘IDL–PYTHON Bridge 기능 살펴보기(1)’ »

좌표계를 변환시키는 cv_coord함수

안녕하세요? IDL User 여러분, 오늘은 편리하게 쓸 수 있는 함수를 알아보고자 합니다. cv_coord 라는 이름의 함수인데요. 이 함수의 역할은 좌표계를 변환시키는 일입니다. 이 함수에서 변환할 수 있는 좌표계는 2차원의 직교좌표계와 극좌표계, 3차원의 직교좌표계, 구면좌표계, 원통좌표계 가 있습니다. cv_coord는 함수 자체에 변수를 받는 부분이 없습니다. 따라서 함수를 이용하기 위해서는 필요한 키워드를 넣어주는 것이 중요합니다. cv_coord 함수를 …

Continue reading ‘좌표계를 변환시키는 cv_coord함수’ »

list를 이용한 ascii 파일 읽기

여러분은 IDL에서 ascii파일을 읽을 때 어떤 것을 이용하시나요? 아시는 분들은 아시는 astro 라이브러리의 readcol 프로시저도 있지만, readf로 읽어오시는 분들도 많으실 겁니다. 이번에 쓰는 내용은 readf함수를 이용하는 법을 알려드리고자 합니다. 제목에 list를 이용한 파일 읽기라고 했는데요. 기본적으로 readf를 할 때는 파일의 라인수와 헤더의 크기를 구하고 for문과 readf를 이용하여 파일을 읽었습니다. 이 과정은 파일의 길이를 구하지 않아도 …

Continue reading ‘list를 이용한 ascii 파일 읽기’ »

IDL 8.3 : DICTIONARY

IDL 8.3이 나오면서 생긴 추가 기능 중에 DICTIONARY라는 데이터 타입이 있습니다. 8.0에서 생겼던 HASH와 LIST에 이어서 나오는 새로운 데이터 타입입니다.  DICTIONARY는 특히 HASH와의 비교를 통해서 새로 등장한 이유를 알 수 있습니다. 예전에 쓰던 HASH의 경우 즐겨 사용하기에는 많은 문제들이 있었습니다. 기본적으로 주어지는 STRUCTURE보다 형변환에 있어서 자유로웠던 HASH는, 대신 KEY를 통해서 값을 가져오는 것에 어려움이 있었습니다. …

Continue reading ‘IDL 8.3 : DICTIONARY’ »

ptrarr()의 이용

기본적으로 IDL에서 readf를 할 때 가장 많이 어려워 하시는 점이 배열을 그대로 이용하지 못한다는 점입니다. 배열로 readf를 하면 call by value가 되기 때문에 변수의 입력이 안되서 생기는 이 문제 때문에 많은 분들이 질문을 하시기도 하지요. 이 문제를 해결하는 것은 개별적인 변수를 만들어서 하나하나 만드는 방법이었습니다. 이것에 대한 내용은 제가 이전에 썼던 tip인 Call by value와 Call …

Continue reading ‘ptrarr()의 이용’ »

ISA함수

ISA함수는 값으로 주는 변수가 정의되었는지 알려주는 함수입니다. 추가적으로 옵션을 넣어서 변수가 원하는 타입인지에 대해서도 알려주는 함수입니다. 이 함수의 반환값은 1 혹은 0으로 주어지는 만큼 조건문을 이용하는 데 있어서 유리함을 가지고 있습니다. 이 함수가 어떠한 값을 출력하는지 알아보기 위해서 HELP에 있는 예제들을 이용해보도록 하겠습니다.

정의되지 않은 변수 Foo에 대해서는 0이 반환되는 것을 알 수 있습니다. …

Continue reading ‘ISA함수’ »

AND, OR, NOT, XOR 의 새로운(?)이용

여러분도 아시다시피 AND, OR, NOT, XOR은 조건문에서 자주 쓰게되는 구문들입니다. (NOT은 쓸일이 없지만요.) 하지만 이 구문들이 조건문이 아닌 다른 방식으로도 이용이 된다는 것을 알고 계셨나요? 저도 최근에 알게 된 사실인데, 위 구문들은 BIT단위의 연산에도 사용이 가능한 구문들입니다. 설명에는 byte, integer, unsigned integer,long word, 64-bit long word 형식에 쓰인다고 하네요. 당연하게도 다 정수형 표현이 되는 형식들입니다. 간단하게 …

Continue reading ‘AND, OR, NOT, XOR 의 새로운(?)이용’ »

New Graphics의 Method 이용하기

New Graphics를 이용하는 예전의 포스트를 보셨으면 아시겠지만, New Graphics는 함수를 이용하여, plot등의 작업을 ID로 남겨서 그 ID를 이용하는 것으로 이미 작성된 이미지등을 바꿀 수 있었습니다. Plot같은 경우에도 처음에 모든 설정을 다 못했어도 title을 넣는다던지, Plot라인의 색을 바꾸는 등의 작업이 가능했지요. 이러한 연장선에서 New Graphics의 여러 함수들의 결과는 변수를 변화시켜서 하는 작업뿐만이 아니라, 가지고 있는 Method를 …

Continue reading ‘New Graphics의 Method 이용하기’ »

IDL의 포인터

여러개의 함수나 프로시저를 이용하여 하나의 프로그램을 만들다보면 포인터를 이용하는게 편한 경우들이 생깁니다. C언어 같은 경우에는 변수 앞에 &표시를 이용해서 포인터를 바로 얻을 수 있지만, IDL에서는 그런 일이 발생하지는 않죠. 그래도 IDL에서는 포인터를 이용할 수 있도록 ptr_new라는 함수를 지원하고 있습니다. 다음과 같이 쉽게 이용할 수 있네요.

보시면 A라는 10개 크기의 INT형 배열이 있는 것을 볼 …

Continue reading ‘IDL의 포인터’ »