티스토리 뷰
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
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] Exception 클래스 그리고 예외처리(try, except, raise, finally) (0) | 2021.11.07 |
---|---|
[python] 파이썬으로 날짜가 무슨 요일인지 구하기 (0) | 2021.10.22 |
[python] 값 비교하여 증가율, 하락률(%) 알아내기 (전년, 전월대비 등) (0) | 2021.10.20 |
[django] 장고에서 사용자가 업로드한 파일 저장하는 방법 (0) | 2021.10.18 |
[pymongo] 몽고DB 인서트 되어있는 값에 원하는 수 곱하기 (0) | 2021.10.14 |
댓글