안녕하세요? 이번 글은 카카오 API를 활용한 지오코딩 Python 패키지, geokakao를 간략히 소개해 보겠습니다. 아래 글을 작성하면서 만든 함수의 재사용 기회가 많은 것 같아서 편의상 목적으로 PyPI에 패키지로 등록한 것입니다.
geokakao는 주소 정보를 포함한 데이터프레임이 주어졌을 때, 해당 주소로부터 좌표 정보(경도, 위도)를 알아내어 데이터프레임에 추가하고, 이것을 다시 GeoPackage로 변환하는 과정을 처리합니다.
기능
- Kakao API를 사용하여 주소를 좌표(경도, 위도)로 변환
- 주소 데이터를 포함하는 DataFrame에 좌표 정보 통합
- 보강된 DataFrame을 다시 GeoPackage 형식으로 변환
설치
pip install geokakao
사용법
import geokakao as gk
import pandas as pd
샘플 데이터프레임을 생성해 보겠습니다. 데이터프레임의 "Address" 열은 주소 정보를 포함합니다.
# Load your DataFrame with address information
data = {'Name': ['국립공원공단 본사',
'국립공원연구원 본원',
'치악산국립공원사무소'],
'Address': ['강원특별자치도 원주시 혁신로 22',
'강원특별자치도 원주시 단구로 171',
'강원특별자치도 원주시 소초면 무쇠점2길 26']}
df = pd.DataFrame(data)
이 주소를 좌표로 변환하여 데이터프레임에 추가하고, 이를 CSV로 저장하는 작업을 수행해 봅니다.
# Convert addresses to coordinates and integrate into the DataFrame
gk.add_coordinates_to_dataframe(df, 'Address')
df.to_csv('korea_np.csv', index=False, encoding='utf-8')
이제 CSV 파일을 GeoPackage(GPKG) 파일로 변환할 수 있습니다.
# Save the enriched DataFrame to a GeoPackage file
input_csv = "korea_np.csv"
output_gpkg = "korea_np.gpkg"
gk.csv_to_gpkg(input_csv, output_gpkg)
geokakao 패키지는 기본 API_KEY를 포함하고 있습니다. 그러나 로컬 API 10만/일 쿼터(월 300만 건까지 기본 월쿼터 범위 한정) 초과 시에는 사용자가 API_KEY를 직접 입력하도록 설정되어 있습니다. 카카오 API KEY는 Kakao Developers(https://developers.kakao.com/)에서 회원가입 후 신청하시면 됩니다.