본문 바로가기

프로젝트, 스터디/문화데이터 공모전

[데이터 전처리] Python 좌표계 변경 방법 (UTMK로 변경)

전처리할때 좌표변환은 다른 팀원이 진행했으나, 

Github에 올리기엔 조금 이해가 안가서, 복습겸 코드 정리를 스스로 해보았습니다. 


 

파이썬에서 기본적인 좌표계 변경을 위해선  

 

1. pyproj 임포트 

2. transform(변경전 좌표계, 변경하려하는 좌표계, 경도, 위도)  *경도, 위도 순서는 상관없어요 

3. 새로운 column에 집어 넣기 

 

▼ 아래와 같은 코드 ▼

# 변경할 col 
lb_la = lb['위도']
lb_lo = lb['경도']

#도서관 좌표 UTMK로 변환 함수

def transform_to_utmk(df):
    df['trans_la'], df['trans_lo'] = pyproj.transform(proj_WGS84, proj_utmk, df['위도'].tolist(), df['경도'].tolist())
    return df.head(5)

 

절차대로 하면 되는줄 알았으나, 

 

"pyproj.transformer.transform() and pyproj.transformer.itransform() are deprecated." 

 

라는 경고문이 뜨면서 값이 나오지 않더라구요. 

 

ㅎㅎ ^^;;

 

그래도 친절하게 링크 를 첨부해주길래 들어가서 확인해봤습니다. 

 

pyproj 1 style 혹은 2 style 로 진행하라는 뜻

 

저는 위 링크에서 말한 방법 중 " pyproj 2 style" 스타일로 진행했어요 

(아무래도..더 짧으니까 ^__^) 

 

 

✅ 성공 코드 

import pandas as pd
import numpy as np
import pyproj
import folium
from pyproj import Transformer

lb = pd.read_excel('/content/서울시 공공도서관 현황정보.xlsx')

# 1. Transform 정의 
transform = Transformer.from_csr("epsg:4326", "epsg:5178")  #epsg : 5178 이 utmk 

## test해보기 (서울역 좌표이용) 
transformer.transform(37.553230, 126.972551)  # >> 성공(1950256.3879044417, 953600.9747718363)

# 2. library 도서관의 WGS84 위경도를 UTMK 로 변경
lb['trans_la'], lb['trans_lo'] = transformer.transform(lb['위도'], lb['경도']


#함수 만들기 
def to_utmk(df, x, y) :
    df['utmk_la'], df['utmk_lo'] = transformer.transform(df[x], df[y])

    return df

 

크크크 성공 !!

그럼 첫 ! 티스토리 정리 끝!