반경 100메터 여부? – 버퍼 계산 (Buffer) 사용기

며칠전 태블로 2020.1이 발표되었습니다. 이번에도 역시 기대를 저버리지 않고 재미 있는 기능이 많이 추가 되었습니다. 이 링크를 눌러 기능을 확인해보시기 바랍니다. https://www.tableau.com/ko-kr/2020-1-features

제 눈에 띄는 기능 몇 가지를 보면 1) 로그인 기반의 라이선스 관리 2) 버퍼 계산 3) 태블로 퍼블릭 익스텐션 지원 4) 브라우저 재생 버튼 등이 눈에 띄는군요.

2020.1에서 근접성과 거리를 이해하는 것이 강화 되었는데 바로 버퍼 계산입니다. 위치, 거리 및 측정단위의 세 파라미터를 지정하면 버퍼 혹은 경계가 쉽게 만들어집니다.

버퍼의 첫번째 인수는 GEOMETRY라는 것을 볼 수 있는데요, 따라서 위경도 값을 그대로 넣으면 안되고 지리적 지점을 만들어야 합니다.

MAKEPOINT([위도], [경도]) 이런식으로 지점을 정하면 되겠습니다. 태블로의 기본 좌표계는 WGS84좌표계이고 세번째 인수는 SRID로서 ESPG 기준계 고트들 사용하여 좌표계를 지정하는 공간 참조 식별자 입니다. 미지정시는 WGS84로 인식을 하게 되고 경찰 등에서 사용하는 UTM좌표계의 경우 5179를 넣으면 될 것입니다. (추가 확인해서 기술하겠음) [태블로 매뉴얼]

버퍼 함수의 두번째 인수는 거리 숫자이고 세번재 인수는 단위이니 이해하는데 큰 문제 없어보입니다.

실제로 제가 이 기능이 반가왔던 것은 해결이 어려웠던 여러 케이스가 생각나서 입니다. 아마 환경관련 연구소 였던 것으로 기억하는데 상수원으로부터 몇백 미터 이내에 있는 공장을 표시해주기를 원했습니다. 다른 하나는 학교로부터 수백미터 이내에 유해시설이 들어오면 안되는데 그것을 표현하기를 원했습니다. 이 이런 것들이 해결 가능해졌습니다.

실제 구현을 위해서 공장데이터를 한번 찾아보았습니다. 구글링 만으로도 많은 공장 목록이 보이네요. 최근 데이터 개방 및 여러 빅데이터 사업의 효과라 생각됩니다.

맨 아래 공장등록 현황을 클릭해보겠습니다. 경기도 내 공장등록 현황볼 수 있는 화면입니다.

우측 하단의 csv를 다운받아보겠습니다. xls도 문제 없을 듯 합니다. 편의를 위해서 [여기]를 누르면 다운로드 되도록 준비했습니다.

이제 태블로 2020.1에서 불러들이겠습니다. 많은 칼럼들이 로딩됩니다. 저는 위치정보가 있는 파일을 로딩하게 되면 제일 처음 확인하는 것이 주소가 제대로 있는가 하고 위경도가 포함되어 있는가 입니다.

살펴보니 주소는 제대로 들어와 있기는 하지만 시도 혹은 시군구 구분이 안되어 있어서 간단한 계산식으로 시도와 시군구를 만들어 주었습니다. 이 방법이 주소가 있는 경우 거의 필수이다시피 꽤나 유용한데 그 내용에 대해서는 아래 링크를 참고하시기 바랍니다. 이번 경우는 워낙에 데이터가 많아서 특정 시군구에 대한 필터가 필요해서 준비를 합니다.

http://dgtnmd.net/2020/02/28/%ec%a3%bc%ec%86%8c%eb%a7%8c%ec%9c%bc%eb%a1%9c-%ec%8b%9c%eb%8f%84-%ec%8b%9c%ea%b5%b0%ea%b5%ac-%ec%b9%bc%eb%9f%bc-%eb%a7%8c%eb%93%a4%ea%b8%b0/

칼럼들을 점검하여 위경도를 더불클릭한 후 주소를 고려해준 다음 여주시로 필터링한 화면입니다. 태블로를 사용하시는 분들은 그림만 보고 금방 이해가 가실겁니다.

그림을 보시면 중앙에 흐르는 강이 남한강이라고 나오네요. 남한강으로 부터 가깝게 위치한 공장들도 제법 보입니다. 이제 버퍼 함수를 사용하여 범위선(버퍼)를 그렸을 때 강에 닿는 공장이 있는지 살펴보겠습니다.

먼저 버퍼함수의 첫번째 인자는 geometry라고 나오고 있으므로 기존의 위경도를 가지고 먼저 포인트를 만들어 줍니다. 아래 계산식을 참조하시기 바랍니다.

이제 포인트가 준비되었으니 버퍼를 정의합니다.

두번째 인수는 거리이고, 그 다음은 단위인데 “M”으로서 메터를 표시했습니다. 거리는 단순 숫자를 넣어도 되지만 파라미터로 조절해보는 것도 나쁘지 않을것 같아 파라미를 하나 정의하고 마무리 하겠습니다.

M이라는 메터 파라미터를 지정하는 그림입니다.

자 이제 포인트도 정의하고 M이라는 파라미터도 만들어 버퍼를 정의하였습니다. 이것을 표시해야할텐데요, 공장의 위치 또한 표시되어야 하기 때문에 그 점은 그대로 두고 이중축기능으로 지도를 두벌 만들겠습니다. 컨트롤을 누른채로 경도나 위도를 옆으로 끌게 되면 새로운 경도나 위도가 생기게 됩니다.


중앙을 보시면 재도가 동일한 것이 두개 보이고 좌측에 보면 카드셋도 두벌이 된 것을 알 수 있습니다. 이제 한 층은 공장위치표시, 그리고 한 층은 버퍼로 만들어 보겠습니다. 두번째 카드셋에서 주소 대신 버퍼를 올려보겠습니다.

이제 두 레이어를 합치고 다듬으면 되는데요 자세한 설명은 실제 파일을 만져보시기 바랍니다. 혹시 점과 버퍼가 순서가 뒤바뀐 경우에는 행 선반에 있는 위도 요소를 맞바꾸시면 되고요, 버퍼의 색상이 너무 진하면 아래와 같이 불투명도를 낮춰주고 경계선의 색생도 없애시면 됩니다.

이제 파라미터를 움직여보면 주황색으로 표시되는 버퍼의 범위가 늘어나고 줄어드는 것을 볼 수 있습니다.

사용해보면서 이 기능의 한계는 태블로는 어디까지나 시각적 분석 툴이고, GIS엔진은 아니기 때문에 버퍼가 강을 침범하는 지 여부는 눈으로만 판단해야 하는 한계가 있네요. 그래도 그 사실들을 시각적으로 간단하게 표현할 수 있는 기능이 나왔으니 무척유용하게 사용할 듯 합니다.

여기를 클릭하시면 태블로

아래의 태블로 퍼블릭 임베딩 화면을 살펴보시기 바라고요, 우측 하단의 다운로드 버튼을 눌러서 다운로드 받아서 살펴보셔도 됩니다.

https://public.tableau.com/views/17590/sheet0?:display_count=y&publish=yes&:origin=viz_share_link

 861 total views,  5 views today