'idl'에 해당되는 글 1건

  1. 2008.10.23 GPS용 한국 지형도 만들기 1
DEM(Digital Elevation Model) 파일을 Garmin GPS에서 사용가능한 맵 파일(.img)로 만드는 절차. 구글에서 한국어 웹을 뒤져보면 여러 종류의 문서를 찾을 수 있다. 키워드: gps hgt img

이 과정이 정말 눈물겹다. 올해 2월에 컴퓨터를 처음 구입한 이유가 이 작업을 하기 위해서였는데, 그 때는 변환이 잘 안 되었다. full map을 한 번 만드는데 12시간 이상 걸리니까 옵션 몇 개 바꾸고 테스트 하면서 작업하면 계산상 일주일이 우습게 간다. 그래서 그 동안 죽 시간이 안 나서 미뤘다. 조씨가 자전거에 마운팅해서 쓸 GPS를 구입하면서 쓸만한 지형도를 찾길래 그런 건 없으니 스스로 만들라고 했다. 고생하길래 절차를 알려주는 김에 나도 만들었다. 이 작업으로 이틀을 보냈다. 나도 울고 컴퓨터도 울고 GPS도 울었다.

흠... 다음은 open street map에 관해 써봐야지...

DEM 파일을 ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SRTM3/Eurasia/ 에서 다운로드 한다. 또는, http://cafe.daum.net/GPSGIS에 가입하여 외부 자료실을 뒤져보면 된다. 아래는 남한 관련 다운 받을 파일 리스트.
N33E126.hgt.zip
N34E125.hgt.zip
N34E126.hgt.zip
N34E127.hgt.zip
N34E128.hgt.zip
N35E126.hgt.zip
N35E127.hgt.zip
N35E128.hgt.zip
N35E129.hgt.zip
N36E126.hgt.zip
N36E127.hgt.zip
N36E128.hgt.zip
N36E129.hgt.zip
N37E124.hgt.zip
N37E125.hgt.zip
N37E126.hgt.zip
N37E127.hgt.zip
N37E128.hgt.zip
N37E129.hgt.zip
N37E130.hgt.zip
N38E124.hgt.zip
N38E125.hgt.zip
N38E126.hgt.zip
N38E127.hgt.zip
N38E128.hgt.zip
변환에 사용한 소프트웨어
IDL 7.0을 설치하고(가입해야 다운 받을 수 있으며 license가 없어도 사용가능하다) Dem2Topo를 다운 받아 압축을 풀고 dem2topo.sav 파일 실행
 
사용자 삽입 이미지
  • 이미지를 클릭하면 확대해서 볼 수 있음
  • Select DEM File(s)을 눌러 여러 .hgt 파일을 한꺼번에 선택한다.
  • Minor 를 10m로 해야 GPS에서 해안선이 그나마 덜 뭉개지고 보인다. 아쉽게도 dem2topo는 해안선을 만들어 주지 않는다. Sea Level Threshold를 0m로 해두어도 해안선이 안 보이는 것은 마찬가지다.
  • Contour Simplify Factor를 크게 하면 윤곽선(contour)이 볼품 없어진다. 파일 크기는 줄어들고 처리시간은 늘어난다. 반대로 factor를 0으로 설정하면 윤곽선 정보를 건드리지 않아 처리시간은 많이 줄지만 파일 크기는 늘어난다. 10이 추천하는 값이다.
  • Plot Setting의 Enable Plot와 Enable bitmap을 꺼두면 화면 업데이트가 없어지므로 속도가 향상된다.
  • Create .mp file(s) 버튼을 눌러 polished file을 생성한다.
사용자 삽입 이미지
  • MapEdit를 실행하여(별도 설치과정 없음), .mp 파일을 여러개 읽어 들인다.
  • 읽어들인 파일을 묶어 단일 파일로 저장하면 변환에 필요한 시간을 줄일 수 있다.
  • 단, 묶어서 저장하는 파일 크기가 지나치게 크면 cGPSMapper에서 변환에 실패할 수 있다.
  • 경험치: 150MB 크기의 .mp 파일을 변환할 때 cGPSMapper가 메모리를 2GB쯤 사용. 250MB의 .mp 파일은 메모리 오류가 나며 변환 실패. 따라서, 개개의 .mp 파일 크기가 클 때는 파일을 merge 하지 않는 것이 바람직.
MapEdit에서 파일을 로드한 후 File->Properties메뉴로 들어간다.
사용자 삽입 이미지
Header Tab에서 unique id(자릿수 맞춰 적당한 숫자)와 Friendly Name을 세팅.
사용자 삽입 이미지
Levels Tab에서 Bits 및 Map Source zoom 레벨을 선택한다. 이 값은 Dem2Topo 프로그램의 help를 보면 기정의되어 있다(사용자가 변경할 수 없다).
사용자 삽입 이미지
  • cGPSMapper Tab을 세팅한다.
  • TRE Size: 값이 크면 GPS에서 지도를 그리는데 시간이 많이 걸린다. default=500
  • RGN Limit: 한 TRE에서 그릴 Region의 갯수를 지정. GPS가 지도를 그리는데 영향을 주지 않는다고 하며 1024를 추천된다. 나는 500으로 선택.
  • Map is Transparent: Y 또는 S를 선택해야 한다. N이면 지도가 GPS에 표시되지 않는다. S는 cGPSMapper 095 이전 버전에서는 선택할 수 없다.
  • Preprocessing: Generalization만 선택하면 작업 시간을 30% 줄일 수 있다. topo map인 관계로 intersection을 굳이 처리하지 않아도 된다.
  • 아울러, Tools->Generalize->Nodes of All Polylines & Polygons 가 cGPSMapper의 generalization과 같은 역할을 하는 듯.
MapEdit의 File->Export 메뉴로 cGPSMapper를 실행하거나, 도스 커맨드 라인에서 실행한다. 전자는 변환이 간편한 대신 여러 개의 파일을 변환할 때 시간이 오래 걸린다.
사용자 삽입 이미지
작업 시간이 엄청나게 오래 걸리는 까닭에, 커맨드 라인에서 여러 개의 .mp 파일을 변환하기 위한 .bat 파일을 아래와 같은 형태로 만들어 밤에 걸어 두고 푹 자는 것이 바람직해 보인다.
 
run.bat의 예제:
cgpsmapper N33-34.mp
cgpsmapper N35.mp
cgpsmapper N36.mp
cgpsmapper N37.mp
cgpsmapper N38.mp
  • 배치 파일을 실행할 때는 cgpsmapper.exe와 sendg.dll 파일이 같은 디렉토리에 있어야 한다.
  • cGPSMapper를 실행하기 전에 Windows에서 불필요한 프로그램을 종료해 둔다.
  • cGPSMapper는 엄청난 양의 메모리를 사용하고 변환에 시간이 많이 걸리는 프로그램이다. 따라서 메모리가 적은 시스템에서는 가상 메모리의 크기를 늘려주어야 할 수도 있다. 
  • AND 브리즈번 4200 2.4GHz, 2GB(가상 메모리는 4GB)에서 한반도 전체를 변환 했을 때 6시간 가량 걸렸다. 097c 버전은 094 버전에 비해 2배 이상 속도가 향상되고 중간에 뻑나던 것들이 사라졌다 -- 예전에는 변환 안되던 것이 지금은 된다. -_-
사용자 삽입 이미지
  • 변환이 끝나면 .img 파일이 생성된다. 변환된 파일들은 sendmap20.exe에서 불러들여 gps에 넣을 수 있다. gps에 기존에 있던 파일은 지워진다.
  • Garmin MapSource 최신 버전에는 원래 GPS 장치에 있는 세계 지도보다 좀 더 정밀한 세계지도(basemap)가 포함되어 있다. img를 생성할 때 이 파일을 함께 합치면 해안선과 고속도로, 주요 도로 및 도시명(POI) 검색이 가능하다. 보통 c:\garmin\TRIPWPT4\TRIPWPT4.img 파일이다.
  • 버튼 중 'Create GMAPSUPP.IMG'을 선택하면 GPS 없이 GMAPSUPP.IMG 파일을 생성한다. GPS를 USB Storage Mode로 전환하고 GMAPSUPP.IMG 파일을 GPS의 \garmin 디렉토리에 복사할 수도 있다.
  • 기존에 있는 파일을 그대로 놔두고 추가하려면 MapWel 프로그램(http://www.mapwel.biz/)의 Mapwel uploader를 사용한다.
사용자 삽입 이미지
  • 변환된 파일을 Garmin MapSource에서 보려면 MapsetToolkit을 실행하여,
  • .img 파일이 있는 디렉토리를 선택하여 add한다. 이때 .img 파일들은 파일이름이 숫자 8자리로 지정되어 있어야 한다. (예: 34000000.img)
  • Mapset Directory는 img 파일을 정리하여 저장할 디렉토리를 선택한다(Garmin 디렉토리 아래가 좋고, 하나 생성)
  • Family ID는 Mapset Installed에서 겹치지 않는 id를 선택하거나 기존 것을 삭제하고 지정한다.
  • TYP Files는 공란으로 남겨둔다. 그외 나머지는 알아서 적당히 세팅한다.
  • Options에서 Install in Mapsource와 Balnk overview maps를 선택한다.
  • Start 버튼을 누르면 해당 디렉토리에 여러 파일들이 생성된다.
사용자 삽입 이미지
MapsetToolkit을 실행하여 생성된 파일들
사용자 삽입 이미지
Garmin MapSource에서 본 지도의 모습 (지형도에 나타난 덕유산 종주 코스)
 
작업에 걸린 시간: (AMD 브리즈번 4200 2.4Ghz, 2GB)

  • .hgt -> .mp 변환: 30분 가량 (CSF Contour Simplification Factor에 영향을 받는다)
  • gpsMapEdit로 .mp 파일 수정: 40분 가량.
  • .mp -> .img 변환: 1시간 20분 가량
생성하여 합성한 전체 지형도 파일 크기: 100~110MB

Dem2Topo의 Contour Simplification Factor에 따른 영향 평가

CSF=20: 817MB (한반도 전체 .mp 파일 크기), 112MB (생성된 .img 크기)
CSF=0: 873MB, 120MB
Vista HCx Screen Capture Vista HCx Screen Capture

GPS에서 본 화면. 왼쪽이 CSF=20, 오른쪽이 CSF=0. 차이가 미미하다.
Vista HCx Screen Capture Vista HCx Screen Capture

CSF=0일 때 외곽선 각이 약간 더 부드럽지만 그렇다고 큰 차이가 나는 것은 아니다.

Vista HCx Screen Capture Vista HCx Screen Capture Vista HCx Screen Capture
왼쪽부터 CSF가 10,20,0. Dem2Topo가 추천하는 값은 10인데 그 값 그대로 사용해도 무방할 듯.
,