NMEAの緯度経度はどの測地系? — 「3541.1234」度分表記の読み方と、平面直角座標にするまで

,

NMEAの緯度経度はどの測地系? — 「3541.1234」度分表記の読み方と、平面直角座標にするまで

NMEAの緯度経度はどの測地系? — 「3541.1234」度分表記の読み方と、平面直角座標にするまで

NMEA 0183が出す緯度経度はWGS84です。そして「3541.1234」は35.411234度ではなく、35度41.1234分(=35.685390度)です。 この2点を取り違えたまま平面直角座標に変換すると、前者は数十cm〜数m、後者は数十kmずれます。ログを開いて最初に確かめるのはこの2つです。


NMEAの1行はこう読む

GNSS受信機やロガーが吐くテキストは、たいてい NMEA 0183 形式です。位置が入っている代表的な文(センテンス)が GGA です。

$GNGGA,041530.00,3541.1234,N,13952.7890,E,4,12,0.8,45.6,M,36.7,M,1.0,0123*7A

区切りごとに意味が決まっています。

# 意味
1 041530.00 UTC時刻(日本時間ではない)
2 3541.1234 緯度 ddmm.mmmm
3 N 北緯/南緯
4 13952.7890 経度 dddmm.mmmm3桁始まり)
5 E 東経/西経
6 4 測位の質(後述)
7 12 使用衛星数
8 0.8 HDOP
9 45.6 アンテナの高さ(平均海面上=ジオイド上)
11 36.7 ジオイド高
13 1.0 補正データの経過時間(秒)
14 0123 基準局ID

先頭の $GN は使った衛星システムを表す識別子で、GPSのみなら $GP、GLONASSなら $GL、複数を混ぜていれば $GN になります。位置の中身は識別子で変わりません。

移動体では RMC 文もよく使われます。こちらは緯度経度に加えて日付・速度・進行方向を持ちますが、緯度経度の書式はGGAと同じです。


落とし穴1:ddmm.mmmm は十進度ではない

いちばん多い事故がこれです。小数点があるので十進度に見えますが、小数点の左2桁(経度は3桁)が「度」、残りが「分」です。

緯度 3541.1234
  → 35度 + 41.1234分
  → 35 + 41.1234 / 60
  → 35.685390 度

経度 13952.7890
  → 139度 + 52.7890分
  → 139 + 52.7890 / 60
  → 139.879817 度

そのまま 35.411234 と読んでしまうと、緯度で約30km南にずれた点になります。表計算に貼って気づかないまま納品、という失敗が起きやすいところです。

見分け方:小数点の左が4桁(緯度)または5桁(経度)なら度分表記です。十進度なら緯度は2桁、経度は3桁しかありません。

なお、度分秒(35°41'07.4")とはさらに別の書式です。3つの書式の相互変換は度分秒と十進度の変換の記事にまとめています。


落とし穴2:小数の桁数で精度が丸められている

ddmm.mmmm の分の小数が4桁だと、刻みは 0.0001分 です。緯度方向で1分は約1852mなので、

  • 0.0001分 ≒ 約18.5cm

RTKでcm級に測っていても、この書式に落とした時点で18cm刻みに丸められます。受信機によっては小数5桁(ddmm.mmmmm)で出力でき、その場合は約1.9cm刻みになります。

cm級の成果をNMEAログから起こすなら、出力桁数の設定を先に確認するのが鉄則です。桁数が足りないログは、あとから精度を戻せません。数値の桁と精度の関係は座標値の桁数と丸めの記事でも扱っています。


落とし穴3:9番目の高さは「楕円体高」ではない

GGAの9番目は 平均海面上の高さ、11番目が ジオイド高 です。楕円体高が欲しいときは足します。

楕円体高 = 45.6 + 36.7 = 82.3 m

ただし、ここで使われているジオイド高は受信機内蔵の全球モデルの値です。日本の標高計算に使う国土地理院のジオイド・モデルとは一致しません。NMEAの高さをそのまま標高として成果に書くのは避けてください。 楕円体高に戻したうえで、日本のジオイド・モデルで標高に直します(→楕円体高から標高への変換)。


測位の質(6番目)を必ず見る

同じログの中に、cm級の行とメートル級の行が混ざっているのが普通です。6番目の値で選別します。

状態 期待できる精度
0 測位できていない
1 単独測位 メートル級
2 DGPS/SBAS サブメートル級
4 RTK Fix cm級
5 RTK Float 数十cm〜m級

成果に使うのは基本的に4だけです。5(Float)が混ざったまま平均すると、cm級の点が引きずられます。抽出の段階で ,4, の行だけ残す、という前処理を入れておくのが安全です。


測地系:WGS84と日本の測地系の関係

NMEA 0183は仕様上 WGS84 で座標を出します。ここで実務者が悩むのが「では JGD2011 / JGD2024 に変換が要るのか」です。

  • 枠組みとしては、WGS84はITRFとcm以下でそろえて維持されており、JGD2011・JGD2024もITRF系に準拠しています。系統的な変換パラメータで数百m動くような関係ではありません
  • ただし元期(いつの時点の座標か)が違います。日本の測地成果は特定の元期の座標で固定されている一方、GNSSが出すのは観測した「今」の座標です。プレート運動と地殻変動のぶんだけ、年を追うごとに差が開きます

つまり、NMEAの座標を日本の測地成果としてそろえるには、測地系の変換ではなく、元期をそろえる補正(セミ・ダイナミック補正)が要るというのが結論です。この関係はWGS84とJGD2024の関係の記事で詳しく整理しています。

要求精度がメートル級なら気にしなくてよく、cm級なら避けて通れません。ログの精度がどちらなのかで、必要な手順が変わるということです。


平面直角座標にするまでの手順

GeoConverter Pro のGPS座標入力画面

  1. GGA(またはRMC)の行だけ抜き出す。他のセンテンスは位置を持たないか、重複している
  2. 測位の質でふるいにかける。cm級成果なら質=4のみ
  3. ddmm.mmmm を十進度に直す。度=小数点左2桁(経度3桁)、分=残り÷60
  4. N/S・E/W の符号を反映する。日本国内なら通常はN・Eだが、機械的に処理するなら必ず見る
  5. 元期をそろえる(cm級のとき)。観測日を元期とみなしてセミ・ダイナミック補正をかける
  6. 系を選んで平面直角座標へ。都道府県ごとに1〜19系のどれかが決まっている(→平面直角座標系の早見表
  7. 高さは別扱い。楕円体高に戻してから日本のジオイド・モデルで標高にする

GeoConverter Pro では十進度・度分秒での入力と、平面直角座標・各測地系への変換をアプリ内で完結できます。CSVでまとめて処理したい場合はCSV変換の記事の手順が使えます。


まとめ

  • NMEAの緯度経度は WGS84、書式は ddmm.mmmm(度分)。十進度と読み違えると数十kmずれる
  • 分の小数4桁は 約18cm刻み。cm級で使うなら出力桁数を先に上げておく
  • GGAの9番目は平均海面上の高さ。楕円体高は9番目+11番目。日本の標高としてはそのまま使わない
  • 6番目の測位の質でふるいにかける。成果に使うのは基本 4(RTK Fix) だけ
  • 日本の測地成果にそろえるのに要るのは、測地系の変換ではなく 元期をそろえる補正

出典

  • 国土地理院「測量計算サイト」 https://vldb.gsi.go.jp/sokuchi/surveycalc/
  • 国土地理院「日本測地系2011・測地成果」 https://www.gsi.go.jp/sokuchikijun/
  • 内閣府「みちびき(準天頂衛星システム)」 https://qzss.go.jp/

センテンスの構成とフィールド番号は NMEA 0183 の一般的な実装に基づく記載です。実際の出力項目・桁数は受信機の機種と設定で異なるため、必ず自機の仕様書で確認してください。記載は2026年8月時点の情報に基づきます。


次に確認する


入門から通しで読むなら: 『日本の測地系がわかる本』 — 旧日本測地系から JGD2024 まで、座標がズレる理由と実務での扱いを1冊にまとめました(Kindle Unlimited 対応)


開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

トップへ戻る