[파이썬] 경위도_좌표계_변환
프로젝트를 진행하면서 GIS관련 기능을 구현하기 위해 공공데이터로부터 대형점포 데이터를 내려받았다. 대부분 GIS 기능을 구현할 때는 EPSG:4326
좌표계를 사용하는데 내려받은 데이터는 EPSG:5174
형식의 좌표계여서 이를 변환할 필요가 있었다. pyproj
패키지를 사용하면 좌표계 변환을 손쉽게 처리할 수 있다.
#01. 패키지 설치
$ pip install --upgrade pyproj
#02. 사용형식
# 좌표계 정보 설정
epsg5174 = pyproj.Proj(init="epsg:5174")
epsg4326 = pyproj.Proj(init="epsg:4326")
새로운_경도, 새로운_위도 = pyproj.transform(epsg5174, epsg4326, 원본경도, 원본위도)
#03. 프로젝트에 적용
1. 좌표변환 함수 정의
import pyproj
from pandas import Series
epsg5174 = pyproj.Proj(init="epsg:5174")
epsg4326 = pyproj.Proj(init="epsg:4326")
def convert_coordinates(row):
xx, yy = pyproj.transform(epsg5174, epsg4326, row['경도'], row['위도'])
return Series([xx, yy], index=['xx', 'yy'])
2. 데이터프레임의 컬럼에 대한 적용
수집된 데이터를 저장하고 있는 데이터프레임에 경도
와 위도
라는 이름의 필드가 존재했다. 이를 apply
메서드를 사용하여 미리 정의한 함수로 변환할 수 있게 처리 했다.
df[['xx', 'yy']] = df.apply(convert_coordinates, axis=1)
df.head()