shape파일을 이용한 Mask 방법 문의

게시판 IDL Q&A shape파일을 이용한 Mask 방법 문의

이 게시글은 5개 답변과 3명 참여가 있으며 마지막으로  ChoiYoun에 의해 1 주, 2 일 전에 업데이트 됐습니다.

  • 글쓴이
  • #5644 답변

    chooas
    회원

    안녕하세요.
    IDL을 사용하는 유저입니다.

    다름이 아니라 아래의 홈페이지에서 shape파일을 이용한 시.도 구분을 하여 polygon을 하는 방법을 배웠는데요.
    http://blog.daum.net/swrush/105

    이에 다른 격자화 자료의 시도 경계를 구하고 시도를 구분하여 격자화된 자료에 Masking 하는 방법이 있을까요?
    또는 시도 경계의 위,경도를 구한 후에 해당 시도 경계 내의 위,경도를 알 수 있는 방법이 없을까요??

    구체화된 결과 산출과 시도를 구분하여 결과를 산출하기 위하여 한번 쯤은 다루어 보아야 할 문제라고 생각되어 글을 남기게 되었습니다.

    항상 좋은 글들 잘 보고 있습니다.
    이상입니다.
    감사합니다.

  • #5645 답변

    ChoiYoun
    회원

    저도 말씀하신 시/도를 구분하여 격자화된 자료에 Masking 하는 방법에 대해 고민하다가 다른 프로그램에서 해결하는 방식을 참조하여 시도해본 적이 있습니다. 그러나 저의 실력이 부족하여 개념만 있을 뿐 IDL로 해결하지는 못하였습니다. 개념은 아래와 같습니다.

    1) Polygon으로 시/도 경계 그림을 그린다. 이때, “그림 영역의 크기”는 “격자 자료의 크기”와 동일하다. (시/도에 따른 색상을 다르게, 색상을 채워서)
    2) 그림을 저장하여 IMAGE로 불러서 해당 격자의 색상코드를 이용해 Masking 한다.

    제가 위 개념에서 막혔던 부분은 Polygon으로 시/도 경계 그림을 그릴 때,

    “그림 영역의 크기”와 “격자 자료의 크기”를 동일하게 만드는 방법을 찾지 못하였습니다.

    이에 대해 좋은 혜안이 있으시다면 의견주시면 감사하겠습니다.

  • #5646 답변

    chooas
    회원

    답변 감사합니다.

    저도 비슷한 방법을 생각하기는 해보았습니다.
    다만, 시도 경계를 서로 다른색으로 칠하고 그림을 저장한 후 다시 불러올 때 채워진 위경도 정보를 가져올 수 있는지 궁금합니다.
    저는 시도 구분에 대한 위경도를 얻고 또 다른 격자화된 자료에 구분된 시도 자료에 대한 결과를 얻고 싶다는게 목적입니다.
    저도 실력이 부족하여 현재는 시도에 대한 경계 부분의 위경도 정보만 획득할 수 있는 정도입니다..

    좋은 의견이 있으셔서 알려주시면 감사하겠습니다.

  • #5647 답변

    ChoiYoun
    회원

    또다른 방식은 아래와 같은 방법을 생각해보았습니다.

    1) Shape파일의 경계 위경도를 격자 형태로 변환 (lon., lat.) -> (x, y)
    : Map 함수의 MapForward 매서드와 POLYLINE 키워드를 함께 사용하면 수월할 것 같습니다.

    2) 격자 형태의 경계 정보와 POLYFILLV 함수를 이용하여 시도 구분 Masking
    : POLYFILLV은 경계 내의 격자를 위치(index)를 출력해주는 함수입니다. 상세한 사용방법은 도움말을 참조하시면 될 것 같습니다.

  • #5648 답변

    Sangwoo
    회원

    우선 맨 처음 질문해주신 분의 글을 보면 아래와 같은 링크를 제시하셨는데, 사실 저 링크를 눌러보면 shape 파일의 이용과는 전혀 무관한 게시물로 연결됩니다.

    http://blog.daum.net/swrush/105

    혹시 위의 링크가 아닌 아래와 같은 링크의 게시물을 언급하시려고 했던 것은 아닌지, 아니면 전혀 다른 다른 게시물이었던 것인지 궁금합니다.

    http://blog.daum.net/swrush/454

    원래 언급하고자 하셨던 내용이 위 링크의 게시물이 맞다면, 사실 그 게시물에서 사용된 예제 shape 파일에서는 대한민국의 모든 시/도 경계가 제대로 반영되어 있지는 않습니다. 그냥 본토 및 일부 섬 지역들로만 나눠져있는 것 뿐입니다. 행정구역상으로 정확한 시/도 경계에 대한 자료는 저도 정확히는 모르지만 국토지리원이나 다른 정부기관으로부터 받아야 하는 것으로 알고 있습니다. 정확히 어떤 기관에서 어떤 형태로 제공하는지는 저도 자세히는 모릅니다. 만약 제공된다면 각 행정구역 별 경계선을 구성하는 경도/위도 좌표값들로 구성되어 있지 않을까 짐작은 됩니다.

    어쨌든 이러한 데이터를 확보할 수만 있다면, 표출에 있어서 지도를 먼저 그리고 그 위에 행정구역 경계선들을 중첩하는 것이 가능할 것입니다. 그리고 대한민국 영역을 커버하는 2차원 격자(또는 픽셀) 자료가 있다면, 각 행정구역별로 경계선 내부에 위치한 격자들을 선별하고 이에 따른 후속 처리가 가능할 것입니다. 다만 2차원 데이터를 구성하는 격자들 중에서 특정한 폴리곤의 내부에 있는 것들만 선별하는 작업에 있어서는, 위의 댓글에서 언급된 POLYFILLV라는 IDL 내장함수를 사용하는 방법도 있고 또는 외부 라이브러리인 Coyote 라이브러리에 있는 INSIDE라는 프로그램을 사용하는 방법도 고려해볼만 합니다.

  • #5653 답변

    ChoiYoun
    회원

    개인적으로 관심이 있어서 프로그램을 만들어보았습니다. 우리나라 군/구 단위(229개)를 Masking 하는 프로그램입니다. 격자 크기와 투영법은 임의로 가정하였습니다.

    시동에 필요한 자료는 아래 링크에서 다운로드 받을 수 있습다.
    다운로드(3.1M)

'shape파일을 이용한 Mask 방법 문의'에 답변달기
글쓴이 정보: