RANDOMU 함수의 알고리즘 변경 (8.2버전 이후)

RandomU 함수에서 Seed 값을 상수로 지정할 경우, 항상 같은 값이 나옵니다.

원하는 것이 매회 다른 무작위 수를 발생하는 것이라면, 이렇게 작성하면 안됩니다. 이렇게 상수로 지정하는 이유는, 주로 교육적인 목적에서, 또는 어떤 특별한 이유로 “재현”을 하기 위한 조치입니다. 난수 생성의 본래의 목적인 매번 다른 무작위 수를 생성하고자 한다면, SEED 값을 변수로 지정해야 합니다. 이 변수를, …

Continue reading ‘RANDOMU 함수의 알고리즘 변경 (8.2버전 이후)’ »

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 ‘콜론 연산자와 인덱스 생성 함수’ »