QGIS 持って外に出よう !!
ＦＯＳＳ４G 2018 Hokkaido コアデイ
2018年6月23日(土)土地家屋調査士

中村浩司

QGIS を GNSS ロガー として使用する
・ 使用機器・ 配線
・ ドライバ & 評価ソフトウェア（u-center）のインストール
・ u-center の設定
・ NMEA（エヌメア）について
・ QGIS を GNSS ロガー として使用する・ GPS情報パネル （QGIS の標準機能）
・ GNSS_Logger_Plugin （外部プラグイン）・ 機能・ pySerial のインストール
・ GNSS_Logger_Plugin のインストール
・ 操作方法使用機器
BN-220 NEO-M8N GPS GLONASS アンテナ モジュール Ublox M8030 TTL
レベル CC3D F3用
USB→TTL コンバーターモジュール アダプター モジュール CP2102 シリアル変換

配線DTR
RXI
TXO
VCC
CTS
GND

ケーブルはBN-220に附属のものが使用できます。

GPS側 － USB側
GND － GND
TX－ RXI
RX－ TXOVCC － VCC

ドライバ ＆ 評価ソフトウェア のインストール
CP210x USB－UART ブリッジ VCP ドライバ のインストール
https://jp.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers「Windows 7/8/8.1/10 (v6.7.5) 用ダウンロード」 からダウンロードしてください。

u-center Windows (Windows版GNSS評価ソフトウェア) のインストール
https://www.u-blox.com/ja/product/u-center-windows「u-blox GNSS Standard Driver」もインストールされます。

u-center の設定
１．メニューの Receiver → Port で 「COMx」 を選択します。
（xは、デバイスマネージャーで表示されるCP210x のCOMポート番号です。）

２．Receiver → Baudrate で、ボーレートを選択します。
「9,600」 に設定します。

３．Receiver → Generation で 「u-blox M8/8」 を選択します。

u-center の設定
QZSS、BeiDouを受信するための設定
１） メニューの「View」「Configuration View」を開きます。
２） 左側の枠内の「GNSS (GNSS Config)」を選択します。
３） 「BeiDou」の「Enable」にチェックを入れます。
（QZSS には、デフォルトでチェックが入っています。）
４） 「GLONASS」の「Enable」のチェックをはずします。（ 「BeiDou」と「GLONASS」は排他利用のため）
５） Configurationウィンドウの下にある「Send」をクリックします。

u-center の設定
６） メニューの「View」「Configuration View」を開きます。
７） 左側の枠内の「MSG(messages)」を選択して、「01-30 NAV-SVINFO」を選択し、「UART1」 にチェックを入れます。
８） 「Send」 をクリックすると、 QZSS と Beidouが表示されます。

u-center の設定
９） 「CFG (Configuration)」 を開きます。
10） 「Save current configuration」 を選択します。
11） 全ての 「Device」 を選択して、「Send」をクリックするとモジュールに設定が記憶されます。

u-center

測位中の画面

～ ＮＭＥＡ（エヌメア）について ～[u-center] View → Messages View のNMEA情報

NMEAとは・ 受信機とナビゲーション機器の通信に使用されるプロトコル
・ 通信には、シリアルポートを使用
・ NMEAフォーマットの情報は、センテンスの集合
・ １つのセンテンスは、「$」 で始まり、「改行」 で終わる
・ センテンスは、 「,（カンマ）」 で区切られた単語の集合
・ GNSS受信機が出力できるデータは、機器によって異なる$GNRMC,031515.00,A,4254.97498,N,14302.31885,E,0.646,,280318,,,A*66$GNVTG,,T,,M,0.646,N,1.197,K,A*37$GNGGA,031515.00,4254.97498,N,14302.31885,E,1,08,1.16,63.1,M,28.6,M,,*78$GNGSA,A,3,12,26,14,32,25,31,29,22,,,,,1.90,1.16,1.50*1B$GNGSA,A,3,,,,,,,,,,,,,1.90,1.16,1.50*16$GPGSV,3,1,12,02,03,052,,03,11,315,22,10,00,202,,12,17,052,21*7A$GPGSV,3,2,12,14,70,266,14,16,00,233,,22,14,295,13,25,57,048,16*7C$GPGSV,3,3,12,26,28,240,21,29,47,124,16,31,57,308,18,32,61,190,21*76$GLGSV,1,1,00*65$GNGLL,4254.97498,N,14302.31885,E,031515.00,A,A*7B$GNRMC,031516.00,A,4254.97479,N,14302.31899,E,0.490,,280318,,,A*6E

左側の枠内の黒字が、BN-220 が出力しているセンテンスです。
実際に取得したログは、上のようになります。
このうち、赤字の行が位置情報を含んだセンテンスです。

～ ＮＭＥＡ（エヌメア）について ～$GNRMC,031515.00,A,4254.97498,N,14302.31885,E,0.646,,280318,,,A*66
01,02,03,04,05,06,07,08,09,10,11,12,13*14
01
02
03
04
05
06
0708
0910111213
14$GNRMC
031515.00
A4254.97498
N14302.31885
E0.646280318
A66

Time
Status
LatitudeNorthingIndicator
Longitude
EastingIndicator
Speed Over Ground
Couse Over Ground
Date
Magnetic Variation
Magnetic Variation
Mode Indicator
Checksum

センテンスの分類
3時15分15.00秒
A=Valid、V=Invalid
42度54.97498分
N=North、S=South
143度02.31885分
E=East、W=West2018年03月28日
E=East、W=West

～ ＮＭＥＡ（エヌメア）について ～$GNGGA,031515.00,4254.97498,N,14302.31885,E,1,08,1.16,63.1,M,28.6,M,,*78
01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,*1601
02
03
04
05
06
070809101112131415
16$GNGGA031515.00
4254.97498
N
14302.31885
E
108
1.16
63.1
M28.6
M78

Time
LatitudeNorthingIndicator
Longitude
EastingIndicator
StatusSVs Used
HDOP
Altitude
Unit
Geoid
Unit
Age of DGNSS Corr
DGNSS Ref Station
Checksum

センテンスの分類
3時15分15.00秒
42度54.97498分
N=North、S=South
143度02.31885分
E=East、W=West
0=Invalid,1=2D/3D,2=DGNSS,4=Fixed RTK,5=Float RTK,6=Dead Reckoning

Number of SVs used for Navigation
Horizontal Dilution of Precision
M=Meters
M=Meters

～ ＮＭＥＡ（エヌメア）について ～$GNGLL,4254.97498,N,14302.31885,E,031515.00,A,A*7B
01,02,03,04,05,06,07,08,*09
01
02
03
0405
06
0708
09

$GNGLL
4254.97498
N14302.31885
E031515.00
AA
7B

LatitudeNorthingIndicator
Longitude
EastingIndicator
TimeStatus
Mode Indicator
Checksum

センテンスの分類
42度54.97498分
N=North、S=South
143度02.31885分
E=East、W=West
3時15分15.00秒
A=Valid、V=Invalid
A=Autonomous,D=Differential,E=Dead Reckoning,N=NoneQGISをGNSSロガーとして使用する← GPS情報パネル↓ GNSS_Logger_Plugin

QGIS の GPS情報パネル「GPS情報パネル」 はメニューの 「ビュー」－「パネル」 で 「GPS情報パネル」 にチェックを⼊れると表⽰されます。

・シリアルデバイスを選択し、接続ボタンをクリックすると、現在地にターゲットスコープ型のカーソルが表示されます。
・現在地をプロットするには、トラックの自動的に点を追加するにチェックを入れます。
・ログを保存するには、ログファイルにチェックして保存フォルダ・ファイル名を設定します。

QGIS の GPS情報パネル
指定したフォルダ・ファイル名で、下のような NMEAフォーマットのテキストファイルが作成されます。
====$GNGGA,015525.00,4254.97564,N,14302.31513,E,2,11,0.65,70.0,M,28.6,M,,0000*70$GNGSA,A,3,09,50,14,27,26,16,29,21,42,23,31,,1.15,0.65,0.95*14$GPGSV,3,1,12,08,03,224,,09,14,318,25,14,07,186,12,16,62,303,27*7E$GPGSV,3,2,12,21,37,101,35,23,30,284,32,26,72,030,24,27,38,220,39*77$GPGSV,3,3,12,29,17,045,27,31,45,141,36,42,40,177,37,50,40,177,36*73$GNGLL,4254.97564,N,14302.31513,E,015525.00,A,D*7B$GNRMC,015526.00,A,4254.97559,N,14302.31506,E,0.066,,280518,,,D*6D$GNVTG,,T,,M,0.066,N,0.122,K,D*39$GNGGA,015526.00,4254.97559,N,14302.31506,E,2,11,0.87,70.1,M,28.6,M,,0000*74$GNGSA,A,3,09,50,14,27,26,16,29,21,42,23,31,,1.49,0.87,1.20*1E$GPGSV,3,1,12,08,03,224,,09,14,318,25,14,07,186,13,16,62,303,27*7F$GPGSV,3,2,12,21,37,101,35,23,30,284,32,26,72,030,24,27,38,220,39*77$GPGSV,3,3,12,29,17,045,27,31,45,141,36,42,40,177,37,50,40,177,36*73$GNGLL,4254.97559,N,14302.31506,E,015526.00,A,D*72$GNRMC,015527.00,A,4254.97554,N,14302.31499,E,0.221,,280518,,,D*67

GNSS_Logger_Plugin for QGIS 2 ／ for QGIS 3

機能・ NMEAフォーマットのログを保存します。（Sentence で NMEA を選択すると、全てのセンテンスが記録されます。）
・ NMEAの３つのセンテンス（GNRMC、GNGGA、GNGLL）から位置情報等を取得し、ログを作成・表示・保存します。
・ 取得した位置情報を２種類の空間参照系に変換します。
・ 取得した位置をリアルタイムに QGIS にプロットします。
・ 測点探索で、現在地から設定したポイント（平面直角座標系）への方向角と距離を表示します。
・ 詳細表示で、現在地の平面直角座標、標高（GNGGAの場合）、移動速度（m/分）を表示します。
・ 保存したログを GPX、SIMA、KML 形式にコンバートします。
※ 使用するにはシリアル通信のための 「pySerial」 というライブラリが必要です。

QGIS 2.18.21 に pySerial をインストールする
１． 「python.exe」 と 「python27.dll」 のコピー
C:￥Program Files¥QGIS 2.18¥bin にある上記のファイルを、C:¥Program Files¥QGIS 2.18¥apps¥Python27にコピーします。
２．「pySerial」 のインストール「GNSS_Logger_Plugin」 に同梱の 「serial_install.bat」 を管理者権限で実行するか、コマンドプロンプトで、”C:￥Program Files￥QGIS 2.18￥apps￥Python27￥python.exe” -m pip install pyserial とタイプします。

インストールが完了すると C:￥Program Files¥QGIS 2.18¥apps¥Python27¥Lib¥site-packages の下に「serial」 というフォルダが作成されます。

QGIS 2.18 に pySerial をインストールする （その2）
QGIS 2.18.x で pip が使用できない場合の代替策

Pythonのインストール
https://www.python.org/downloads/release/python-2714/

Pythonライブラリ 「pySerial」 のインストール
コマンドプロンプトで ”C:￥Python27￥python.exe” -m pip install pyserial とタイプしてエンターを押します。

インストールが完了すると C:￥Python27¥Lib¥site-packages の下に 「serial」 というフォルダが作成されます。
そのフォルダごと C:¥Program Files¥QGIS 2.18¥apps¥Python27¥Lib¥site-packages の下にコピーしてください。

QGIS 3.2 に pySerial をインストールする
１．「python36.dll」 のコピー （以下、QGIS 3.0 の場合は、3.2 を 3.0 に読み替えて下さい。）
C:￥Program Files¥QGIS 3.2¥bin にある上記のファイルを、C:¥Program Files¥QGIS 3.2¥apps¥Python36にコピーします。
２．「pySerial」 のインストール「GNSS_Logger_Plugin 3」 に同梱の 「serial_install(3.2).bat」 を管理者権限で実行するか、コマンドプロンプトで、”C:￥Program Files￥QGIS 3.2￥apps￥Python36￥python.exe” -m pip install pyserial とタイプします。

インストールが完了すると C:￥Program Files¥QGIS 3.2¥apps¥Python36¥Lib¥site-packages の下に「serial」 というフォルダが作成されます。

GNSS_Logger_Plugin for QGIS 2 をインストールする
１．ダウンロードhttps://www.n-survey.com/cgi/down/download.cgi?dl=gnss_logger_plugin
２．解凍して出来た 「GNSS_Logger_Plugin」 フォルダを
C:￥Users￥◯◯◯￥.qgis2￥python￥plugins にコピー （◯◯◯ はユーザー名）
３．QGISを起動して、メニューの 「プラグイン」「プラグインの管理とインストール」 を開き、「インストール済」 のリストにある 「GNSS_Logger_Plugin」 にチェック

GNSS_Logger_Plugin for QGIS 3 をインストールする
１．ダウンロードhttps://www.n-survey.com/cgi/down/download.cgi?dl=gnss_logger_plugin3
２．解凍して出来た 「GNSS_Logger_Plugin3」 フォルダを
C:￥Users￥ ◯◯◯￥AppData￥Roaming￥QGIS￥QGIS3￥profiles￥default￥python￥plugins にコピー （◯◯◯ はユーザー名）
３．QGISを起動して、メニューの 「プラグイン」「プラグインの管理とインストール」 を開き、「インストール済」 のリストにある 「GNSS_Logger_Plugin3」 にチェック

GNSS_Logger_Plugin for QGIS 2 ／ for QGIS 3

使⽤⽅法
１．「第1変換」 にチェックを⼊れ、 １つ⽬の変換先平⾯直⾓座標系、ポート、ボーレート（9600）、センテンス、タイム（PC=PCの現在時刻、UTC=GNSS時刻）を選択します。
（「第１変換」 は必須ではありませんが、測点探索、詳細表⽰、「SIMAに変換」 するためのログファイルを作成する際に必要です。）
２．必要に応じて「第２変換」 にチェックを⼊れ、２つ⽬の変換先空間参照系を選択します。
３．現在地をプロットする場合は、「プロット」 にチェックを⼊れます。設定タブの「センタリング」にチェックを⼊れると、プロット地点が常に地図の中⼼に移動します。
４．「測点探索」 にチェックを⼊れ、⽬標の平⾯直⾓座標値を⼊⼒すると、現在地から⽬標までの⽅向⾓（座標軸の北を0度に右回りの⾓度）と距離を表⽰します。
５．「詳細表⽰」 にチェックを⼊れると、変換した平⾯直⾓座標と、GNGGA の場合は標⾼も、移動速度をメートル毎分で表⽰します。
６．「受信開始」 ボタンをクリックすると、ボタン名が 「切断」 に変わり、コムポートが開き、受信が始まります。⽌めるときは、この 「切断」 ボタンをクリックします。
・ 受信に成功すると、プラグインフォルダに 「受信開始⽇時＋_センテンス名.log」 というファイル名でログが作成されます。
・ 設定タブのセンテンスで、「NMEA」 を選択すると、座標変換、プロット、測点探索、詳細表⽰は、チェックがされていても無効となります。
・ 受信中に QGIS がクラッシュする場合、設定タブにある 「ログ⾮表⽰」 にチェックを⼊れて受信を開始してください。画⾯には 「ログ記録中」 と表⽰されます。
・ QGIS 3.0 の場合、「ログ⾮表⽰」 の設定に係わらず、「NMEA」 は、ログの作成のみで、画⾯には表⽰されません。

GNSS_Logger_Plugin 操作画面 （ビデオ）

画像をクリックして再生します。

QGISに現在地をプロットする

コンバートしたKMLを表示する

新千歳－羽田間の往復飛行経路

コンバートしたKMLを表示する

福岡空港着陸時

新千歳空港離陸時

GNSS_Logger for Ｗｉｎｄｏｗｓ & Raspbian (Python2.7)
WindowsRaspbian

Python2.7 用の 「GNSS_Logger」 も公開しています。（QGIS上では動作しません。）
Windows と Raspbian（Raspberry Pi のOS）に対応しています。
https://www.n-survey.com/gis/GNSS_Logger/GNSS_Logger.htm