Splunk geoconvert 커스텀 명령

Splunk 에서는 위치를 지도에 표현해주는 명령어가 여러 있습니다. 이런 명령어들의 대부분은 위도, 경도로 된 방식만 지원을 합니다. 하지만 공공데이터에서 받은 지도를 보면 다른 방식으로 저장되어 있는 경우가 있습니다.

조사번호,조사지역,주구분,조사일자,조사일시,시간대,X좌표,Y좌표,행정구역명,날씨,남자10대,남자20대,남자30대,남자40대,남자50대,여자10대,여자20대,여자30대,여자40대,여자50대
"2,544.00",신촌네거리 계룡건설 사옥 농협 앞,주중,06-21-2016,0:00:00,12시~13시까지,"343,099.00","417,482.00",대전광역시 서구 월평동,맑음,2,24,68,50,31,4,37,64,44,26
"2,544.00",신촌네거리 계룡건설 사옥 농협 앞,주중,06-21-2016,1:00:00,19시~20시까지,"343,099.00","417,482.00",대전광역시 서구 월평동,맑음,19,44,28,33,21,14,56,49,43,18
"2,544.00",신촌네거리 계룡건설 사옥 농협 앞,주말,06-20-2016,2:00:00,12시~13시까지,"343,099.00","417,482.00",대전광역시 서구 월평동,흐림,13,33,34,61,55,13,32,29,28,12
"2,544.00",신촌네거리 계룡건설 사옥 농협 앞,주말,06-20-2016,3:00:00,19시~20시까지,"343,099.00","417,482.00",대전광역시 서구 월평동,흐림,23,33,32,547,129,12,39,13,46,4

이 데이터의 경우 X좌표, Y좌료 되어 있으면서 값은 6자리의 숫자로 되어 있습니다. 지도에 위치를 표현하는 방법은 위도, 경도 외에도 다양한 방법들이 있다는 것을 알게되었습니다. 그중에 이 좌표는 KATECH이라는 방식입니다. 때로는 TM128이라고 불린다고 합니다.

이런 형식의 데이터는 Splunk에서는 인식할 수 없어서 변환을 해야 하는데 찾아보니 여러 소스들이 있었습니다.

그중에 python으로 되고 따로 모듈을 받을 필요가 없는 소스를 찾아서 활용하게 되었습니다.

참조한 변환 소스 : GeoConverter.py

간단한 실습을 할 때 사용할 수 있는 명령어로 만들었으며 $SPLUNK_HOME/etc/apps밑에 설치하시면 됩니다. zip 다운로드

index=bootcamp sourcetype="bootcamp" 
| convert num(X좌표) as x 
| convert num(Y좌표) as y 
| geoconvert x y 
| rename x_long as longitude, y_lat as latitude 
| lookup skorea latitude, longitude 
| stats count by featureId 
| geom skorea

위와 같이 미리 문자열로 인식된 것을 숫자로 바꾸고 명령어로 입력을 해 주면 위도 경도로 바뀌어서 결과가 나오게 됩니다.

x y x_long y_lat 행정구역명
316730.00 589063.00 126.55067660157071 37.90028778475512 경기도 동두천시 생연2동