KATEC -> WGS84 좌표 변환하기 ( M1, python )

가람·2022년 7월 13일
0

여러곳의 api 를 사용하다보면, 좌표계가 다른 경우가 있다.
자주 보이는 좌표계는 wgs84 와 KATEC 이 있다.

  • WGS84 : 1984년 제정된 세계 지구 좌표 시스템 ( World Geodetic System ) 으로 gps에서 사용되는 좌표다. 위도와 경도로 위치를 나타낸다.

  • KATEC : 한반도 내비게이션 전용 좌표계로 각도가 아니라 m 단위로 위치를 나타낸다. KATECH, TM128 으로 적기도한다.

좌표계의 설정값은 아래와 같다.

// WGS84 ( epsg:4326 )
+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
// KATEC ( epsg 없음, 비공식 좌표계 ) 
+proj=tmerc +lat_0=38 +lon_0=128 +k=0.9999 +x_0=400000 +y_0=600000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43

좌표변환 Library 설치

좌표계 변환에 사용되는 라이브러리는 여러가지가 있다. ( pyproj, geopandas, ... )
그 중 pyproj를 이용해서 좌표변환을 진행했다.

공식문서 를 따라해봤으나 설치과정에서 에러가 발생했다.
구글링을 해보니 M1 에서 일어나는 문제라고 한다.
해결방법은 아래와 같다. ( 참고 )

pip uninstall -y pyproj  # pip install 로 설치 했을 경우
brew install proj
export PROJ_DIR=/opt/homebrew/Cellar/proj/9.0.0_1
pip install pyproj --no-binary pyproj 

pip install 로 설치할때는 지원하지 않아 homebrew로 설치 후, 환경변수를 설정해주는 방식이다.

KATEC -> WGS84 변환하기

def KATEC_to_wgs84(x, y):
    WGS84 = {'proj': 'latlong', 'datum': 'WGS84', 'ellps': 'WGS84'}
    KATEC = {'proj': 'tmerc', 'lat_0': '38N', 'lon_0': '128E', 
             'ellps': 'bessel', 'x_0': '400000', 'y_0': '600000',
             'k': '0.9999', 'units': 'm',
             'towgs84': '-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43'}

    inProj = Proj(**KATEC)
    outProj = Proj(**WGS84)
    return transform(inProj, outProj, x, y)

위와 같이 projections 를 설정해주고, 값을 넣어주면 변환된 값을 얻을 수 있다.

profile
hello world :)

0개의 댓글