IDL/New Graphics

IDL 9.1의 MAPCONTINENTS 함수

이상우_idl 2024. 10. 10. 10:37
728x90
반응형

제가 바로 이전에 올렸던 게시물에서 이미 언급했듯이 IDL 9.1 버전이 최근에 출시되었고 이와 관련된 내용을 그 게시물에서 정리하여 소개한 바 있습니다. 그런데 여기서 제가 미처 언급하지 못하고 넘어갔던 내용들 중 주목할만한 사항이 있어서 여기서 따로 소개해보고자 합니다. 바로 MAPCONTINENTS 함수에 관한 것인데요. 이 함수는 NG 체계에서 지도를 표출할 때 대륙, 해안, 강, 호수 등의 경계선을 표시하는 기능을 담당합니다. 그리고 이러한 경계선들은 IDL이 내장하고 있는 Shapefile 형태의 데이터를 기반으로 하는데요. 이번 IDL 9.1에서는 MAPCONTINENTS 함수에서 사용되는 Shapefile 형태의 기반 데이터가 최신의 데이터로 갱신되었다고 합니다. 또한 기본적으로 표시되는 경계선의 디테일이 좀 더 자세해진 것도 눈에 띕니다. 그래서 이와 관련된 테스트를 위하여 다음과 같이 한반도 및 주변 지역을 나타내는 지도를 표출하는 예제 프로그램을 IDL 9.1 및 IDL 9.0에서 실행하여 그 차이를 확인해보았습니다.

 

win = WINDOW(DIMENSIONS=[600, 600], /NO_TOOLBAR)
limit = [15, 110, 55, 150]
m = MAP('Geographic', LIMIT=limit, $
  FILL_COLOR='light blue', LABEL_POSITION=0, $
  FONT_SIZE=10, MARGIN=0.1, CLIP=0, /CURRENT)
mc = MAPCONTINENTS(FILL_COLOR='gold')
m.MapGrid.LINESTYLE = 1
m.MapGrid.HORIZON_LINESTYLE = 0

 

즉 이러한 내용인데 여기서는 일단 MAPCONTINENTS 함수를 사용할 때 색상만 명시하였습니다. 즉 /HIRES 키워드를 따로 사용하지 않고 그냥 디폴트 디테일만으로 각종 경계선들을 표시하게 한 것입니다. 위의 내용을 IDL 9.0 및 IDL 9.1에서 각각 실행하여 얻은 결과들을 비교해보면 다음과 같습니다.

 

여기서 상단은 IDL 9.0에서의 실행 결과이고 하단은 IDL 9.1에서의 실행 결과입니다. 이와 같이 MAPCONTINENTS 함수를 사용하면서 /HIRES 키워드를 굳이 사용하지 않아도 기본적으로 이 정도의 디테일을 얻을 수 있습니다. 통상적으로 경위도 범위가 넓은 지도를 표시하는 경우에는 MAPCONTINENTS 함수를 사용하면서 /HIRES 키워드를 함께 사용하는 것은 권장되지 않습니다. 왜냐하면 넓은 영역에 걸쳐 경계선들을 고해상도로 자세하게 구현해야 하므로 그림 표출에 시간이 꽤 오래 걸리기 때문입니다. 하지만 그렇다고 /HIRES 키워드를 쓰지 않을 경우에는 구현 속도는 빠르지만 표출되는 지도 그림에서 나타나는 저해상도의 경계선들은 그 디테일에 있어서 아쉬움이 있었던 것도 사실입니다. 하지만 이번 IDL 9.1부터는 NG 체계에서 경위도 범위가 넓은 지도를 표출하는데 있어서 MAPCONTINENTS 함수를 디폴트 설정으로(/HIRES 키워드를 사용하지 않고) 사용해도 이전에 비해서는 더 나아진 경계선 디테일의 지도를 빠른 속도로 표출할 수 있게 되었다고 보면 됩니다.

 

물론 경위도 범위가 비교적 좁은 지도를 표출하면서 디테일이 더 높은 고해상도의 경계선들을 표시하기 위해서는 /HIRES 키워드를 사용하거나 아니면 외부에서 가져온 별도의 Shapefile을 사용하는 방법 등이 여전히 필요합니다. 어쨌든 이번 IDL 9.1에서는 MAPCONTINENTS 함수와 관련하여 이러한 변동사항도 있었음을 염두에 두시면 좋을 것 같습니다.

 

 

이 글이 도움이 되었다면 게시물에 대하여 공감 버튼(하트 모양) 클릭 및 블로그 구독도 해주시면 더 큰 힘이 됩니다. 감사합니다.

반응형