공간 데이터는 지구상의 위치를 표현하는 방법이고, 여기에는 여러가지 방법이 있습니다. 오늘은 간단히 파이썬 코드로 이걸 어떻게 변경하는지 팁 성격으로 소개드릴께요
구형좌표계와 투영좌표계
이전에 글을 하나 썼지만, 공간을 표현하는 방식에는 구형 좌표계를 쓰는 방법과 투영좌표계를 쓰는 방법이 있다고 했습니다.
투영 좌표계는 지구의 중심에서부터 지구 바깥에 스크린이 놓여 있다고 생각하고 쭉 투영한 것이기 때문에 멀어질수록 왜곡이 심해지게 되고, 그래서 투영의 중심점에 따라 모양이 많이 변합니다.
쨌든 그래서 한국에서는 KATEC 이라는 투영좌표계를 많이 사용하고, GPS가 각도 (도/분/초) 로 되어 있는 방면에 KATEC 좌표계는 단위가 미터로 되어 있습니다. 오늘은 이걸 변환하는 파이썬 코드를 가져와 봤어요.
좌표계 변환 코드 (파이썬)
코드는 아래와 같습니다. 파일은 아래에 있구요!
from pyproj import Proj, transform
# 구형 좌표계 설정 : EPSG:4326
WGS84 = {'proj':'latlong', 'datum':'WGS84', 'ellps':'WGS84',}
# 투영 좌표계 설정 : KATEC
KATEC = {'proj':'tmerc', 'lat_0':'38N', 'lon_0':'128E', 'ellps':'bessel',
'x_0':'400000', 'y_0':'600000', 'k':'0.9999', 'a':'6377397.155', 'b':'6356078.9628181886',
'towgs84':'-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43', 'units':'m'}
inProj = Proj(**WGS84)
outProj = Proj(**KATEC)
x1, y1 = 126, 38
x2, y2 = transform(inProj, outProj, x1, y1) # 구형 좌표계를 투영 좌표계로 변환
print(x2,y2)
위와 같이 변환하고 나면, 결과로써 "224535.4294218698 601579.7650098474" 이라는 숫자가 얻어집니다.
미터 단위라고 위에서 말씀드린 것처럼, 기준점에서 약 224km / 602km 떨어져 있다는 뜻입니다.
오늘은 좌표계 자체보다도 어떻게 변환하는지 간단히 코드 팁으로 알아봤습니다. 사실 이거 알아낸다고 개고생을...ㅠㅠ 어딘가 명확히 설명된 데가 없더라고요... 그래서 걍 제가 알아낸 거 정리 차원에서 포스팅해 봤습니다.
오늘도 글 보아주셔서 감사하구요, 다음에 더 알찬 글로 돌아오겠습니다!
댓글