GPS/GPS일반2012. 10. 7. 18:00

GPS를 운용하다보면 위경도 좌표 이외에 TM 좌표라는 용어도 자주 접하게되는 데, 나 자신을 포함해서 대부분의 유저들이 적잖이 헷갈려하는 것 같아 한번 정리해 보고자 한다.

 

먼저 TM좌표계라는 용어는 Tranverse Mercator 투영법으로 제작한 지도의 직교좌표계를 일컫는다. 또, 직교좌표계는 TM좌표계 이외에도 격자좌표계(Grid Coordinate Sytem), 직각좌표계 또는 평면직각좌표계라 불리기도 한다. 직교좌표계는 x축과 y축으로 이루어지는 2차원 그래프를 상기하면 이해가 빠를 것으로 생각되는데, x축은 원점을 통과하는 수평선, y축은 원점을 통과하는 수직선으로 간주하면 그래프상의 어떤 점의 위치는 (x, y)로 표현될 것이다. x값은 원점에서 동쪽으로 멀어질수록 커지고 서쪽으로 멀어질수록 작아지며, y값은 북쪽으로 멀어질수록 커지고 남쪽으로 멀어질 수록 작아진다. 여기서의 x와 y의 값은 지정된 단위(meter)로 표시되는 원점으로부터의 거리이다.

 

참고로, UTM이란 Universal Tranverse Mercater의 약어로서 미국이 군사적 목적으로 고안한 방식인데 적도둘레를 따라 경도 6도간격으로 적도와 중앙자오선과의 교점에서 투영하여 TM좌표계를 글자 그대로 전세계(Universal)로 확장하여 전세계의 어디에서라도 지도의 일관성을 유지하도록 한 것이다.

 

아래는 국토지리원의 1 : 25,000 지형도의 지도검색 Service를 화면 캡쳐한 그림인데, 중부원점의 중앙자오선인 동경 127도선이 수직인 것을 알 수 있다.

 

 

같은 내용을 동해원점에 관해 도시한다면 아래 그림처럼 될 것이다.(동해원점의 중앙자오선인 동경 131도선이 수직이다.)

 

2009년 12월 10일 부터 시행되고 있는 우리나라의 직교좌표계(2009 TM)은 원점을

 
서부원점 38˚ 00˙ 00˝ N, 125˚ 00˙ 00˝ E
중부원점 38˚ 00˙ 00˝ N, 127˚ 00˙ 00˝ E
동부원점 38˚ 00˙ 00˝ N, 129˚ 00˙ 00˝ E
동해원점 38˚ 00˙ 00˝ N, 131˚ 00˙ 00˝ E

 

의 위치로 각각 정하고 동향가산값은 200,000m, 북향가산값은 600,000m 로 부여하였다.

 

동향, 북향가산값은 우리나라전역에서 TM좌표 값이 음수로 출현하지 않도록 하기위해 우리나라전체를 커버할 수 있도록 설정해 놓은 값이다. 그런데, 여기서 한가지 의문이 든다. 그렇다면 현재의 TM좌표계상에서 (0, 0)인 점을 원점으로 삼으면 될텐데, 왜 위의 그림에서 보는 것처럼 한참 떨어진 점을 원점으로 정하고 생각하기 귀찮은 가산값을 부여했을까?

우리나라의 영토는 한반도와 그 부속도서로 한다고 헌법에 명시되어 있는 바, 우리나라 영토 전체에 걸쳐 왜곡을 최소화하고 또 왜곡이 평균화된 지도를 제작하기 위해서, 우리나라 지형에 가장 적합한 투영법인 Tranverse Mercator Projection을 채택하고 투영의 원점을 위의 그림과 같이 북위 38도선을 위도원점으로하여 4군데로 지정한 것으로 추측된다.

따라서 지도제작에 필요한 각종 수식의 계수가 위의 원점이 기준이 될 수밖에 없을 터이므로 TM좌표계의 원점도,

원점을 (0, 0)의 값으로 지정하여서는 원점으로부터 以南, 以西의 범위에서는 위치좌표값이 음수로 표시되게 되므로 그것을 방지하기위하여 가산값을 부여하여,

위의 그림과 같이 원점을 지정하게 된것으로 추측한다. 하지만, 이것은 그야말로 순전히 본인의 추측에 불과하므로 혹시라도 틀렸다면 알려 주시면 고맙겠다.

 

또, 이전에는 북향가산값이 500,000m(제주도 및 인근 섬의 경우는 550,000m)였으나 2009TM에서 600,000m로 통일/변경되었다. 하지만, 산에서 만나게 되는 이정표나 산림청에서 제공하는 등산로등에서는 아직도 북향가산값을 500,000 m 로 사용하고 있는 듯하니 Data를 이용할 때에는 적용한 기준이 무엇인지 확인해보고 사용하는 주의가 필요하다. 하지만 그렇다 하더라도 여기서 원리만 파악해두면 쉽게 활용할 수 있게될 것으로 생각한다. 생각해 보면 국가기관 사이에서도 그 기준을 달리하여 좌표를 표기하고 있으니 한심한 일임에 분명하고, 지금같은 세상에서는 맘만 먹으면 누구든 취득할 수 있는 지도자료도 구태의연한 법률로 묶여있어 우리가 납부한 세금으로 제작한 자료들도 주는대로 받을 수밖에 없지만 선량한 우리 백성들이 이해하기로 하자.

 

원점이 4군데이지만, 이중 한가지만 파악하게 되면 나머지도 모두 동일할 것이므로 여기서는 중부원점에 대해서만 생각해 보기로 한다.

 

그림만 보고도 조금만 생각해보면 모두 알 수 있어, 설명이 불필요할지도 모르지만 내 자신이 알고 있는 바를 정리해보는 차원에서 적어본다.

 

중부원점은 북위 38도, 동경 127도의 점으로 지정되어 있는데, 네덜란드 왕립해군에서 개발 무료 배포하고 있는 PCTranse로 산출해 봤더니, 중부원점을 통과하는 동경 127도의 자오선상에서 적도로부터 4,207,498.02 m 북쪽에 있는 것으로 산출되었다. 또 원점을 통과하는 동서방향의 수평선(위도선이 아님)상에서 수평좌표가 0인 점(0, 600000)의 위경도 좌표는 북위 37도 58분 40.687675초 동경 124도 43분 25.55453초 로 산출되었다.

 

 

여기서 우리가 주목해야될 값은  4,207,498.02 인 바,

Grobal Mapper, OziExplorer와 같은 Software는 TM좌표계를 설정할 경우 중앙자오선의 경도(동경 127도)와 함께 위도원점(북위 38도)도 설정을 할 수 있으므로 주어진 값 그대로 동향가산값 200,000 북향가산값 600,000을 입력하면 간단하게 설정을 마칠 수 있지만,

GPS Track Maker나 Garmin 기기등에서 TM좌표계 혹은 User Grid를 설정시에는 위도원점은 설정할 수 없고 중앙자오선의 경도만 입력할 수밖에 없으므로 북향가산값은 계산으로 값을 산출하여 입력해야만 하기 때문이다.

 

중앙자오선의 경도만 입력할 수 있는 Software에서는 북향값을 적도(위도 0도)를 기준으로 한 값 즉 적도로부터 해당위치까지의 거리(x, y 좌표값 중에서 y 값)을 사용자에게 보여주는데, 그럼 중부원점 기준의 북향값을 얻을 수 있는 북향가산값만 입력하면 된다는 결론을 내릴 수 있다.

 

Software의 TM설정 Dialog에서 중앙자오선의 경도를 동경 127도, 동향가산값을 200000, 북향가산값을 0, Scale Factor를 1로 설정한 경우에 중부원점의 TM 좌표는 200000, 4,207,498.02 일 것인데, 여기서 4,207,498.02인 북향값을 600,000으로 표시되도록만 하면 된다는 이야기.

그럼 산수만 할 줄알면 누구나 간단하게 답을 구할 수 있을 것이다.

 

4,207,498.02 - y' = 600000, y' = 4,207,498.02 - 600000 = 3,607,498.02

 

따라서 중앙자오선상에서 적도로 부터 북쪽으로 3,607,498.02 meter 떨어진 점의 y 값이 0으로 산출되도록 설정해주면, 중부원점기준의 y 값이 표시되게 될 것이다. 이 경우 Software에서 위도 원점이 적도로 부터 3,607,498.02 m Floating 되었다고도 생각할 수 있을 것이다. 즉, 동경 127도의 자오선상에서 적도로부터 북쪽으로 3,607,498.02 m 인 점이 TM좌표로 200000, 0 이 되는 것이다.

 

위의 값은 아래 그림에서 설명하는 바와 같이 PCTrans를 이용하여 바로 산출할 수도 있다.

 

 

원점의 북향가산값이 500000인 경우는 그에 맞춰 생각해보면 쉽게 Software에서 입력해야할 북향가산값을 산출할 수 있을 것이다.

 

또, 사용자가 임의로 원점을 지정할 수 있는 순수한 의미에서의 User Grid도 동일한 원리이므로 조금만 생각해보며 쉽게 설정할 수 있을 것으로 생각한다.

 

 

GTM에서는 위에서 거론한 값을 -(음수)로,

Garmin 기기에서는 +(양수)로 입력하는 것이 의문스러워졌는데,

읽어들이는 파일내의 좌표를 입력한 가산값의 위치를 기준(0)으로 하는 값으로 인식하는 점과 GPS 위치를 입력한 가산값의 위치를 기준(0)으로 하여 표시하는 점에서 완전히 동일하지만 프로그래밍의 차이로 이해하기로 했다.

Posted by Amisan