座標と高さの基礎
GNSSが出す「位置」はどこの何? — 楕円体・ジオイド・標高、そしてECEF座標
高さの3兄弟 — GPSの高さが地図の標高とズレる理由
楕円体高 h(GNSSの生の高さ)= 標高 H(地図・水準の高さ)+ ジオイド高 N。日本付近はN≈+30〜40mなので、スマホのGPS高度は地図の標高より約30〜40m高く出る(アプリ側で補正していなければ)。
緯度の正体 — 地球は楕円体、緯度は「法線の角度」
図は扁平を誇張(実際の地球は1/298しか潰れていない)。私たちが使う「測地緯度」は地面の法線(垂直方向)の角度で、地球中心への方向(地心緯度)とは最大約0.19°ずれる。
ECEF座標変換器 — GNSSの中身はXYZ
ECEF(地球中心・地球固定)直交座標。原点は地球の重心、X軸は経度0°方向、Z軸は北極方向。衛星位置の計算もPVT解も内部はすべてこのXYZで行われ、最後に緯度経度・高さに変換して表示される。初期値は東京駅付近。
ジオイドとは — 「海面を延長した高さゼロの面」
ジオイドは、平均海面を陸地の下まで延長したと考えたときの面で、重力の等ポテンシャル面(水が流れない面)です。地球内部の質量分布のムラを反映して、のっぺりした楕円体に対して±100m近くうねっています。標高(海抜)はこのジオイドから測った高さで、「水がどちらに流れるか」と整合する実用的な高さです。
一方、GNSSは幾何学しか知らないので、のっぺりした楕円体からの高さ h を出します。両者の差がジオイド高N: h = H + N。受信機や地図アプリはジオイドモデル(日本なら国土地理院のジオイド・モデル)を使ってHに直しています。「GPSの高度がなんか変」の正体は、たいていこのNの補正の有無です。
測地系 — 同じ場所でも座標は1つじゃない
緯度経度は「どの楕円体を、どこに置くか」という約束(測地系)があって初めて決まります。GNSSの世界標準はWGS84(GPSの座標系)で、国際的なITRFとcmレベルで整合。日本の公式測地系JGD2011もITRF系で、実用上WGS84とほぼ一致します。
歴史の教訓: 2002年まで使われた旧日本測地系(Tokyo Datum)は明治時代の天文測量に基づく独自系で、WGS84と約400mもずれていました。古い地図データやカーナビの座標変換バグの原因として有名です。また、プレート運動で日本は年間数cm動いており、精密測位では「いつの座標か(元期)」まで気にする世界になります。
GNSSと座標の流れ — 受信機の中で何が起きているか
①航法メッセージのエフェメリスから衛星位置をECEF XYZで計算 → ②擬似距離の連立方程式を解いて受信機位置もECEF XYZで得る → ③それを楕円体の式で緯度経度・楕円体高に変換 → ④ジオイドモデルで標高に直して表示。
NMEAのGGAセンテンスには楕円体高でなく「標高+ジオイド高」が別々のフィールドで入っています(受信の流れ参照)。緯度経度の測位誤差を「メートル」で感覚化するには: 緯度1秒≈31m、東京付近の経度1秒≈25m、と覚えておくと便利です。