중부원점좌표계(5174)와 tableau makepoint 함수

디노입니다. 최근 버스 시스템 관련 프로젝트를 하고 있습니다.

정류장 좌표를 받았더니 38.y, 127,x로 시작하는 눈에 익은 WGS84가 아니었고 아래와 같은 식이었습니다.

전달받은 경기도 버스정류장 정보

중부원점좌표계 ESPG 5174와TABLEAU MAKEPOINT

한참을 헤매다가 최근에 알게 된 전문가에게 자문을 구하니 경험상 20만, 50만정도의 값을 가지는 TM관련 좌표계로 보인다 했고, 확인해보니 중부원점좌표계라고 하더군요. 한국의 경우 적용되는 ESPG 좌표계와 SRID는 잘 정리되어 있으니 다음 링크를 참조하시고요 (http://www.gisdeveloper.co.kr/?p=8942)

한편, TABLEAU MAKEPOINT함수는 다음과 같은 문법을 가지죠. MAKEPOINT(X, Y) 혹은MAKEPOINT(X, Y, SRID)의 문법을 가집니다. SRID는 ESPG기준계 코드를 사용해서 좌표계를 지정하는 공간 참조 식별자인데 한국에서 넣어볼만한 SRID는 10여개 정도되니 주위에 전문가 없이 업무를 해야 하는 경우 링크를 참조하여 이것 저것 넣어볼 수는 있겠습니다.

문제는 중부원점좌표계의 경우 ESPG의 SRID 5174를 가진다고 하는데 이렇게 넣어 변환을 해보았더니 거의 비슷한 위치에 표시되기는 하나 정확하게 제대로 된 점에 찍히지 않았습니다.

5174좌표계라는 것을 알고 MAKEPOINT함수를 써서 포인트로 만든 다음 지도에 표시한 결과

이유를 물어보니 MAKEPOINT의 함수의 좌표계 변화용 타원체가 달라서 생기는 문제가 아닐까 하는 답변이었습니다. 오래된 프로젝트 라이브러리를 사용하는 경우 발생한다고 하고 5174는 bessel 타원체라서 생기는 문제가 아닐까 하더군요. 약 300미터 정도 우하단으로 이격이 생기는 것을 볼 수 있습니다.

한편 전문가가 변환하여 준 좌표는 아래 그림 처럼 제대로 된 자리에 찍히고 있었습니다.

X, Y를 QGIS를 가지고 WGS84로 변환하여 받은 점을 표시한 결과물

다른 경로를 통해 입수한 정류장 좌표도 MAKEPOINT를 써서 표시를 해보니 동일한 결과를 얻을 수 있었습니다.

MAKEPOINT 5174롤 써서 변환한 정류장의 위치와 실제 존재하는 위치 (필자의 집 앞 정류장)

결론

  • 2만, 5만대의 좌표는 중부원점좌표계일 가능성이 높다
  • 중부원점좌표계의 ESPG SRID는 5174이다.
  • 태블로에는 좌표계 변환을 위한 MAKEPOINT라는 함수가 준비되어 있고, 세번째 인자가 없으면 WGS84, 있는 경우에는 SRID를 넣어주면 그 좌표계가 WGS84로 잘 변환되지만
  • 5174의 경우 300미터 정도 우하단으로 옮겨서 표시된다.
  • 그러므로, 5174의 경우 MAKEPOINT를 사용하면 오류가 있고 QGIS를 통해서 변환한 후 사용하자

참고

위 내용은 21/09/26현재의 상황이므로 태블로에서 MAKEPOINT 5174 변환함수를 수정하면 제대로 돌아갈 수도 있으니 참고만 하시기 바랍니다. 결과적으로 이 경우 태블로의 내장 함수를 사용하지 못하고 QGIS로 좌표 변환을 해야 하는데 이에 대해서는 별도 글을 작성하겠습니다.

 95 total views

데이터 시각화용 맵 유형 소개 사이트

링크 바로가기

데이터의 시각적 표현을 위한 다양한 맵의 유형을 소개 하고 있는 사이트입니다. 태블로를 이용해서 가능한 것도 있고 불가능한 것도 보입니다만 다양한 유형을 소개해 놓고 있습니다. 요약 이미지로 맛만 보여드리고요, 필요한 분들은 위 링크를 클릭해서 방문해 보시기 바랍니다.

저는 많은 업무를 태블로로 하고 있고, 태블로에서 안되는 것이 어떤 것이 있나 하는 시각으로 살펴보고 있는데요. 다소 완성도의 차이는 있지만 중간쯤에 있는 Flow Map이런것은 좀 구현하기 쉽지 않아 보입니다. 사용을 원하는 사람의 입장에서는 먼가 움직임이 일어나고 있다는 역동적인 느낌이 확 와닿을 건데 실은 움직임을 표현할 만한 데이터가 없을 것이므로 더 구현이 어렵지 않을까 생각해봤습니다.

한편 태블로는 최근 태블로 퍼블릭 웹페이지에서도 page기능을 가능하도록 업데이트 했기 때문에 어느정도의 움직임을 태블로 퍼블릭에서도 표현 가능하게 되었습니다.

1~13까지의 위치를 사람의 움직임을 상상하면서 표현한 것인데요, 데스크탑에서는 상당히 부드럽게 움직이는데 비해 퍼블릭 사이트에서의 페이지 기능의 움직임은 약간의 제한이 있어 보이고 다소 불편해보이네요. 좀 더 방법을 찾게 되면 공개하도록 하겠습니다.

 569 total views,  2 views today

BI와 OLAP 뭐가 다른가요?

디노입니다. 고객을 만나다 보면 이런 질문 흔히 받습니다.

태블로는 시각화 툴인데 BI툴인가요? OLAP이랑 뭐가 달라요?
사용하던 OLAP있는데 그거 업그레이드 해서 사용하면 되는거 아네요?

개인적인 느낌으로는 OLAP이라는 단어를 언급 하시는 고객분을 만나면 강산도 변한다는 10년도 더 된 예전에 데이터 분석을 접했고 그 개념이 머릿속에 고정되어 있겠구나 하는 생각이 들면서 어떻게 하면 차이와 장단점을 잘 설명드릴 수 있을까 긴장을 좀 하게 되는데 그렇다고 이 둘간의 차이를 설명하는게 쉬운 일도 아니서 한참 미룬 끝에 함 정리를 해봅니다.

BI (Business Intelligence)

  • 데이터를 통합/분석하여 기업(Business)활동에 연관된 의사결정(Intelligence)을 돕는 프로세스 
  • 산재된 데이터를 수집 정리하여 사용자가 필요한 정보를 정확한 시간에 제공가능한 환경 : 가트너
  • 데이터마이닝/레포팅/성과 측정 및 벤치마킹, 설명적 분석, 통계 분석, 데이터 시각화, 데이터 준비

비즈니스 의사결정 활동을 돕는 프로세스라.. 상당히 큰 개념이죠. 정보계 전체로 이해되거나 혹은 정보계 중에서 최종 사용자단에 보여지는 시스템등으로 상황에 따라 조금씩 다르게 이해되기도 합니다. BI의 정확한 개념설명만으로도 책을 한 권 쓸 수 있을겁니다만 이 정도만 머릿속에 넣고요.. 그럼 OLAP는 무엇일까요?

OLAP (On-line Analytical Processing)

  • On-Line Analytical Processing : 온라인 상에서 데이터를 분석처리하는 것 = 분석계
    온라인이라는 단어는 요즘 시대에는 당연한 업무 환경으로 볼 수 있고 분석에 목적
  • 최종 사용자가 정보에 직접 접근해 대화식으로 분석하고 의사결정에 활용하는 과정
  • 다만, 예전부터 BI를 해오던 현장에서는 보고서의 관점에서 정형/비정형 중
    자유롭게 요소들을 끌어 놓아 결과를 만드는 비정형 보고서를 OLAP으로 많이 인식

    (최근에도 OLAP이라는 단어를 사용하는 분들은 대부분 이 개념을 쓰는 것으로 보임)
  • 데이터 표현 형태가 주로 표 형태이며 그래프나 차트는 보조 수단으로 활용되어 제한적인 기능을 제공하는 경우가 많음
  • 반대 개념으로는 OLTP : Online Transaction Processing : 실시간 거래 처리 시스템 (기간계, 계정계)

BI/OLAP 의 관계/비교

  • 최근 BI 솔루션들은 메모리상에 필요한 데이터를 올리고 이를 동작을 통해 표를 포함한 다양한 시각적 분석으로 통해 다양한 관점으로 정보를 분석함
  • 분석의 표현 방식 중 하나로 정형 보고서 혹은 대시보드가 있고
    만드는 과정에서 자유롭게 요소들을 끌어 놓는 방식으로 보고서를 작성
  • 이 외에도 필요에 따라 요소들을 끌어 놓아 보고서를 만들 수 있는 반정형 보고서 혹은 자유 보고서의 니즈는 여전히 존재하는데 이 부분이 흔히들 OLAP으로 인식하는 그 부분이고 최신 BI툴 들은 당연히 이 부분을 포함함

요약

크게 보면 기업 혹은 조직의 데이터 활용 및 분서을 통한 목적 달성이라는 동일한 목표를 가지고 있는 유사한 개념으로 볼 수도 있으나 최근 업계에는 BI라는 표현을 훨씬 많이 쓰고 있고 개념적으로도 OLAP을 보고서 작성 방식으로 이해하고 보면 BI가 보다 큰 개념으로 이해해도 무방함. (태블로가 이해하는 BI의 개념 및 비즈니스 플랫폼 구성)

사용자의 추가적인 분석 및 자유도를 담보하기 위한 비정형 분석을 위해 예전 OLAP 의 데이터 분석/보고서 작성 방식이 여전히 유용하나 이는 태블로 등으로 대표되는 최신 BI솔루션에 당연히 녹아 있고 활용하고 있는 기능임

이는 솔루션의 개념과 목적이 고도화되지 않았던 시기에 출시된 구형 OLAP 제품을 업그레이드 한다고 하여 당연히 달성할 수 있는 부분은 아니고 최신 BI 솔루션등과 OLAP제품의 업그레이드 버젼 중 어느것이 과제의 목적을 달성하는데 유리한 지를 객관적으로 비교해야할 것 임.

BI 혹은 정보계가 어떤 지향을 가져야 하는지는 다른 글에서 검토해보기로 하겠습니다.

전반적인 시장흐름을 보려면 아래 기사도 유용할 듯 하여 일단 링크 달아봅니다.

[정보계 혁신] 셀프서비스 BI, 정보계 고도화 방향은?

 2,130 total views,  3 views today

셀프서비스 BI활성화 아이디어

태블로 서버에서는 대시보드를 공유하는 것으로 보통 이해하고 계실 것입니다. 어느정도 컨텐츠를 갖출때 까지는 그렇게 이해하시는 것이 좋습니다. 하지만 어느 정도 컨텐츠가 확보되고, 내부에서 잘 쓰는 사람들이 생기게 되면 좀 더 잘 활용할 방법을 찾기 마련입니다.

최근 업무적으로 이런 이슈로 주위 사람들과 많은 얘기를 나누고 있는데 활용할 만한 좋은 아이디어가 있어서 공유할 생각을 하게 되었습니다. 아직 아이디어 단계이고 공유할 만한 좋은 내용이 많이 있으니 계속해서 공유하려고 합니다.

태블로 기본 뷰 및 응용 뷰에 대한 아이디어

  • 단순 뷰 – 대부분 활용하는 방식
    • 시트 , 대시보드, 스토리
    • 기존 활용 패턴
  • 추가적인 뷰에 대한 아이디어
    • 메뉴 페이지
    • 데이터 소스 페이지 – 분석을 시작할 데이터 소스 먼저 선택
    • OLAP페이지 (준비된 시트의 수정모드 페이지로 바로 진입)
    • 유튜브 강의페이지 (교육 자료)
      • 최근 태블로/리셀러에서 준비한 기본/중급 등 유튜브 동영상이 많이 보임
      • 글로벌 환경에서는 동영상만 있으면 여러 나라의 SUBTITLE은 쉽게 제작
    • ASSET 페이지
      • 조직내부에 공유 가능한 자산을 공유하는 페이지
      • COLOR SET (xml) 공유 페이지
      • 도형 icon 공유 페이지
      • Design Template Asset 페이지
      • tms 정보 페이지
    • 타사 BP (Best Practice : 사례) 페이지

메뉴의 활용

  • 메뉴페이지의 구성
  • 메뉴 페이지간의 구성 (메뉴의 계층)

포털의 활용

  • 간이 포털 – 단순 링크 및 템플릿의 활용
  • 내부 포털에 임베딩 – 메뉴에 연결하기 및 SSO 노하우
  • 전문 포털 솔루션의 구입 – 전문 파트너사의 포털 솔루션
  • 동작
    • 전체창으로 보기 등

BP의 활용

 533 total views,  1 views today

태블로 내장 국가명 검토

디노입니다. 국가, 시도, 시군구에 대해서 위경도 좌표를 어떻게 준비를 해야만 하는지 질문을 종종 받습니다.

아시는 분은 아시겠지만 태블로는 국가, 시도, 시군구에 대해서는 정확한 위경도 및 경계선에 대한 좌표정보를 내장하고 있기 때문에 “명칭”만 아시면 그리는데 문제가 없습니다.

샘플은 다른 글에서 포스팅하기로 하고요, 아마도 특이한 지역의 작은 국가들 때문에 질문을 하시는 것 같은데 국가명 목록을 궁금해하는 분이 있길래 문득 궁금해져서 구글링을 해보았더니만 country.tds에 저장이 되어 있다 합니다. 그래서 tds를 검색해 보았습니다.

프로그램/태블로/태블로 버젼/로컬/데이터

이 중에서 country.tds가 국가 정보를 가지고 있다해서 태블로로 열어 구글시트에서 한국만을 필터링했습니다.

country.tds를 열어서 살펴본 대한민국 관련 지리정보 데이터

몇가지 기준에 의한 국가코드가 보이고요, 두글자 코드, 세글자 코드도 보이고요, 한국의 여러가지 명칭도 보입니다. 한국/대한민국/한국/Korea (South) / Rep. of Korea / Republic of Korea / Republic of South Korea / ROK / South Korea / Südkorea / 韓国 등의 명칭도 보입니다.

이 내용을 좀 더 쉽게 살펴보기 위해 태블로 대시보드를 만들었습니다. 만드는 도중 알게 된 사실은 대한민국에 대한 명칭 데이터는 19개나 있지만 특정 랭귀지 모드값에 대해 한 가지의 명칭만을 표현한다는 것이었습니다. 세부적인 내용까지 살펴볼 필요는 없을듯 했지만 궁금한 분들과 검색의 편의를 위해 만들어 게시합니다. 데이터는 아래의 시트 링크를 참고하시기 바랍니다. 코드는 2020.1버젼입니다.

https://docs.google.com/spreadsheets/d/1elHaLbZf20ZfgmMbZ_G0Cy6uXv-G_dOoAmf0vvPyIUU/edit#gid=0

해당 대시보드를 만들어 임베딩해 두었습니다.

https://public.tableau.com/profile/digital.nomad.99#!/vizhome/18253/wide

한국의 경우만 보더라도 한국, 대한민국, 韓國 , South Korea, Südkorea 등 여러가지 명칭으로 활용되고 있는 것을 알 수 있습니다.

이만 줄입니다.

 587 total views,  1 views today

프로젝트용 태블로 개발 라이선스?

데이터 시각화 업무가 프로젝트 규모가 되면 수행기간이 있지요. 이와 관련해서 솔루션 라이선스가 문제가 됩니다. 라이선스 정책은 솔루션마다 다를텐데요, 태블로는 개발용 무료 라이선스라는 개념은 없습니다. 개발기간에 솔루션을 사용해서 그 비용을 벌게 되니 솔루션 비용을 내야한다고 이해하면 간단할겁니다.

물론 트라이얼이라는 것이 있기는 합니다. 15일간 무료 평가판이고요, 무료로 제품 구매를 위한 평가를 위해 제공하는 기간입니다. 따라서 개발을 위한 라이선스는 아닙니다. 누구나 사용할 수 있으니 개발에도 사용할 수는 있겠으나 기간이 짧아 큰 도움은 안 될 것입니다.

https://www.tableau.com/ko-kr/products/trial

태블로 데스크탑 평가판, FreeTrial

그렇다면 통상의 경우 개발을 위해 개발기간 몇 달간 크리에이터 라이선스가 필요한데 개발 기간동안 라이선스를 구매할 수 있을까요?

태블로는 년단위 이하로는 판매가 안된다고 보시면 됩니다. (3개월x, 6개월x..) 다만 년간 라이선스에 추가해서 구매는 가능한데요 예를 들어 1년 3개월, 1년 6개월 이런식으로 말입니다.

여기서 고려해야 할 것이 통상의 프로젝트에 있는 “프로젝트 종료 후 1년 혹은 검수 후 1년간 무상 유지보수” 라는 규정입니다. 프로젝트가 종료되고 1년간은 무상으로 라이선스를 제공해야 한다는 것이죠 (프로젝트 비용에 포함해서 제공해야 한다는 의미)

그렇다면 이런 경우 두 가지 방법이 있습니다.

  1. 개발자용 라이선스 몇 개를 먼저 1년분을 사용하여 개발을 시작하고 프로젝트 종료 즈음해서 추가 1년분을 구매하면서 나머지 3개월치를 추가 구매하는 것입니다.
  2. 프로젝트 종료 혹은 검수예정일 이후 1년을 고려해서 1년 3개월 혹은 1년 6개월 이런식으로 구매를 먼저하고, 프로젝트 종료 즈음해서 나머지 운용 라이선스 1년 분을 구입하는 것입니다.
개발기간을 고려한 라이선스 구매 계획 수립

3. 물론 개발용 따로 서버용 따로 종료일자가 달라도 그냥 사용하는 방법도 있습니다. 꼭 종료일을 맞춰야 하는 것은 아니라고 합니다. (예전에는 한 서버에 대해 종료일을 정확하게 맞추지 않으면 입력 자체가 되지 않았습니다) 다만 이렇게 되면 각각의 종료일마다 라이선스의 갱신을 해주어야 하므로 프로젝트 종료일자를 기준으로 라이선스 종료일을 통일하는 것이 바람직합니다.

디노였습니다.

 655 total views,  4 views today

반경 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

 900 total views

주소로 위경도 읽어오기 (지오코딩, geocoading)

우리가 데이터를 받을 때 위경도가 딸려오지 않는 경우가 많이 있습니다. 주소 만이라도 온전히 확보된 것이라도 감사해야 할 경우 인데요. 이 주소 목록만을 가지고 위경도를 가져오는 지오코딩 방법을 공유하겠습니다.

지오코딩에는 많은 방법이 알려져 있습니다만 여기에서는 제가 가장 가벼운 마음으로 즐겨쓰는 구글 AWESOME TABLE를 이용해보겠습니다. 일반 지메일 기능이나 구글 지스윗(업무용 지메일) 의 드라이브 기능으로 있는 스프레드시트의 애드온 기능입니다.

주소 데이터의 확보

먼저 드라이브로 이동하여 새 문서-구글 시트 – 빈시트만들기를 선택하여 문서를 하나 만듭니다.

헤더명은 “주소”로 하겠습니다. 주소가 아닌 다른 칼럼 이름도 관계 없습니다. 칼럼에는 변환할 주소를 준비해줍니다. 필요하면 구글링등을 통해 “주소록” 검색하시면 전국 유치원 주소록이라던가 쓸만한 주소록을 구할 수 있습니다.

변환할 주소정보가 따로 준비되어 있지 않고 샘플로도 충분하신 분은 아래 링크에 들어가셔서 파일-사본만들기를 눌러 사본을 준비하시기 바랍니다. 문서가 카피되어 본인 소유 의 문서로 생성됩니다.

https://docs.google.com/spreadsheets/d/14XKOoJexKJd2sTi42QMA2PjELOtOpXSHil08YkV4i4w/edit#gid=0

이 데이터는 제가 아는 어떤 조직의 주소록인데 동호수를 전부 삭제한 것입니다. 주소를 살펴보면서 새삼스럽게 느낀 것은 공동주택이 압도적으로 많다는 점입니다. 거의 대부분의주소가 아파트 아니면 빌라네요. 개인 주택으로 보이는 주소는 한손으로 꼽을 정도입니다.

구글 스프레드시트와 AWESOME TABLE

이제 데이터가 준비되었으니 사용할 연장을 확인해야 하겠습니다. 위 메뉴에서 부가기능을 눌러보세요. AWESOME TABLE이 보이면 넘어가시고, 안보이면 설치되어 있지 않다는 이야기이니 [부가기능 설치하기]만 보이면 그것을 눌러줍니다.

GEOCODE BY AWESOME TABLE 이미지 검색결과

AWESOME TABLE로 검색을 해보면 아래와 같은 목록이 보이는데 첫 앱을 선택해줍니다.

[설치]를 눌러서 구글 시트에서 사용할 수 있도록 설치합니다. 앱에 기능이 추가되는 것이니 별도의 설치 동작 등은 없고 권한 확인 및 인증 등을 확인하게 됩니다.

이제 [부가기능]으로 가서 [Geocode by Awesome Table]-[Start Geocoading]을 선택합니다. 아마 그 아래의 [Geocode on form submit]는 구글 폼 등을 통해서 자료를 자동수집할 경우 자동으로 데이터가 들어올 때 마다 주소를 위경도로 변환해주는 기능인 듯 합니다. 이 기능에 대해서는 별도 포스팅해보겠습니다.

주소의 변환 (Geo Coading)

[Start Geocoading]을 누르게 되면 아래와 같이 우측창이 나타나게 됩니다. 시트명은 그대로 사용하시면 되고, Address column을 지정해주면 됩니다. “주소” 혹은 다른 칼럼 명을 지정하면 됩니다. 그리고는 [Geocode!]를 눌러주면 됩니다.

Langitude, Longitude 칼럼이 자동으로 생기고 자동으로 주소 변환을 해줍니다. 50개 변환하는데 1분도 채 안걸린 듯 합니다. 저는 개인적으로는 자료가 많은 경우 몇천개씩 잘라서 별도의 시트에 붙여서 동시에 변환한 경우도 있습니다. 이렇게도 잘 동작됩니다.

오류의 보정

이 기능이 예전에는 오류율이 많았었는데 최근에는 편안하게 다른 분들에게 추천드릴 정도로 오류율이 상당히 개선되었습니다. 어찌되었건 오류가 나는 경우가 없지는 않은데요. 주소변환 오류가 발생한 경우 다시 한번 주소를 확인한 다음 구글맵으로 갑니다. http://map.google.com

google map 이미지 검색결과

검색창에 주소를 붙여넣기하고 검색을 눌러주면 위치가 나타나게 됩니다. 이 때 주소창을 보시면 @다음에 숫자가 이어진 부분이 있는데 이것이 바로 위경도 입니다. 맨 앞이 위도, 슬래시 다음이 경도, 그 다음이 zoom level (확대 수준) 입니다. z17이면 17단계까지 확대한 상태라는 겁니다.

하나 하나 이 숫자를 복제하는 것도 방법이지만 이 숫자를 더블클릭하시면 위경도와17z 까지 전부 선택됩니다. 이것을 복사합니다.

이것을 구글시트 해당 주소줄 맨 오른쪽에 붙여줍니다. 이와 같은 동작을 다른 오류난 주소들에도 반복해줍니다. 주소의 수동 검색이 끝났으며 이제 이것을 위경도 칼럼에 넣어주어야 하는데 먼저 쉼표로 이어진 텍스트를 각각 분리해야 합니다.

구글시트에는 [데이터]-[텍스트를 열로변환] 기능이 있습니다. 먼저 칼럼을 선택하고 이 기능을 실행하면 아래 그림과 같이 위도, 경도, z level 세 칼럼으로 나눠줍니다. 이렇게 나눠진 앞의 두 칼럼을 복사해서 왼쪽의 위경도 창에 붙여넣으면 됩니다.

이렇게 변환된 주소들은 맵에도 바로 표시할 수 있습니다. [Open map]을 선택하면 아래와 같은 지도가 나옵니다.

마무리

저는 태블로에서 변환된 위경도 주소를 활용할 계획이므로 이쯤에서 마무리하겠습니다. 참고로 이 기능은 일일 사용제한량이 있어서 수만~수십만개의 데이터를 변환하는데는 적절하지 않아보입니다. 대량 주소 변환에 대해서는 좋은 프로그램들이 좀 있다는데요 다음 기회에 추가 포스팅을 할 기회가 있을 듯 합니다.

 1,833 total views,  4 views today

주소만으로 시도/시군구 칼럼 만들기

데이터로서 주소만 확보된 경우 여러가지 추가 가공을 하면 그 데이터를 여러 용도로 활용가능합니다. 주소로 위경도를 가져오는 방법은 아래의 링크를 참고하시기 바랍니다.

http://dgtnmd.net/2020/02/28/%ec%a3%bc%ec%86%8c%eb%a1%9c-%ec%9c%84%ea%b2%bd%eb%8f%84-%ec%9d%bd%ec%96%b4%ec%98%a4%ea%b8%b0/

그 다음으로 많이 필요한 기능이 시도와 시군구를 구분하는 일입니다. 아시다시피 태블로에서는 국가, 시도, 시군구 데이터에 대해서는 geographical role을 부여하여 지도를 그리거나 필터를 걸 때 매우 유용하게 사용됩니다.

사용자 정의 split를 사용하여 3칼럼을 분리합니다. 제대로 정제된 데이터를 사용하셨다면 첫번째 칼럼은 무조건 시/도입니다. 이것은 큰 이슈가 없습니다. 첫 칼럼의 명칭을 시도로 하신 다음 geographical role을 시/도로 부여합니다.

문제는 두번째, 세번째 칼럼입니다. 서울시 강남구를 보면 두번째가 구로 끝나서 “시/군/구”에 해당하는 것이 맞는데 경기도 성남시 분당구를 보면 두번째 칼럼은 시로 끝나고 세번째 칼럼은 구로 끝나고 있지요.

실은 두번째 칼럼은 기초광역자치단체에 해당 합니다. 서울의 강남구 의회가 있드시 경기도는 성남시 의회가 있습니다. 성남시에는 분당구, 수정구, 복정구의 세가지 일반구가 있습니다.

기초지자체를 시군구로 정의하려 사용하시려면 split한 두번째 칼럼을 그대로 사용하시면 되고요, 우리가 실생활에서 사용하는 일반구를 사용하려면 아래의 계산식이 필요합니다. 기계적인 판단이 아닌 하고자 하는 일의 용도에 따른 선택을 하셔야 합니다.

이때 시군구를 성남시 분당구의 일반구로 구별을 하고자 하면 시군구는 “성남시 분당구”가 될 것입니다. 다행히도 태블로는 “성남시 분당구”를 알아듣습니다.

위와 같이 구현하려면 세번째 split칼럼을 살펴봐야 하는데 오랜 경험의 결과 지자체급 시군구와 일반시군구의 구분은 세번째 칼럼의 마지막 글자가 “구”로 끝나는 경우가 100%였습니다. 따라서 칼럼2와 칼럼3를 엮어서 아래와 같은 계산식을 정의하면 유용하게 사용 가능합니다.

IF RIGHT([주소3], 1) = "구"  THEN 
     [주소2] + " " + [주소3]
 ELSE
     [주소2]
 END

이렇게 정의된 칼럼은 “시군구”로 이름을 변경하시면 되고 geograhpical role 또한 “시군구” 혹은 “county”로 정의를 하시면 되겠습니다.

실습을 위한 샘플 링크는 아래의 구글 스프레드시트를 참고하세요. 인터넷에서 구한 주소록에 동호수를 전부 없앤 데이터입니다. 이 주소들을 보니 정말 아파트나 빌라 등 공동주택에 살고 계시는 분이 많긴 많네요.

권한요청주시는 분이 가끔있어서 사용방법을 말씀드리면, 지메일 계정으로 로긴하여 사본만들기해서 사용하시면 됩니다. 제가 수정권한까지는 드릴 수 없어서요.

https://docs.google.com/spreadsheets/d/14XKOoJexKJd2sTi42QMA2PjELOtOpXSHil08YkV4i4w/edit#gid=0

이것을 태블로에서 불러들입니다.

사용자 지정 분할을 해야 하는데 구분기호는 스페이스로 분할 해제는 첫번째 3열을 선택하세요.


주소-분할 1~3의 칼럼이 보이는데 주소1은 시도로 변경해주시고, 나머지는 주소2, 주소3으로 이름을 바꿔줍니다. 여러번 쓸 이름은 아니지만 계산식 입력시 혼동이 되므로 변경을 권합니다.

시도는 시/도로 (영문인 경우 states)로 지리적 역할을 부여합니다.



계산식을 하나 만들어 시군구로 명명하고 아래의 계산식을 넣어줍니다.

IF RIGHT([주소3], 1) = "구"  THEN 
     [주소2] + " " + [주소3]
 ELSE
     [주소2]
 END

주소2, 주소3은 이제 필요 없으니 숨겨주면 됩니다. 깔끔하게 시도, 시군구 칼럼이 준비된 것을 볼 수 있습니다.

혹시라도 아래와 같은 “알 수 없음” 표시가 나타나면 내용을 살펴보면 되는데요

행정 폐지된 부천시 소사구 및 원미구

아시는 분도 있을텐데 부천시의 소사구 원미구는 행정구역이 없어졌기 때문에 단순히 부천시로 변경하여 지정하면 됩니다. 부천시 혹은 부 만 타이핑시 추천 지명이 뜨면 편리할텐데요 태블로에서는 글자를 치고 아래 화살표를 누르면 아래와 같이 추천 지명이뜹니다.

부천시로 수정하여 지정하여 마무리합니다.

우측의 시도명을 보면 서울시, 서울특별시, 인천, 인천광역시,인천시 등 여러 이름으로 나타나는데요. 이것들은 geographical group으로 묶어서 사용 가능합니다.

 951 total views,  6 views today

태블로에 맞는 티베로(Tibero) 드라이버

결론부터 먼저 말씀을 드립니다. 티베로 드라이버를 찾는 태블로 사용자 여러분. 반드시 티베로 홈페이지에서 다운받으시기 바랍니다.

티벡스 드라이버는 티멕스 홈페이지에서

웹상에서 구글링되는, 네이버에서 검색되는 드라이버들은 대부분 불안정한 하위 버젼입니다. 시간낭비 마시고, 업체 욕하지 마시고 꼭 데이터베이스 제조사인 티베로 홈페이지에 들어가셔서 다운로드 받으시기 바랍니다. 저 또한 몇시간의 고생끝에 얻어낸 결론입니다.

저희가 수 년전 경마 관련 공공기관의 프로젝트를 진행할 때의 경험인데 이 때 티베로 디비에 연결은 되어 디비나 테이블 목록은 보이는데 막상 데이터는 불러와지지 않아서 티멕스의 본사의 엔지니어의 도움을 받아 같이 고생하면서 드라이버를 안정화시킨 적이 있습니다. 적어도 그 이후 버젼이어야 잘 동작을 할텐데요 제대로 동작하는 그 버젼이 바로 홈페이지에 있는 버전으로 보입니다.

회원가입 및 로긴은 불편하시더라도 하시기 바랍니다. 저도 회원가입 귀찮은 마음에 여기 저기 개인 블로그 등에서 다운로드 받아서 깔고 테스트하고 실패하느라 시간 많이 날렸기 때문에 이 글을 씁니다. 꼭 공식 홈페이지에서 최신 드라이버를 다운받으시기 바랍니다.

티멕스에게 바라는 점

티멕스에도 얘기드리고 싶은데요. 꼭 (회원가입을 하고) 로긴을 해야만 드라이버를 다운받을 수 있도록 한것은 제품을 다운받는 사람을 파악하기 위해서인지는 모르겠지만 사용자 입장에서는 무척 불편합니다. 최근 다른 드라이버를 다운받았던 기억을 되살려보면 그런 사이트들에서 로긴을 한 경험이 거의 기억나지 않습니다. 제품의 제대로 된 사용을 위해 다들 오픈하는 것 아닌가 하는 생각입니다. 티베로도 불완전한 제품이라는 불필요한 오해를 받는 것을 방지하기 위해서라도 공개로 전환하시는 것은 어떠실지요?

다운로드 링크

https://technet.tmaxsoft.com/en/front/main/main.do 에서 다운로드를 선택하세요.

즐태블로하세요. 디노였습니다.

 739 total views,  2 views today