2014年12月5日金曜日

GarminのGPSレシーバーのジオイドモデル

海面からの高さである「標高」を出力できるGPSレシーバーは内部にジオイドモデルを持っていると考えられます。島根県内のある場所でGarminのGPSレシーバーが出力する標高値が正しい標高値(三角点の標高値)よりも若干高いようなので、大学の研究室の窓で測位を行ってジオイドモデルの精度を検証してみることにしました。

使用したGPSレシーバーはGPSMAP 62という気圧高度計を使わずに高度を測る機種です。これを島根大学の建物4階の窓辺に置いてNMEAフォーマットのデータをパソコンに出力してみました。

GarminのGPSレシーバーからNMEAフォーマットのデータを取り出すにはSpannerというGarmin純正ソフトウェアを使いました。ただし、SpannerはWindows XPしかサポートしていないようなので、すでに引退させていた昔のレッツノートを引っ張り出してきました。GarminのGPSレシーバーの中でもSpannerに対応している機種は一部しかないようです。

GPSMAP 62のメニューから「Setup」「System」「Interface」と進み、そこで「Garmin Spanner」を選択します。「NMEA Sentences」は「On」、さらにこの「On」ボタンを押すとメニューが出るので、必要ならば「GSA, GSV」も「On」にします。

次にUSBケーブルでSpannerをインストールしたパソコンと接続します。「Would you like to go to Mass Storage?」に対しては「No」を選択します。Spannerを立ち上げて「GPSの検索」ボタンを押すと、接続したGPSレシーバーが検出されます。最初は何をやっても検出ができなかったのですが、USBドライバをインストールしたらできました。


GPSレシーバーで衛星が捕捉できている状態になっていたら、TeraTermなどの通信ソフトでログを収集します。実際に取得できたNMEAデータは以下のようになっていました。ここで$GPGGAの47.3mが標高で、31.6mがジオイド高です。

$GPGGA,135822,3529.1977,N,13304.1437,E,1,10,3.7,47.3,M,31.6,M,,*7D
$GPGSA,A,3,12,14,16,20,22,25,29,31,32,42,,,4.6,3.7,2.8*34
$GPGSV,3,1,10,12,03,045,30,14,70,143,25,16,11,229,00,20,04,318,32*78
$GPGSV,3,2,10,22,13,198,23,25,39,042,33,29,42,101,00,31,56,327,28*71
$GPGSV,3,3,10,32,29,281,27,42,48,168,00*79
$GPGLL,3529.1977,N,13304.1437,E,135822,A,A*49
$GPBOD,,T,,M,,*47
$GPBWC,135822,,,,,,T,,M,,N,,A*74
$GPVTG,244.5,T,252.1,M,0.0,N,0.0,K,A*20
$GPXTE,A,A,,,N,A*51
$PGRME,33.4,M,49.0,M,59.3,M*18
$PGRMZ,155,f,3*1A
$PGRMM,WGS 84*06
$HCHDG,,,,7.6,W*14
$GPRMC,135823,A,3529.1974,N,13304.1438,E,0.0,244.5,041214,7.6,W,A*0E
$GPRMB,A,,,,,,,,,,,,V,A*1C

$GPGGAには緯度と経度も出ています。上の例では北緯35度29.1977分、東経133度04.1437分です。この値を使って国土地理院のジオイド計算のページでジオイド高を出力してみました。その結果ジオイド高は34.6703mとなりました。このページでは度分秒あるいは度だけの数値の入力が求められるので、NMEAフォーマットの数値は変換する必要があります。

この結果からGPSMAP 62が出力するジオイド高が正しいジオイド高よりも値が若干小さいという結果になりました。ここで「楕円体高=標高+ジオイド高」という式を思い出してみます。GPSMAP 62は衛星測位により楕円体高を求めています。その値から内蔵されたジオイドモデルのジオイド高を引いて標高を出力していると考えられます。

それにより、ジオイド高が過小のときには標高は過大になるはずです。日本全国すべての地域でこのようになるとは限りませんが、島根県あたりではそうなっているように思われました。

0 件のコメント:

コメントを投稿