1 minute read

관광지 데이터 - 데이터 검증.

좌표와 주소의 불일치

  • 이전 포스트에서 간략하게 설명하고 넘어갔던 것들중 하나가 중부원점 좌표계의 위경도 변환이었다.
  • 데이터들중 일부에 위경도 좌표계가 아닌 중부원점 좌표계를 기준으로 위치좌표가 설정되어있었다.
  • 따라서, 해당 좌표계를 변환하는 코드를 Tools.py에 함수화하여 넣어놓고 사용했었다.
    • 해당 코드는 정우일님의 블로그에서 나온 내용을 기반으로, 구글링을 통해 deprecated 이슈를 제거한 코드이다.
  • 숙소 데이터를 검증하기 위해 구글 지도에 변환된 좌표값과 주소를 넣어 검증해본 결과, 불일치가 발생했다.

    [실제 거리로 따지면 200m 정도의 오차가 발생했다.]

  • 생각해보면 주소값이 이미 존재하는 값들에 대한 문제라서, geocoding한 값을 넣는 방향으로 선회했다.

  • 구글맵의 파이썬 라이브러리를 임포트하여 Tools.py에 지오코딩 함수를 만들고, 만드는김에 역지오코딩 함수도 같이 만들어주었다.

  • 저번에 겪었던 보안문제를 또 겪기는 싫었기 때문에, 이번에도 API키는 따로 json파일로 빼서 저장하고, .gitignore에 추가하는 방식으로 작업했다.

  • 구글맵 지오코딩 가격정책에 따르면 요청 1000건당 5$.
    일반음식점 데이터가 대략 12만건 있었으니 600$.
    매달 200$까지는 무료이니 400$. 한화로 50만원.
    • 다른 대책을 찾아야겠다는 생각이 들었다.

대용량 지오코딩 해결책 찾기

  • 구글 스프레드시트의 부가기능중 Geocode by Awesome Table.
    • 무료인것은 좋은데, 속도가 조금 안나오는것 같다.
    • 얼추 1분에 30개? 가량 진행되는것 같으니, 4000분, 약 67시간이 소요될것으로 보인다.
      • 사용 도중 스크립트 과다사용으로 제한이 걸려 변환작업이 중지되었다.
  • Geocoder-Xr
    • 무료 프로그램으로, 지속적으로 DB업데이트가 되는 장점이 존재한다.
    • 하지만 사용 가능시간이 10~18시로 제한되어 있어 이걸 찾은 시점인 18시에는 사용이 불가능했다.
  • 네이버 지도 API 지오코딩
    • 무료. 월간 최대 3백만건 이용 가능
  • 프로젝트에는 네이버 API를 사용하기로 했다.
    • rwdr님의 글을 참고하여 Tools.py에 네이버 버전 지오코딩 함수를 제작했다.