20.1. GPS 플러그인
20.1.1. GPS란?
GPS(Global Positioning System)는 GPS 수신기를 가지고 있다면 누구나 전 세계 어디에서든 자신의 위치를 정확하게 찾을 수 있는 위성 기반 시스템입니다. GPS는 예를 들어 비행기, 배, 그리고 도보여행자들의 항법 보조 장치로 사용됩니다. GPS 수신기는 위성이 발신한 신호를 통해 경도, 위도, 그리고 (경우에 따라) 고도를 계산합니다. 수신기 대부분은 (웨이포인트 라는) 위치와, 계획된 루트 를 구성하는 일련의 위치와, 수신기의 시계열 이동을 추적하는 트랙로그 또는 트랙 을 저장할 수 있습니다. 웨이포인트, 루트, 그리고 트랙은 GPS 데이터의 세 가지 기본 피처 유형입니다. QGIS는 웨이포인트를 포인트 레이어로, 루트 및 트랙을 라인스트링 레이어로 표시합니다.
참고
QGIS는 GNSS 수신기도 지원하고 있습니다. 그러나 이 문서에서는 계속 GPS라는 용어를 사용할 것입니다.
20.1.2. 파일에서 GPS 데이터를 불러오기
GPS 데이터를 저장하기 위한 수십 개의 서로 다른 파일 포맷이 있습니다. QGIS가 이용하는 포맷은 GPX(GPS eXchange format)라고 불리는데, 동일 파일 내에 웨이포인트, 루트 및 트랙을 얼마든지 담을 수 있는 표준 교환(interchange) 포맷입니다.
GPX 파일을 불러오려면, 먼저 플러그인을 불러와야 합니다. 메뉴 옵션을 선택하면 플러그인 관리자 대화창이 열립니다. GPS Tools 체크박스를 활성화하십시오. 이 플러그인을 불러오고 나면, 툴바와 메뉴에 각각 다음 작은 휴대용 GPS 기기 아이콘이 나타날 것입니다:
GPS 데이터를 작업하기 위해, QGIS 예시 데이터셋에 qgis_sample_data/gps/national_monuments.gpx
라는 예시 GPX 파일을 제공하고 있습니다. 예시 데이터에 관한 자세한 정보는 예시 데이터 다운로드 를 참조하세요.
GPS Tools 아이콘을 클릭한 다음 Load GPX file 탭을 선택하십시오. (그림 20.1 을 참조하세요.)
메뉴 옵션을 선택하거나 툴바에 있는Browse… 버튼을 눌러
qgis_sample_data/gps/
폴더를 찾은 다음,national_monuments.gpx
GPX 파일을 선택하고 Open 버튼을 클릭하십시오.
Browse… 버튼으로 GPX 파일을 선택한 다음, 체크박스를 통해 해당 GPX 파일에서 불러오고자 하는 피처 유형을 선택하십시오. OK 버튼을 누르면 각 피처 유형을 개별 레이어로 불러올 것입니다. national_monuments.gpx
파일은 웨이포인트만 담고 있습니다.
참고
GPS 장치는 데이터를 서로 다른 좌표계로 저장할 수 있습니다. 사용자의 GPS 장치 또는 웹사이트에서 GPX 파일을 다운로드해서 QGIS로 불러올 때, GPX 파일에 저장된 데이터가 WGS 84(위도/경도) 좌표계를 사용하고 있는지 확인해야 합니다. QGIS가 이 좌표계를 기대하고 있고, 또 WGS 84가 공식 GPX 사양이기도 합니다. GPX 1.1 사양 을 참조하세요.
20.1.3. GPSBabel
QGIS가 GPX 파일을 사용하기 때문에, 다른 GPS 파일 포맷을 GPX로 변환할 방법이 필요합니다. 자유 소프트웨어 GPSBabel을 이용하면 많은 포맷들을 변환할 수 있습니다. GPSBabel은 https://www.gpsbabel.org 에서 다운로드할 수 있습니다. 이 프로그램은 사용자 컴퓨터와 GPS 기기 간에 GPS 데이터를 전송할 수도 있습니다. QGIS는 이런 작업에 GPSBabel을 사용하므로, 이 프로그램을 설치하도록 권장합니다. 하지만, 단순히 GPX 파일에서 GPS 데이터를 불러오는 것만이 목적인 경우 이 프로그램이 필요하진 않습니다. GPSBabel 1.2.3 버전이 QGIS가 공식적으로 지원하는 버전이지만, 이후 버전이라도 아무 문제없이 사용할 수 있을 것입니다.
20.1.4. GPS 데이터 가져오기
GPX 파일이 아닌 파일에서 GPS 데이터를 가져오려면, GPS 도구 대화창에 있는 Import other file 탭에서 불러올 수 있습니다. 이 탭에서 가져오고자 하는 파일(및 파일 유형), 해당 파일에서 가져오고자 하는 피처 유형, 변환된 GPX 파일을 저장하고 싶은 위치, 그리고 새 레이어의 명칭을 지정합니다. 모든 GPS 데이터 포맷이 세 가지 피처 유형을 모두 지원하지는 않기 때문에, 여러 포맷의 경우 한두 가지 유형만 선택할 수 있을 것입니다.
20.1.5. GPS 데이터를 기기에서 다운로드
QGIS는 GPSBabel을 이용해서 GPS 기기로부터 새 벡터 레이어로 데이터를 직접 다운로드할 수 있습니다. 이 작업은 GPS 도구 대화창의 Download from GPS 탭에서 (그림 20.2 참조) 이루어집니다. 이 탭에서 GPS 기기의 유형, 기기가 연결된 포트(또는 사용자의 GPS 기기가 지원하는 경우 USB), 다운로드하고자 하는 피처 유형, 데이터를 저장할 GPX 파일, 그리고 새 레이어의 명칭을 지정합니다.
GPSBabel은 GPS device 옵션에서 선택된 기기 유형을 이용해서 사용자의 GPS 기기와 통신을 시도합니다. 사용자 GPS 기기와 호환되는 유형이 없을 경우, 새 유형을 생성할 수 있습니다. (새 기기 유형 정의 를 참조하세요.)
Port 는 사용자의 OS가 사용자 컴퓨터에 있는, GPS 기기가 연결된 물리적 포트를 참조하기 위해 사용하는 파일명 또는 기타 명칭일 수도 있습니다. USB를 장비한 GPS 장치의 경우 그냥 USB일 수도 있습니다.
OK 버튼을 누르면, 데이터가 기기에서 다운로드되어 QGIS에 레이어로 나타날 것입니다.
20.1.6. GPS 데이터를 기기로 업로드
GPS 도구 대화창의 Upload to GPS 탭에서, QGIS에 있는 벡터 레이어로부터 GPS 기기로 데이터를 직접 업로드할 수도 있습니다. 이 작업을 하려면, 그냥 업로드하고자 하는 레이어를 (GPX 레이어여야만 합니다) 선택한 다음, 사용자 GPS 기기 유형과 기기가 연결된 포트(또는 USB)를 지정하십시오. 다운로드 도구와 마찬가지로, 사용자 기기가 목록에 없을 경우 새 기기 유형을 생성할 수 있습니다.
QGIS의 벡터 편집 능력과 결합한 경우 이 도구가 매우 유용합니다. QGIS에 맵을 불러와서, 웨이포인트 및 루트를 생성한 다음, 사용자 GPS 기기로 업로드해서 사용할 수 있습니다.
20.1.7. 새 기기 유형 정의
수많은 유형의 GPS 기기들이 있습니다. QGIS 개발자들이 모든 유형을 테스트할 수는 없으므로, Download from GPS 및 Upload to GPS 탭에 있는 기기 유형 목록에서 사용자의 GPS 기기와 호환되는 유형을 찾을 수 없는 경우, Download from GPS 및 Upload to GPS 탭에 있는 Edit Devices 버튼을 클릭하면 열리는 GPS 기기 편집기를 통해 사용자 자신의 기기를 정의해서 목록에 추가할 수 있습니다.
새 기기를 정의하려면, New Device 버튼을 눌러 기기 명칭과 사용자 기기용 다운로드 및 업로드 명령어를 입력한 다음, Update Device 버튼을 클릭하기만 하면 됩니다. 이 명칭은 ─ 어떤 문자열을 입력하더라도 ─ Download from GPS 및 Upload to GPS 탭에 있는 기기 유형 목록에 추가될 것입니다. 다운로드 명령어란 기기에서 데이터를 다운로드해서 GPX 파일로 저장하는 데 사용되는 명령어입니다. 대부분의 경우 GPSBabel 명령어일 테지만, GPX 파일을 생성할 수 있는 명령 줄 프로그램이라면 어떤 명령어라도 사용할 수 있습니다. QGIS가 명령어를 실행하는 경우 %type
, %in
, and %out
키워드를 대체할 것입니다.
%type
은 웨이포인트를 다운로드하는 경우 -w
로, 루트를 다운로드하는 경우 -r
로, 트랙을 다운로드하는 경우 -t
로 대체될 것입니다. 이 문자열은 GPSBabel에 어떤 피처 유형을 다운로드할지 알려주는 명령 줄 옵션입니다.
%in
은 Download from GPS 탭에서 선택한 포트명으로, %out
은 다운로드한 데이터를 저장할 GPX 파일명으로 대체될 것입니다. 따라서, gpsbabel %type -i garmin -o gpx %in %out
라는 다운로드 명령어로 (‘Garmin serial’ 이라는 사전 정의된 기기 유형에 쓰이는 실제 다운로드 명령어입니다) 새 기기 유형을 생성한 다음 /dev/ttyS0
포트에서 웨이포인트 데이터를 다운로드해서 output.gpx
파일로 저장하는 경우, QGIS 키워드를 대체해서 gpsbabel -w -i garmin -o gpx /dev/ttyS0 output.gpx
라는 명령어를 실행할 것입니다.
업로드 명령어는 기기로 데이터를 업로드하는 데 사용되는 명령어입니다. 사용하는 키워드는 동일하지만, 업로드의 경우 %in
을 업로드하는 레이어를 위한 GPX 파일명으로, %out
을 포트명으로 대체합니다.
https://www.gpsbabel.org 웹사이트에서 GPSBabel 및 사용할 수 있는 명령 줄 옵션에 관해 더 많은 것을 알 수 있습니다.
새 기기 유형을 생성하고 나면, Download from GPS 및 Upload to GPS 탭에 있는 기기 유형 목록에 추가될 것입니다.
20.1.8. GPS 장치에서 포인트/트랙 다운로드
QGIS는 앞에서 설명한 대로 GPSBabel을 사용해서 프로젝트에 포인트/트랙을 직접 다운로드합니다. QGIS는 처음부터 Garmin 기기에서 다운로드할 수 있는 사전 정의된 프로파일을 보유하고 있습니다. 안타깝게도 다른 프로파일을 생성하지 못 하게 하는 버그 #6318 이 있기 때문에, QGIS가 GPS 도구를 통해 직접 다운로드할 수 있는 기기는 현재 Garmin USB 장치뿐입니다.
20.1.8.1. Garmin GPSMAP 60cs
https://www8.garmin.com/support/download_details.jsp?id=591 에서 Garmin USB 드라이버를 다운로드해서 설치하십시오.
장치를 연결하십시오. GPS 도구 대화창을 열고 type=garmin serial
및 port=usb:
로 지정하십시오. Layer name 및 Output file 텍스트 란에 명칭을 입력하십시오. 가끔 특정 폴더에 저장하는 데 문제가 있을 수도 있는데, c:\temp
같은 폴더를 사용하면 대부분 해결됩니다.
먼저, https://wiki.openstreetmap.org/wiki/USB_Garmin_on_GNU/Linux 에서 설명하고 있는 대로 기기의 권한 관련 문제를 해결해야 할 수도 있습니다. 이를 위해 다음 규칙을 담고 있는 /etc/udev/rules.d/51-garmin.rules
파일을 생성해볼 수 있습니다:
ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="666"
그 다음, garmin_gps
커널 모듈을 불러오지 않았다는 것을 다음과 같이 확인해야 합니다:
rmmod garmin_gps
이제 GPS 도구를 사용할 수 있습니다. 안타깝게도 버그 #7182 때문에 QGIS가 제대로 작동하기 전에 보통 몇 번 정도 멈출 겁니다.
20.1.8.2. BTGP-38KM DataLogger (블루투스만)
앞에서 언급한 버그 때문에 QGIS 안에서 데이터를 다운로드할 수 없기 때문에, 명령 줄 인터페이스에서 GPSBabel을 사용하거나 또는 GPSBabel의 인터페이스를 사용해야 합니다. 다음과 같은 명령어가 잘 작동합니다:
gpsbabel -t -i skytraq,baud=9600,initbaud=9600 -f COM9 -o gpx -F C:/GPX/aaa.gpx
윈도우에서와 동일한 명령어를 (또는 GPSBabel GUI를 사용하는 경우 동일한 설정을) 사용하십시오. 리눅스 상에서 다음과 같은 메시지가 반환되는 일이 자주 있을 수도 있습니다:
skytraq: Too many read errors on serial port
이때 그냥 기기를 껐다가 켠 다음 다시 시도해보면 됩니다.
20.1.8.3. BlueMax GPS-4044 DataLogger (블루투스 및 USB 모두)
참고
윈도우 7에서 이 기기를 이용하려면 먼저 드라이버를 설치해야 합니다. http://blu-max.com/downloads.html 페이지에서 알맞은 드라이버를 다운로드하십시오.
GPSBabel을 통해 다운로드하는 경우, USB 및 블루투스 모두 항상 다음과 같은 오류를 반환합니다:
gpsbabel -t -i mtk -f COM12 -o gpx -F C:/temp/test.gpx
mtk_logger: Can't create temporary file data.bin
Error running gpsbabel: Process exited unsuccessfully with code 1
USB 연결
USB 케이블을 연결한 다음, dmesg
명령어로 어떤 – 예를 들면 /dev/ttyACM3
같은 – 포트를 사용하고 있는지 알아내십시오. 그리고 평소와 같이 CLI 또는 GUI에서 GPSBabel을 사용하면 됩니다.
gpsbabel -t -i mtk -f /dev/ttyACM3 -o gpx -F /home/user/bluemax.gpx
블루투스 연결
블루투스 기기 관리자(Blueman Device Manager)를 사용, 기기와 페어링해서 시스템 포트를 통해 사용할 수 있도록 한 다음, GPSBabel을 실행하십시오.
gpsbabel -t -i mtk -f /dev/rfcomm0 -o gpx -F /home/user/bluemax_bt.gpx