LRTKレフィクシア株式会社

NMEA測位データが読めないときの5つの確認手順

この記事で扱うNMEA測位データは、GNSS受信機から出力されるNMEA 0183系のテキストセンテンスを想定します。NMEA 0183では、位置、時刻、速度、測位状態などを外部へ渡す際に、印字可能なASCII文字で構成されたセンテンスが利用されます。本稿はこのカンマ区切りのテキストセンテンスを対象とし、CANベースの別系統規格は対象外です。

測位機器と記録装置を接続したり、測位結果を自社システムへ取り込んだりする現場では、NMEAデータを直接確認する場面もあります。

ところが、実際の運用では「文字列は届いているのに解析できない」「座標らしい数字は見えるのに地図上へ表示できない」「昨日まで読めていたデータが突然読めなくなった」といった問題が起こります。こうした症状は、単純な通信断だけでなく、通信条件、文の種類、空欄フィールド、時刻や座標の表現方法、測位状態など複数の原因によって発生します。

NMEA測位データを扱うときに重要なのは、最初からプログラムや受信機の故障と決めつけないことです。まず「データが届いているか」、次に「1文が正しく受信できているか」、そのうえで「必要な項目を正しく解釈できているか」という順番で確認すると、原因を切り分けやすくなります。

この記事では、測位実務でNMEAデータが読めないときに確認したい内容を5つの手順に分けて解説します。単にNMEAの文字列を説明するだけではなく、現場で起こりやすい通信条件の不一致や座標変換の間違い、測位状態の見落としまで含めて整理します。

NMEA測位データが「読めない」とはどの状態か

NMEA測位データが読めないという言葉には、いくつか異なる状態が含まれます。最初に症状を分けて考えることで、その後の確認が効率的になります。

最も分かりやすいのは、接続しても一切文字が表示されない状態です。この場合は、通信ポート、接続先、電源、配線、通信速度など、データ解析より前の部分に原因がある可能性があります。NMEAの文法を詳しく調べても、そもそもデータが届いていなければ問題は解決しません。

次に多いのが、文字は表示されるものの、意味のあるNMEA文として見えない状態です。意味不明な文字が連続したり、一部だけ記号が混ざったりする場合は、通信速度などの設定が一致していない可能性があります。また、同じ通信経路で文字形式以外のデータも出力されている場合、NMEAだけを想定した表示では正常に見えないことがあります。

三つ目は、NMEAらしい文字列は表示されているのに、解析プログラムへ取り込めない状態です。この場合は、文頭の識別子、改行処理、カンマ区切り、空欄フィールド、チェックサムなどを確認する必要があります。人が見ると正常に見える文字列でも、プログラム側が特定の形式だけを前提にしていると読み取りに失敗します。

さらに、解析自体には成功しているものの、座標が想定外の場所へ表示されるケースもあります。この場合は通信ではなく、緯度経度の変換や東西南北の符号、座標系、高さ基準などの解釈に問題がある可能性があります。

そして注意したいのが、数値は正常に読めているものの、その時点では有効な測位結果ではないケースです。NMEA文が出力されているからといって、必ずしも高品質な測位が成立しているとは限りません。受信機が衛星を十分に利用できていない場合や、補正情報を利用できていない場合でも、何らかの文字列が出力されることがあります。

したがって「読めない」という問題を解決するときは、通信、文字列、解析、座標変換、測位品質という異なる段階を分けて確認することが重要です。

NMEA測位データの基本構造を理解する

NMEA測位データを扱う前に、最低限の構造を理解しておくとトラブルを切り分けやすくなります。

GNSS受信機から出力される一般的なNMEA 0183系の文は、人が読める文字列として構成されています。多くの測位関連文では文頭に記号があり、その後にトーカーIDと呼ばれる識別部分と文の種類を示す部分が続き、各データがカンマで区切られています。トーカーIDは個々の受信機を一意に識別する装置番号ではなく、送信機器の種類やGNSSの系統、複数の衛星測位システムを組み合わせた出力などを表すために使われます。

たとえば、ある文には時刻、緯度、南北方向、経度、東西方向、測位状態、利用衛星数、高さに関係する値などが順番に並びます。また別の文には、日付、速度、進行方向などが含まれます。衛星配置や精度指標を扱う文、視野内の衛星に関する情報を複数行に分けて送る文もあります。

重要なのは、すべてのNMEA文に同じ情報が入っているわけではないことです。座標を取得したいのに衛星情報を表す文だけを解析しても、目的の緯度経度を取得できないことがあります。反対に、緯度経度だけ必要なのに、すべての文を保存してから処理しようとすると、実装が必要以上に複雑になることがあります。

また、近年のGNSS受信では複数の衛星測位システムを組み合わせることが一般的です。そのため、トーカーIDが古い実装で想定していた文字列と異なることがあります。

たとえば受信側プログラムが、特定のトーカーIDで始まる測位文だけを受け付けるように作られていると、同じ種類の測位文であってもトーカーIDが変化しただけで除外されることがあります。

NMEAを読むプログラムでは、必要以上に文頭全体を固定文字列として判定するよりも、どの部分がトーカーIDで、どの部分が文の種類なのかを分けて理解することが重要です。

もう一つ重要なのが空欄です。NMEAでは、値が存在しないフィールドでもカンマ自体は残ることがあります。そのため、連続したカンマは必ずしも異常ではありません。

この空欄を解析時に削除してしまうと、その後のフィールド番号がすべてずれます。高さだと思って読んだ値が別の項目だったり、測位状態だと思った値が衛星数だったりする可能性があります。

NMEAデータを安定して扱うには、文字列を眺めるだけではなく、区切り位置を維持したまま各フィールドを読むことが基本です。

確認手順1:NMEA文が最後まで受信できているか確認する

NMEA測位データが読めないとき、最初に確認したいのは1文が正常な形で受信できているかです。

最初から緯度や経度の値を確認するのではなく、まず数十行程度の生データをそのまま保存します。画面表示だけでは、一瞬発生する欠落や文字化けを見落としやすいためです。

正常に近い状態であれば、複数の文が一定の周期で繰り返し出力されます。文の種類によって出力周期が異なる場合もありますが、同じ測位文が時間とともに更新されていく様子を確認できます。

ここで確認したいのが、行の途中で切れていないかです。

たとえば毎回異なる位置で文が途中終了している場合、受信バッファ、読み取り処理、通信量などに原因がある可能性があります。逆に、必ず同じ位置で切れているのであれば、保存領域や文字列長に固定的な制限を設けている可能性があります。

次に、複数のNMEA文が1行として連結されていないか確認します。

NMEAを受信するプログラムでは、改行を利用して1文ずつ分離することが一般的です。しかし、受信処理が改行を正しく認識していない場合、複数の文が連続した一つの巨大な文字列として扱われることがあります。

反対に、データを一定文字数ごとに強制分割している実装では、一つのNMEA文が途中で二つに分かれます。シリアル通信では、1回の読み取り処理で必ずNMEA文が1行丸ごと取得できるとは限りません。

そのため、受信処理では「今回取得したデータ」をそのまま1文とみなすのではなく、改行などの終端を確認しながら文を組み立てる必要があります。

チェックサムを利用している場合は、その確認結果も切り分けに役立ちます。通信途中で文字が欠落したり別の文字へ変化したりすると、受信した内容とチェックサムが一致しなくなることがあります。

ただし、チェックサムエラーが発生したからといって、すぐにGNSS受信機そのものが故障しているとは限りません。配線、ノイズ、通信処理、文字列変換、保存時の改変など複数の要因を確認する必要があります。

ログをファイルへ保存するときには、受信直後のデータと加工後のデータを分けて残す方法も有効です。

受信直後には正常だったにもかかわらず、CSVへの変換やデータベース登録後に文字列が変化していることがあります。生データを保存しておけば、通信段階の問題なのか、その後のソフトウェア処理の問題なのかを判断しやすくなります。

この手順では、座標値の正しさを判断する必要はありません。まず「1文を欠けずに取得できているか」という一点を確認します。

確認手順2:通信条件と接続方法を確認する

NMEAらしい文字がまったく見えない、または大量の文字化けが発生している場合は、通信条件を確認します。

特に確認したいのが通信速度です。

NMEA 0183では基本となるシリアル伝送条件が定められていますが、実際のGNSS機器では、NMEA互換センテンスを用途や出力データ量に応じた別の通信速度で出力できる場合があります。そのため、「NMEAだからこの通信速度のはず」と固定的に判断するのではなく、利用する機器の仕様と設定を確認し、送信側と受信側の条件を一致させる必要があります。

出力する文の種類を増やしたり、測位更新周期を高くしたりすると、必要な通信量も増えます。多くの文を高い頻度で出力しているにもかかわらず通信容量が不足すると、受信側で欠落が発生する可能性があります。

その場合、通信自体は成立しているため、最初は正常に見えることがあります。しかし連続運転すると時々行が欠けたり、一部の文だけ取得できなかったりするため、単純な通信断より原因を見つけにくくなります。

通信速度だけではなく、データビット、パリティ、ストップビットなど、通信に関係する設定も送信側と受信側で整合している必要があります。

さらに注意したいのが電気的な接続方式です。

同じNMEA 0183系のセンテンスを出力するGNSS機器であっても、実装されている物理的な通信インターフェースまで必ず同じとは限りません。標準規格に沿った差動インターフェースのほか、機器やモジュールによっては別のシリアル信号や変換器を介してNMEA互換センテンスを扱う構成もあります。

文字列形式がNMEAであることと、端子をそのまま直結できることは別の問題です。

通信方式や信号レベルが一致していない状態で接続すると、まったく読めないだけではなく、不安定に読める状態になることもあります。配線や端子仕様は、それぞれの機器仕様に基づいて確認する必要があります。

接地状態や配線距離、周囲の電気設備から受ける影響も確認対象です。

建設現場や測量現場では、発電機、重機、電源装置、長い通信ケーブルなどが近くに存在することがあります。机上では正常だった構成が現場では不安定になる場合、通信経路を含めた確認が必要です。

また、一つの出力ポートから文字形式と別形式のデータを同時に出力できる受信機もあります。受信側が文字列だけを想定している場合、別形式のデータが混ざることで表示が乱れて見えることがあります。

この手順では、ソフトウェア解析へ進む前に、送信側と受信側が同じ条件で確実に通信していることを確認します。

確認手順3:文の種類とフィールド位置を確認する

通信が正常でNMEA文も途切れず届いている場合は、次に解析対象となっている文の種類を確認します。

NMEA 0183系には複数の文があり、それぞれ含まれる情報が異なります。

代表的な測位関連文では、位置と測位状態に関係する情報、日付や時刻と移動情報、衛星配置、精度指標、視野内衛星などが別々に扱われます。

そのため、「NMEAは受信できているのに緯度経度を取得できない」という場合、そもそも現在出力されている文に目的の座標項目が存在するかを確認する必要があります。

受信機の設定変更によって出力文が変わることもあります。

たとえば以前は位置情報を含む文を出力していたものの、設定変更後に衛星情報中心の出力へ変わっていれば、同じ通信ポートから文字列が流れていても既存プログラムでは座標を取得できません。

次に確認するのが文頭です。

複数の衛星測位システムを利用するGNSSでは、トーカーIDが異なることがあります。古い解析処理では特定のトーカーIDだけを受け付けている場合があり、文の種類自体は同じでもトーカーIDが変わると無視されます。

そのため、文字列全体を固定一致させる前に、トーカーIDと文種類を分けて確認することが重要です。

さらに重要なのが空欄フィールドの扱いです。

たとえばカンマが連続している部分を「不要な記号」と判断して削除すると、その後の列位置が変わります。NMEAでは、値が存在しない場合でもフィールド位置を維持するために空欄が残ることがあります。

解析プログラムでは、空欄を含めた列番号を維持しなければなりません。

ここは表計算形式へ変換するときにも注意が必要です。変換処理によって空欄列が削除されると、元のNMEAと列番号が一致しなくなります。

測位データを長期保存する場合は、解析済みの座標だけではなく、必要に応じて元の文も保存しておくと原因調査がしやすくなります。

また、測位文の意味を独自の推測だけで判断するのは避けたほうが安全です。同じような数値が並んでいても、フィールドによって単位や意味が異なります。

受信機側の設定や利用しているNMEA仕様との対応を確認し、どの文の何番目のフィールドを利用しているのかを明確にします。

確認手順4:緯度・経度・時刻・高さの読み方を確認する

NMEAの文字列を解析できても、地図上で位置がずれる場合があります。ここでは通信ではなく数値の解釈を確認します。

特に間違いやすいのが緯度経度です。

NMEAで扱われる代表的な緯度経度表現は、一般的な地図システムで使われる十進度とそのまま同じではありません。

緯度では度に相当する部分と分に相当する部分が連続して記録され、経度では経度側の桁数を考慮して分ける必要があります。

たとえば緯度を十進度へ変換するときは、度の部分を取り出し、分の部分を60で割って加えます。単純に小数点の位置だけを変更してはいけません。

この変換を行わず、NMEAの数値をそのまま十進度として地図へ渡すと、実際とは大きく異なる場所へ表示されます。

南北と東西の方向も重要です。

緯度経度を符号付きの十進度へ変換するシステムでは、北緯と東経を正、南緯と西経を負として扱うことが一般的です。方向を示す文字を無視すると、場所によっては大きく異なる位置へ表示されることがあります。

日本国内だけで試験していると北緯と東経しか扱わないため、この問題に気づかないことがあります。海外データや試験データを扱う可能性がある場合は、方向情報を必ず変換処理に含めます。

時刻にも注意が必要です。

NMEAの代表的な測位文で扱われる時刻にはUTCを基準とするものがあります。受信した時刻をそのまま現地時刻として記録すると、現場写真や施工記録と時刻が一致しなくなる可能性があります。

国内の現場記録と照合するのであれば、NMEA側の時刻基準と、システムで保存する時刻基準を明確にしておくことが重要です。

また、文によっては時刻は含まれていても日付が含まれていない場合があります。日付と時刻を別の文から組み合わせるシステムでは、日付変更前後の処理にも注意が必要です。

高さについては、さらに慎重な確認が必要です。

GNSSで扱われる高さには、楕円体を基準とする高さと、ジオイドを基準とする標高に関係する高さなどがあります。代表的な測位文では、アンテナ高度とジオイド分離に関係する値が別々のフィールドに含まれる場合がありますが、どの値を現場で必要とする高さとして利用するかは、受信機の仕様、使用する測位方式、システム設計、現場の高さ基準によって確認する必要があります。

単に「NMEAに高さの数字があるから標高として使う」という判断は避ける必要があります。

工事測量や出来形確認では、高さ基準の違いが大きな問題になります。設計図書や基準点で使用している高さと、GNSSから取り出した値の意味が一致しているか確認しなければなりません。

NMEAの解析に成功した後も、座標と高さを実際の既知点で照合する工程を入れることが重要です。

確認手順5:測位状態と受信品質を確認する

最後に確認したいのが、測位状態です。

NMEA文が正しく読めていて緯度経度も取得できているからといって、その座標が目的の精度を満たしているとは限りません。

GNSS受信機は、測位品質が十分でない状況でも何らかの位置情報を出力する場合があります。そのため、位置の数値だけを保存するのではなく、その時点の測位状態を一緒に確認することが重要です。

位置関連のNMEA文には、測位状態を判断するための情報が含まれる場合があります。ただし、数値コードや表現の意味を独自に固定してしまうのは避けたほうが安全です。

利用する機器や対応している仕様を確認し、そのフィールドがどの測位状態を表しているのかを確認します。

RTK測位を利用する場合も同様です。

補正情報を受信していることと、高精度な解が安定して得られていることは同じではありません。現場では衛星配置、遮蔽物、反射、通信状態などの影響を受けます。

建物の近く、橋梁の下、樹木の多い場所、切土や法面の近くなどでは、上空が十分に開けた場所と同じ条件で測位できるとは限りません。

衛星数についても、単純に多ければ必ず高精度になるわけではありません。

どの方向に衛星が分布しているか、信号が安定しているか、反射した信号の影響を受けていないかなども測位結果に関係します。NMEAには衛星配置や精度指標を確認できる文もありますが、単一の数値だけで測位品質を断定しないことが重要です。

現場で有効なのは、既知点での確認です。

正常に読めていると思われるNMEA座標を既知点で取得し、期待する位置との整合を確認します。時間を空けて再度計測したり、一度場所を離れてから戻って再計測したりすると、再現性も確認できます。

NMEAを読めるようにすることと、測位結果を信頼できる状態にすることは別の作業です。

データ解析が成功した後は、必ず測位品質の確認へ進むことが大切です。

症状別にNMEA測位データが読めない原因を切り分ける

ここまでの5手順を、実際の症状に当てはめて考えてみます。

画面に何も表示されない場合は、まず通信ポート、電源、配線、接続先、送信設定を確認します。NMEA解析以前の問題である可能性が高いためです。

意味不明な文字が大量に表示される場合は、通信速度などの条件が一致しているかを優先して確認します。文字形式以外のデータが同じ経路へ出力されていないかも確認対象です。

NMEAらしい文字列は表示されるものの、アプリケーションが「データなし」と判定する場合は、文頭の条件や対象文の種類を確認します。

特定のトーカーIDを含む文だけを受け付ける実装になっていないか、必要な文が現在も出力されているかを見ると原因を絞り込みやすくなります。

一定時間だけ読めて途中からエラーになる場合は、通信量と受信処理を疑います。

受信データの処理が追いつかずバッファにデータが蓄積すると、しばらく正常に動作した後に遅延や欠落が発生することがあります。測位更新頻度や出力文数を増やした直後に問題が始まった場合は特に注意が必要です。

座標が毎回同じようにずれる場合は、緯度経度の変換、座標系、高さ基準、アンテナ位置などを確認します。

一方、座標のずれ方が毎回変わる場合は、測位環境や受信状態も確認する必要があります。

時刻だけが合わない場合は、UTCと現地時刻の取り扱いを確認します。

日付変更付近だけ記録がおかしくなるのであれば、日付を含む文と時刻だけを含む文の組み合わせ方にも注意します。

このように、「NMEAが読めない」という一つの言葉でまとめず、どの段階まで正常なのかを確認することで調査範囲を大幅に絞り込めます。

プログラムでNMEAを解析するときに起こりやすい問題

NMEA測位データを独自システムへ取り込む場合、受信機側ではなくプログラム側に原因があるケースも少なくありません。

代表的なのが、1回の受信処理を1文とみなしてしまう実装です。

通信では、受信したデータが必ず行単位で渡されるとは限りません。半分だけ届くこともあれば、複数行がまとめて届くこともあります。

そのため、受信したデータを一時的に保持し、終端を確認してから1文として処理する仕組みが必要です。

次に注意したいのが空欄フィールドです。

文字列分割処理によっては、末尾の空欄や連続した区切りを想定どおり保持できないことがあります。解析後のフィールド数を確認し、空欄が正しく残っているか検証します。

文頭の固定判定もよくある原因です。

過去に作成されたプログラムでは、特定のトーカーIDを含む文だけを対象にしている場合があります。新しいGNSS構成や複数衛星系を利用した出力では、同じ種類の文でもトーカーIDが変化する可能性があります。

必要なのが位置情報の文であるなら、トーカーIDと文種類を適切に分離して処理する設計が必要です。

数値変換も確認します。

緯度経度、時刻、速度、高さなど、フィールドによって形式や単位が異なります。すべてを同じ方法で数値化すると誤りにつながります。

空欄をゼロへ自動変換する処理にも注意が必要です。

値が取得できていないことと、本当に値がゼロであることは意味が異なります。欠測値をゼロとして保存すると、後から見ると正常値と区別できなくなります。

チェックサムエラー時の処理も決めておく必要があります。

エラーになった文をそのまま座標として採用するのか、破棄するのか、ログだけ保存するのかを明確にします。現場システムでは、異常値を静かに採用してしまう状態より、異常として記録できる状態のほうが原因調査に役立ちます。

現場でNMEA測位トラブルを減らすための運用方法

NMEAの問題は、発生してから調べるより、正常時の状態を記録しておくことで大幅に調査しやすくなります。

まず、正常に動作しているときの生データを保存しておきます。

トラブル発生時のデータと並べて比較すれば、文種類が変わったのか、トーカーIDが変わったのか、空欄が増えたのか、測位状態だけが変わったのかを確認できます。

次に、GNSS受信機の設定変更を記録します。

通信速度、出力周期、出力文、測位設定などを変更した場合は、変更前後が分かるようにします。

現場では「誰かが設定を変えたらしい」という状態になると、原因調査に時間がかかります。設定内容と変更日時を記録しておくだけでも再現性が高まります。

通信機器を交換した場合も記録が必要です。

ケーブルや変換器を変更した直後に問題が起きた場合、解析プログラムより接続経路を優先して確認できます。

既知点での確認結果を保存することも重要です。

NMEA文が正常に読めたという記録だけでは、位置が正しかったか判断できません。同じ現場で利用するのであれば、既知点での測位結果とその時点の測位状態を保存しておくと比較しやすくなります。

また、トラブル発生時には生データを上書きしないようにします。

正常化のために設定を変更する前に、問題が起きている状態のログを確保します。設定変更後には症状が消えてしまい、原因を再現できなくなることがあるためです。

NMEAの値だけで測位結果を判断しない

NMEAは測位結果を外部へ渡すために便利な形式ですが、NMEAの一つの値だけを見て測位の良否を判断するのは適切ではありません。

たとえば座標が出力されていることと、その座標が施工管理や測量で必要な精度を満たしていることは別です。

利用衛星数が多いことも、一つの参考情報にはなりますが、それだけで高精度を保証するものではありません。

高精度測位では、上空視界、衛星配置、反射環境、補正情報、アンテナ設置状態、時間的な安定性などを総合的に確認する必要があります。

特に建物際や構造物付近では、衛星信号が遮られたり反射したりすることがあります。表示されている測位状態だけを見るのではなく、実際の位置再現性も確認します。

現場で重要なのは、同じ点を再び計測したときに同程度の位置へ戻れるかという視点です。

既知点で確認し、一定時間後に再測し、必要に応じて別の時間帯でも比較すると、NMEA文字列だけでは見えにくい測位状態の変化を把握しやすくなります。

高さを利用する場合はさらに注意が必要です。

平面位置が問題なく見えていても、高さ基準の解釈が異なると施工管理上は大きな差になります。NMEAの高さ関連フィールドを採用する場合は、現場で採用している高さ基準との関係を事前に整理します。

測位記録を後から確認できる状態にする

NMEAトラブルの調査では、その場で画面を見ただけの記憶より、後から確認できる記録のほうが役立ちます。

最低限残しておきたいのは、いつ、どこで、どのような条件で測位したかという情報です。

同じNMEAデータでも、開けた場所で取得したのか、建物際で取得したのかによって評価が変わります。

測位時刻と現場位置を記録しておけば、その時間帯の作業内容や周囲の状況とも照合できます。

また、測位点だけでは現場状況が分かりにくい場合は、写真記録と組み合わせる方法も有効です。

たとえば既知点で正常だった記録と、構造物付近で不安定になった記録を写真と位置情報で残しておけば、後日ログを解析するときに状況を思い出しやすくなります。

トラブルの解消後には、原因と対処も記録します。

「通信速度を合わせたら直った」「トーカーIDの固定判定を修正した」「空欄フィールドを保持するようにした」「現場の測位位置を変更した」といった情報を残しておけば、同じ症状が再発したときの対応時間を短縮できます。

NMEA測位データの扱いは、単なる文字列解析ではなく、現場条件を含めた記録管理として考えることが重要です。

NMEA確認の負担を減らしたい現場でLRTK Phoneを活用する

NMEAを直接扱う方法は、外部システムとの連携や独自のデータ処理を行いたい場合に有効です。一方で、現場担当者の目的が「現在位置を確認したい」「測位した地点を記録したい」「現場写真と位置を対応させたい」ということであれば、必ずしも日常的にNMEAの生データを解析する必要があるとは限りません。

NMEAの直接運用では、通信条件、文の種類、座標変換、時刻変換、測位状態の判定、ログ保存などを個別に管理する必要があります。システム開発では柔軟性が高い一方、現場作業だけを目的にすると管理項目が増えやすくなります。

測位作業そのものを効率化したい場合は、現場向けの測位環境としてLRTK Phoneを活用する方法もあります。

現場では、座標だけを取得して終わりではなく、その位置がどこなのか、何を確認した点なのか、いつ測ったのかといった情報を後で追えることが重要です。

測位結果と現場記録を同じ作業の流れで整理できれば、NMEAログだけを見ながら現場状況を推測する負担を減らしやすくなります。

もちろん、独自システムとのデータ連携など、NMEAそのものを利用する必要がある場合は、今回紹介した5つの確認手順で通信から測位品質まで段階的に切り分けることが重要です。

一方、目的が現場での位置確認や記録、測位情報の活用であれば、データ形式を扱うこと自体を目的にせず、LRTK Phoneを含めて現場全体の運用をどのように簡略化できるかという視点で検討するとよいでしょう。

まとめ

NMEA測位データが読めないときは、いきなり座標変換やプログラム修正から始めるのではなく、問題がどの段階で発生しているかを順番に確認することが重要です。

最初に確認するのは、NMEA文が欠けずに受信できているかです。行の途中で切れていないか、複数文が連結されていないか、受信後の処理で文字列が変化していないかを確認します。

次に、通信速度や接続方法など、送信側と受信側の条件を確認します。NMEAという文字列形式が同じでも、通信条件や電気的なインターフェースまで自動的に一致するわけではありません。

通信が正常であれば、対象となる文の種類とフィールド位置を確認します。特定のトーカーIDだけを固定的に受け付ける実装や、空欄フィールドを削除する処理は、NMEA解析で問題を起こしやすい部分です。

さらに、緯度経度の表現方法、UTCを基準とした時刻、高さの意味を確認します。文字列の解析に成功していても、単位や基準を誤れば正しい測位結果として利用できません。

最後に、測位状態を確認します。NMEAから座標が取得できることと、その位置が実務で必要な品質を満たしていることは別です。既知点との照合や再測を行い、実際の再現性まで確認することが大切です。

NMEAを直接利用する必要がある現場では、生データ、設定変更、測位状態、現場条件を記録しておくと、問題発生時の切り分けが容易になります。

一方、NMEA文字列の解析そのものが目的ではなく、現場で位置を確認し、測位結果や写真などの記録を実務へ活用することが目的であれば、より現場作業に適した測位方法を選ぶことも重要です。位置情報を日々の現場記録につなげたい場合は、LRTK Phoneを活用した測位運用も選択肢の一つとして検討できます。

現場を3Dで残して、あとから測る。
実際の画面と動画で使い方を確認できます。

LRTK Phoneの使い方・実例を見る
資料請求導入相談
現場をスマホで3DスキャンLRTK Phone実例を見る