IDL/Mapping

IDL에서 지도의 표출 및 활용법에 관하여 [8]

이상우_idl 2015. 3. 26. 19:59
728x90
반응형

이번에는 지도상의 특정 위치에 문자나 기호 등을 삽입하는 방법을 알아보겠습니다. 이 때 “특정 위치”라는 지점의 좌표는 아마도 경도 및 위도의 값이 되는 경우가 대부분일 것입니다. 앞서 [5]에서 한번 소개했던 Lambert Conformal Conic 투영법 기반의 지도를 먼저 그리고 이 지도상에서 서울의 위치에 기호 및 문자를 삽입하는 작업을 예로 들어보겠습니다. 일단 지도를 그리는 과정은 [5]에서 소개했던 과정과 유사합니다. 다만, 한반도 영역을 좀 더 확대하기 위하여 경도 및 위도의 범위를 다음과 같이 경도는 110~140, 위도는 30~50으로 약간 조정해보았습니다.


win = WINDOW(DIMENSIONS=[800, 500])

m = MAP('Lambert Conformal Conic', LIMIT=[30, 110, 50, 140], $

  STANDARD_PAR1=30, STANDARD_PAR2=60, FILL_COLOR='Dodger Blue', $

  ASPECT_RATIO=0, MARGIN=0.05, /CURRENT)

mc = MAPCONTINENTS(FILL_COLOR='Gold', THICK=2)


여기까지는 지도를 그리는 과정입니다. 이제 이 상태에서 기호 및 문자를 삽입하려면, 그 지점의 좌표가 필요합니다. 서울의 경도와 위도는 동경 126.97도, 북위 37.57도로 알려져 있기 때문에 이 값들을 좌표로 사용하면 됩니다. 우선 기호부터 삽입을 해보기 위하여 SYMBOL이라는 내장함수를 사용해보겠습니다. 그 방법은 다음과 같습니다. 그리고 여기까지의 과정에 의하여 지도와 기호를 함께 표출한 결과는 다음 그림과 같습니다.


sym = SYMBOL(126.97, 37.57, 'square', /DATA, $

  SYM_COLOR='black', /SYM_FILLED, SYM_FILL_COLOR='crimson')




여기서 사용된 SYMBOL이라는 내장함수를 사용하는데 있어서는, 삽입 위치의 X 및 Y 좌표 그리고 기호의 형태를 나타내는 문자값 등의 인자들이 기본적으로 들어갑니다. 여기서는 사각형(square) 심볼을 사용하였는데, 그 외에도 원형(circle), 삼각형(triangle), 다이아몬드형(diamond) 등 여러가지 형태의 기호들이 사용 가능하며, 구체적으로 사용 가능한 기호들의 종류는 도움말에서 확인이 가능합니다. 그리고 /DATA 키워드는 여기서 명시된 좌표값들이 데이터 좌표계(여기서는 경도와 위도 기반)를 기반으로 한다는 사실을 명시하기 위하여 사용되었습니다. 그 외에도 심볼의 내부를 색상으로 채우고(/SYM_FILLED), 그 색상은 진홍색으로 설정하였으며(SYM_FILL_COLOR), 심볼 자체의 윤곽선은 검정색으로 설정(SYM_COLOR)하였습니다. 그러면 이번에는 동일한 위치에 ‘Seoul’이라는 문자를 삽입해보겠습니다. 이를 위해서는 TEXT라는 내장함수를 다음과 같은 방법으로 사용하면 됩니다. 그러면 다음 그림과 같이 기호와 텍스트가 함께 표출된 모습을 얻게 됩니다.


tx = TEXT(126.97, 37.57, 'Seoul', /DATA, FONT_STYLE='bold')




TEXT 함수의 경우도 내부적으로 사용되는 필수인자들의 구성은 SYMBOL의 경우와 약간 비슷합니다. 삽입 위치의 X, Y 좌표 그리고 문자값이 기본적으로 들어가고, 기타 부가적인 속성들을 필요에 따라 설정해주면 됩니다. 좌표계 설정을 위하여 /DATA가 사용되었고, 문자의 폰트를 좀 진하게 나타내기 위하여 FONT_STYLE 속성을 ‘bold’로 설정하였습니다. 물론 필요에 따라 폰트명 및 크기 등도 설정이 가능합니다. 그리고 지금은 삽입 문자가 좌측 정렬인 상태로 표시되어 있는데, ALIGNMENT 속성을 사용하여 우측 또는 가운데 정렬로 표시할 수도 있습니다. 그리고 문자 자체의 배경색을 따로 지정하여 뒷 배경의 그림과 색상이 뒤섞이지 않도록 할 수도 있습니다. 예를 들어, 다음과 같이 문자 자체의 배경색을 흰색으로 설정하여 채우는 것도 가능합니다. 앞서 위의 그림을 그리기 위하여 TEXT 함수를 사용했던 내용을 다음과 같은 내용으로 대체하여 실행하면 다음 그림과 같은 결과를 얻게 됩니다.


tx = TEXT(126.97, 37.90, 'Seoul', /DATA, FONT_STYLE='bold', $

  /FILL_BACKGROUND, FILL_COLOR='white', ALIGNMENT=0.5)




여기서는 문자의 배경색상을 흰색으로 채우고, 가운데 정렬로 설정하였습니다. 그리고 위치의 Y좌표인 위도의 값을 약간 조정했는데, 배경이 흰색으로 채워진 부분이 기존의 사각형 기호를 약간 가리기 때문에 좀 더 위로 올리기 위하여 이와 같이 Y좌표의 값을 조정한 것입니다. 오늘은 이와 같이 기호와 문자를 삽입하는 예제를 살펴보았습니다.

반응형