OpenStreetMap을 배경으로 사용하기

이 글은 IDL 도움말의 “Image with a Map Projection” 을 서울 중심으로 일부 수정한 것입니다. OpenStreetMap의 staticMapLite API를 사용하면, 지정한 위치에 대한 지도를 그림 파일로 가져올 수 있습니다. 이 그림은 Mercator 투영법으로 된 지도인데, png 파일로 되어 있습니다.  그림을 가져오는 것은 IDLnetURL 기능을 이용하면 아주 간단한 기능입니다. 어려울 게 없죠. 다만, IDL의 그래픽스에서 지도의 배경으로 …

Continue reading ‘OpenStreetMap을 배경으로 사용하기’ »

투영좌표 변환 (TM과 UTM)

TM(Transverse Mercator) 좌표를 변환하다가, 숫자가 계속 안맞는 안타까운 경험을 했습니다. 정말 오랜만에 TM 좌표를 써 본 것인지, 그 사이 우리 법이 바뀐 것을 몰랐습니다.  결국 검색을 하다보니 어이없게도 단 한문장을 제가 그동안 모르고 살았습니다. 측량, 수로업무 및 지적에 관한 법률(2009.12.14)에 따라 TM 투영원점의 가산수치는 600,000/200,000이 적용됩니다. 남북방향의 가산수치(FALSE NORTHING)을 500,000이라고 믿고 있던 저는, 제 기억을 …

Continue reading ‘투영좌표 변환 (TM과 UTM)’ »

콜론 연산자와 인덱스 생성 함수

[0, 1, 2, 3, 4] 이와 같은 배열을 만드는 일은 IDL에서 매우 흔하게 발생하는 일입니다. IDL이 반복문을 쓰기 보다는 배열의 인덱스를 배열로 지정하여 처리하는 쪽을 독려하기 때문에, 그렇습니다. 예를 들면 이런 거죠.

이렇게 반복문을 써서 배열의 요소를 하나 하나 뽑아내기 보다는, 다음과 같이 쓰는게 IDL 스타일입니다.

여기서는 i 변수가 배열이고, x 라는 배열의 …

Continue reading ‘콜론 연산자와 인덱스 생성 함수’ »

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 함수, 그리고 일타이피’ »

11/16 웨비나 안내 및 PAT 소개

HARRIS Geospatial Solutions社에서 계획 중인 웨비나가 있어 안내해드립니다. 날짜는 11월 16일, Mountain Standard Time 기준으로 오전 8시와 11시(우리 시각으로 17일 자정과 새벽 3시…)입니다.  여기까지 읽으시고 ‘아, 뭐야…’하시는 분이 계실 수 있는데요, 참석하지 않더라도 신청만 해놓으시면 차후 녹화분이 제공되기 때문에 크게 부담을 가지지 않으셔도 됩니다. 웨비나의 제목은 “Better Field Management with ENVI Analytics and UAS Data Fusion” …

Continue reading ‘11/16 웨비나 안내 및 PAT 소개’ »

Landsat-8 QueryExtension

최근 배포를 시작한 Sentinel-2 데이터 이전까지(혹은 이와는 무관하게 여전히) 가장 많이 활용된 위성은 Landsat 시리즈가 아닐까 생각합니다. 현재(16년 10월)를 기준으로 아직 운용 중인 것은 SLC(Scan Line Corrector)-off 상태의 7호와 멀쩡한 8호가 있습니다. 9호는 한 아이가 우주 조난을 당한 아버지를 찾아나서게 될 해에 발사될 예정이군요. (출처 : USGS, Landsat Missions)   SLC-off Landsat-7 데이터를 사용하기 위해서는 gap …

Continue reading ‘Landsat-8 QueryExtension’ »

Sentinel-1 영상을 이용한 황강댐 수위 확인

최근 ‘북한의 황강댐 수위가 계속 높게 유지되고 있다’ 라는 뉴스를 보신 적 있으신가요? KBS에서 보도된 내용이며 원문은 아래 링크에서 확인하실 수 있습니다. 2016년 6월 26일 KBS 9시 뉴스 뉴스의 내용을 정리하자면, “황강댐은 북한에 위치한 총저수량이 3억 5천만 톤에 해당하는 대형 댐이다. 군사분계선까지의 거리는 하천길이로 약 46 km 정도인데, 물을 최고수위까지 유지했다가 갑자기 방류를 시작할 경우 …

Continue reading ‘Sentinel-1 영상을 이용한 황강댐 수위 확인’ »