티스토리 뷰

728x90
반응형

 

 

 

우리나라 좌표계는 일반적으로 wgs84 좌표계(epsg:4326)를 사용합니다.

epsg:5179, TM128 등 다른 좌표계에서 epsg:4326 좌표계로 변경하고 싶은경우

어떻게 변경해야 하는지 알아보겠습니다!

 

일단 파이썬에서의 기본적인 좌표계변경방법입니다.

pyproj를 임포트 시키고 transform 파라미터에

변경전 좌표계, 변경하고자하는 좌표계, x값, y값을 넣어주면 됩니다.

 

1
2
3
4
5
6
7
8
9
from pyproj import Proj, transform
 
 
epsg5179= Proj(init="epsg:5179")
wgs84=Proj(init='epsg:4326')
 
x1, y1 = transform(epsg5179, wgs84, 변경하고자하는 x값, 변경하고자하는 y값)
 
print('변경 후: ', x1, y1) 
 

 

epsg:5179 에서 epsg:4326으로

정상적으로 바뀐 것을 확인할 수 있습니다.

다른 좌표계도 마찬가지로 init="좌표계"를 넣어주면 됩니다.

 

TM128은 직접 인자를 넣어주어야 합니다

 

 

1
2
3
4
5
6
7
8
9
10
11
from pyproj import Proj, transform
 
 
TM128 = {'proj':'tmerc''lat_0':'38N''lon_0':'128E''ellps':'bessel',
   'x_0':'400000''y_0':'600000''k':'0.9999',
   'towgs84':'-146.43,507.89,681.46'}
 
wgs84=Proj(init='epsg:4326')
 
transform(Proj(**TM128), wgs84, 963775,1941125)
 
 
 

 

TM128도 wgs84(epsg:4326

) 좌표계로 잘 변경된 것을 확인할 수 있습니다!

 

 

판다스 데이터프레임의 좌표 x,y행 전체를 한번에 좌표계를 변경하고 싶을 때는,

행 전체를 리스트로 넣어주면 됩니다.

 

예를 들기 위해 데이터프레임을 만들어보았습니다.

file 이라는 데이터프레임이있고, X, Y 좌표계는 TM128입니다.

file의 'X' 컬럼과 'Y' 컬럼의 모든행의 좌표계를 변경하고자 합니다.

 

아래 코드처럼 file[ X 컬럼명 ].tolist(), file[ Y 컬럼명 ].tolist() 로 파라미터를 넣어줍니다.

그러면 변환된 값들이 좌표계를 변경할 컬럼명(trans_X, trans_Y)을 가진 열들로 생성되구요

 

trans_X, trans_Y는 변경된 좌표계 값이 들어가고,

X, Y컬럼에는 변경전 좌표계 값이 그대로 들어있게 됩니다.

 

1
file['trans_X'],file['trans_Y'= transform(Proj(**TM128), wgs84, file['X'].tolist(), file['Y'].tolist())
 

 

 

끝입니다!

728x90
반응형
댓글