GetTemporaryFileName() 으로 생성된 파일은 왜 자동으로 지워지지 않는가?

GetTemporaryFileName()은 ENVI 프로그래밍 예제에서 매우 많이 등장하는 메쏘드입니다. 그 이름이 주는 느낌 때문에, 임시파일 이름을 받아오는 기능이라고 생각하고, 임시파일이니까, ENVI를 닫으면 자동으로 지워지는 파일이 될 거라고 예상하기 쉽습니다. 오해입니다. 자동으로 지워지는 파일과 아무런 연관이 없습니다. 이 글의 제목이 질문인데요, 결론부터 말씀드리면, GetTemporaryFileName() 메쏘드는, Temporary Directory 에 쓸 파일의 이름을 자동으로 받아오는 것이지, ENVI가 관리하는 임시 …

Continue reading ‘GetTemporaryFileName() 으로 생성된 파일은 왜 자동으로 지워지지 않는가?’ »

WHERE 함수의 속사정

저는 IDL을 처음 접하시는 분들에게 WHERE를 소개할 때, OK = WHERE(조건문) 으로 소개합니다. 이렇게 하면 배열 중 조건에 부합하는 요소의 위치(WHERE)를 리턴값으로 준다고 말씀 드립니다. 거의 사실이죠. 당장은 느낌도 좋구요, 데이터베이스의 WHERE 문을 쓰는 기분으로 사용할 수 있기 때문에 저는 이렇게 설명을 드리는 방식을 선호했습니다. 다음과 같이 다섯개의 원(circle) 정보 중에 반경이 7보다 큰 원을 …

Continue reading ‘WHERE 함수의 속사정’ »

JULDAY(1, 9, 2017) – JULDAY(4, 16, 2014)+1 eq 1000

Julian Day는 하루에 1씩 증가하는 날짜 체계입니다. 어제의 이시각은 오늘 보다 1이 작고, 내일의 이시각은 오늘보다 1이 큽니다.  이 숫자의 셈이 기원전 4713년 1월 1일 정오를 Julian Day 0으로 정하여 카운트된다고 하지만, 기원전 4713년이란 기준을 기억하는 사람은 별로 없습니다. 거의 없습니다. 매우 무심한 숫자이고, 과학자들 말고는 사용하지도 않는 날짜입니다. 2017년 1월 9일이 Julian Day로 2457763 …

Continue reading ‘JULDAY(1, 9, 2017) – JULDAY(4, 16, 2014)+1 eq 1000’ »

minmax 함수, 그리고 일타이피

배열에서 최대값을 찾는 일은 배열 전체를 한번 훑어야 하는 일입니다. 최소값을 찾는 일도 배열 전체를 한번 훑어야 하는 일입니다. 그러지 않고서는 이 값이 최대값(또는 최소값)이라는 확신을 할 수 없을 테니까요. 여기에 어떤 신비로운 비법은 없습니다. 그런데, 배열에서 최대값과 최소값을 모두 알고자 한다면, 배열 전체를 두 번 훑어야 할까요? 그건 아닙니다. 한번만 스캔하면 최대값과 최소값을 다 …

Continue reading ‘minmax 함수, 그리고 일타이피’ »