GPS/OziExplorer2009. 8. 19. 08:01

Ozi 프로그맵 구입후 제일 먼저 한 일이 Map Maching 하여 Ozi에서 사용할 수 있는 Map을 만드는 일 이었다.

 

Map Maching(Map Calibratdion)이란 맵 이미지의 Pixel좌표 몇군데 에 지리적(GeoRefrence) 좌표를 부여하여 프로그램이 이것을 기준으로 이미지내의 각 Pixel의 좌표(x,y)를 ,대응하는 지리적(GeoRefrence) 좌표로 변환하여 사용할 수 있도록 해주는 행위라고 나는 정의한다.

 

이미지에는 Vector 이미지와 Raster 이미지가 있는 데,

Vector 이미지란 학창시절 물리시간에 배웠던대로 위치, 방향, 크기를 가지는 요소로 작성된 이미지(AutoCad에서 만든 도면등)이고.

Raster 이미지란 점으로 표현한 이미지(그림판에서 사용할 수있는 BMP, JPG, GIF등의 확장자를 가지는 이미지)를 의미하는데,

Garmin 이나 Triton등의 수신기에 사용되는 전용 맵은 Vector 이미지 맵인데, Ozi에서는 맵으로 Raster 이미지를 사용한다.

 

따라서 맵매칭에 앞서 Raster Image의 Map(지도 그림)이 필요하게 되는 데, 인터넷상의 여기저기에서 구할 수 있는 맵은 해상도도 (내마음에는) 들지않았고 그나마도 이지역은 이지도 저지역은 저지도의 식으로 일관성도 없어 고생을 각오하고 모 출판사에서 출판된 1:50000지형도를 구입하여 300DPI로 몽땅 스캔하여 지도그림을 확보했다.

이 과정에서, 보유하고 있는 스캐너는 A4규격의 프린터 겸용 스캐너인데, 지도는 B4크기라서 페이지당 2개로 나누어 스캔하여 나중에 합성하여야 했는데, 각오는 했지만 시간도 억수로 걸렸고 그 수고로움은  말로 못할 정도.

그후, 스캔한 Map을 맵매칭.

Ozi의 장점중 하나라고 생각 되는데, 도음말에 자세히 나와 있다시피 Ozi는 최대 9점까지 Matching Point를 취할 수 있고  지도그림이 어느정도 왜곡되어 있어도 여러가지 방법으로 자체적으로 왜곡을 수정할 수 있는 기능이 프로그램되어 있어 상당히 정확한 맵매칭이 가능하다.

현재는 최대 포인트수(6-9점)로 매칭한 전국 지도를 PDA에 넣어 다니고 있다.

전국 어디를 가든 GPS수신기 연결하고 GPS수신기가 Fix되면 해당지역의 지도가 열리면서 현 위치를 표시해 주므로 억수로 편리하다.

또, PC에서도 Waypoint, Track 또는 Route등의 GPS자료를 쉽게 활용/작성할 수 있게 되었다.

 

그후는 매칭한 지도를 기반으로 모든 산과 유명 지형지물을 Waypoint로 생성하고, Ozi Util의 하나인 Name Search Creator를 이용하여 DataBase로 만들어 NameSearch로 찿아 원하는 지역으로 이동할 수 있도록 해두었다.

Name Search기능은 생성해둔 DataBase 파일을 열고 산이름등의 찿을 목적어를 입력하면 자동으로 해당지역이 포함된 Map 파일들을 검색하여 팝업창으로 표시해주는 데, 원하는 Map을 더블클릭하면 열리게된다.

 

다음으로, 환경지리정보서비스 웹사이트에서, 1:25000 수치지도를 기반으로 각종 생태자료가 포함된 생태자연도(PDF)를 무료로 다운 받을 수 있다는 것을 알게되어 몽땅 다운 받아서 이미지 파일(JPG)로 변환하였다.

 

생태자연도로 이미지파일을 만드는 방법은 GPS 관련 Cafe등에 많이 올라와 있으므로 생략하지만, 사용하는 프로그램의 일괄작업파일을 활용하면 상당부분 과정을 자동화하여 수고를 덜 수 있다.

 

그후 맵매칭을 하였는 데, 생태 자연도의 맵매칭에는 좀 다른 방법을 사용하였다.

 

원래 생태자연도가 수치지도 기반이고 수치지도의 도곽(Neat)좌표를 인터넷에서 구할 수 있었으므로, 이를 활용하여 최대한 맵매칭을 자동화 하였다.

 

OziExplorer의 맵매칭 과정은 먼저, oziExplorer를 실행시킨 후,

1. 맵매칭할 Image 파일을 열고(Menu - File -Load and Calibrate Map Image)

2. 전환되는 Calibration 회면에서 Matching Point를 클릭하여 지정하고 해당 Point의 경위도 좌표를 입력(2~9 Points)

3. 적당한 이름으로 Map저장.

의 순서로 진행된다.

 

또 OziExplorer에서 사용하는 Map 파일은 특정한 포맷을 가지고 생성된 txt파일이다.(즉, 메모장으로 열어 내용을 볼 수 있으며 도움말에 그 포맷에 관하여 자세히 설명되어 있다.)

 

그래서 불현듯 생각난 것이, Excel에서 txt파일 생성이 가능하고 각 도면의 도곽좌표를 이미 알고 있으므로 Excel의 VBA를 이용하면 위의 과정중 상당한 부분을 자동화 할수 있겠다는 생각이 들었다.

 

궁리해보니 아래와 같이 작동하도록 coding하면 될 것 같았다.

 

1. 각 도면의 도곽좌표를 이용하여 좌상, 우상, 우하, 좌하의 각 좌표 및 필요한 내용이 포함된 txt 파일을 메모리에 생성시킨 후,

2. 국토지리원의 1:25000 도엽명을 기반으로 한 이름을 파일명으로 부여하고 확장자를 .map으로 하여 특정폴더에 생성시킨다.

 

약간의 시행착오는 겪었지만 VBA의 도움말에서 필요한 함수를 찾아가며 노력한 결과 의도한 결과를 얻을 수 있었다.

 

Excel 파일을 작성완료 후, 실행시켰더니 수초만에 833개의 Map 파일이 생성되었다.

 

그후는 필연적인 과정으로, Ozi에서 생성된 .map 파일을 열고 매칭 포인트를 지정하고 저장.(이미 해당 지점의 좌표는 입력되어 있으므로 포인트만 지정하면 됨)

 

다소 썰렁한 인터페이스 와 사용법

 

 

주의: 1. 이미지 파일의 이름은 숫자로 된 생태자연도의 원래 이름을 사용하여 저장한 것(예: 336073.jpg)으로 간주함.

          2. 평가판의 경우에는 BMP 이외의 확장자를 가진 이미지는 사용할 수 없음.

          3. 첨부파일을 열기전, Excel의 Macro 보안 수준을 보통 이하로 설정할 것.

 

1.  위그림의 1번 셀(B2)에 생태자연도를 이미지로 변환하여 저장한 폴더의 경로를 입력(마지막 "\" 문자는 생략),

 

2. 위그림의 2번 셀(C2)에 변환한 이미지의 확장자를 입력("."은 생략하고 단지 확장자만 입력)

 

3. 위그림의 3번 셀(B4)에 생성된 .map파일이 저장될 폴더의 경로를 입력(역시 마지막 "\" 문자는 생략)

 

4. 사용하고 있는 OziExplorer가  정식버전이면 4(4점매칭), 평가판은 5(2점매칭)을 클릭

     (Tokyo는 Tokyo Datum의 좌표로, WGS84는 WGS84 Datum의 좌표로 도곽좌표가 파일에 입력된다는 것을 의미)

 

    위그림의 3번 셀(B4)에 입력한 경로의 폴더에 833개의 .map 파일이 국토지리정보원 1:25000 도엽명으로 생성된 것을 확인한다.

 

5. OziExplorer를 실행시키고 생성된 .map 파일을 불러온다.

 

6. Menu File - Check Calibration Map을 선택하여, Calibration 창을 연다.

 

7. 아래 그림에서 보다시피 위도와 경도가 이미 입력되어 있다.

      상단의 Point1(左上) 탭을 선택하여 마우스 커서가 ┼ 모양으로 바뀌면, 2번의 Zoom Wiondow에서 정확한 도곽 교차점을

     확인해가며 ┼커서의 중심을 도곽교차점에 정확히 일치시킨 후 클릭한다.

    주의: 마우스 커서가 지도 이미지 화면을 벗어나면 화살표 모양으로 바뀌는 데, 그경우엔 클릭해도 매칭포인트가 이동되지않음.

 

     정식버전은 Point 2(右上), 3(右下), 4(左下)에 대해서도 같은 작업을 반복한다.

     평가판은 Point2(右下) 만 추가로 지정해준다.

 

     매칭한 Map 파일을 저장하기위해 3번의 Save 버튼을 클릭한다.

 

 

8. 아래 그림처럼 확인 화면이 나타나면 "예"를 선택하여 저징힌다.

 

 

위에서 설명한 것 처럼 귀찮은 작업은 거의 자동으로 이루어지므로, 마우스 클릭 몇번으로 맵매칭을 완료할 수 있어 무지 편하다.

 

가지고 있는 트랙이나 웨이포인트등을 불러서 확인해 보시라.

맵매칭 포인트 지정만 실수하지 않았다면 아주 정확하게 매칭되었다는 것을 확인할 수 있을 것이다.

 

 

참고 - OziExplorer의 Map File Format

 

Map File을 NotePad로 열어보면 아래와 같은 내용을 볼 수 있는 데, 각 행의 의미는 아래와 같다.

 

OziExplorer Map Data File Version 2.2 ← 버전
358162김해.jpg ← 맵 타이틀(OziExplore의 Title Bar 및 OziExploreCE의 Status Line에 표시되는 맵식별에 관련한 내용)
D:\GPS관련\지도\EGIS25K\358162.jpg ← 맵 이미지 파일의 경로와 파일명
1 ,Map Code,
WGS 84,WGS 84,   0.0000,   0.0000,WGS 84 ← Datum 설정
Reserved 1
Reserved 2
Magnetic Variation,,,E ← 자편각
Map Projection,Latitude/Longitude,PolyCal,No,AutoCalOnly,No,BSBUseWPX,No
Map Projection등(User Grid로 설정하면 Latitude/Longitude 대신 Tranvers Mercarto로 표시됨)

아래의 Point01,xy ~ Point30,xy은 매칭포인트, 픽셀 좌표 및 대응하는 경위도

Ozi의 Calibration 화면에서는 9Point만 설정할 수 있지만, (NotePad등으로 Map File을 열고 직접입력하거나 타 SoftWare용 Map을 변환한 경우 ) 매칭 Point가 9개이상이면  모두 사용하여 계산함.  

Point01,xy,    5,    0,in, deg,  35,15.1842683,N, 128,52.365285,E, grid,   ,           ,           ,N
Point02,xy, 5381,    1,in, deg,  35,15.1842683,N, 128,59.86471,E, grid,   ,           ,           ,N
Point03,xy, 5384, 6554,in, deg,  35,7.68515333,N, 128,59.86471,E, grid,   ,           ,           ,N
Point04,xy,    0, 6554,in, deg,  35,7.68515333,N, 128,52.365285,E, grid,   ,           ,           ,N
Point05,xy,     ,     ,in, deg,    ,        ,N,    ,        ,E, grid,   ,           ,           ,N
Point06,xy,     ,     ,in, deg,    ,        ,N,    ,        ,E, grid,   ,           ,           ,N
Point07,xy,     ,     ,in, deg,    ,        ,N,    ,        ,E, grid,   ,           ,           ,N
Point08,xy,     ,     ,in, deg,    ,        ,N,    ,        ,E, grid,   ,           ,           ,N
Point09,xy,     ,     ,in, deg,    ,        ,N,    ,        ,E, grid,   ,           ,           ,N
Point10,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point11,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point12,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point13,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point14,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point15,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point16,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point17,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point18,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point19,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point20,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point21,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point22,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point23,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point24,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point25,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point26,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point27,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point28,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point29,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Point30,xy,     ,     ,in, deg,    ,        ,N,    ,        ,W, grid,   ,           ,           ,N
Projection Parameter(User Grid 원점, Scale Factor,,, 등)

Projection Setup,    38.000000000,   127.002890278,     1.000000000,       200000.00,       500000.00,,,,,
Map Feature = MF ; Map Comment = MC     These follow if they exist
Track File = TF      These follow if they exist
Moving Map Parameters = MM?    These follow if they exist
MM0,Yes
MMPNUM,4 ← 도곽 모서리의 갯수(일반적으로 4)
Corner Maker Pixel 좌표
MMPXY,1,5,0 Corner Maker Pixel 좌표(좌상)
MMPXY,2,5381,1 Corner Maker Pixel 좌표(우상)
MMPXY,3,5384,6554 Corner Maker Pixel 좌표(우하)
MMPXY,4,0,6554 Corner Maker Pixel 좌표(좌하)

MMPLL,1, 128.872801,  35.253076 ← 이미지 모서리의 경위도 좌표(좌상)
MMPLL,2, 128.997699,  35.253066 ← 이미지 모서리의 경위도 좌표(우상)
MMPLL,3, 128.997792,  35.128091 ← 이미지 모서리의 경위도 좌표(우하)
MMPLL,4, 128.872708,  35.128081 ← 이미지 모서리의 경위도 좌표(좌하)
MM1B,2.114465 ← 이미지 스케일(Meter/Pixel)

GrideLine을 설정하였을 경우 Glid Line SetUp사항이 추가됨
(아래 2줄)

Other Grid Setup
GRGRID,No,100 m,Yes,16711680,16777215,100 m,0,65535,8,1,Yes,Yes,No,x

MOP,Map Open Position,0,0
IWH,Map Image Width/Height,6524,6525

Posted by Amisan