Ride with GPSのルートプランナーで標高データの外れ値を修正する

先日こういうブログ記事を書いた。

bicycle-ayato-p.hateblo.jp

獲得標高というものは推測値にすぎず、獲得標高の数値が"正しく"算出されるかどうかは重要ではない。本当に重要なのはそれぞれのルート作成アプリにおける一貫性である、という話でした。

これは一定納得できる話ではあります。ただ、先日のブログ記事で実は解決していない問題があります。Ride with GPS(RWGPS)ではトンネルを抜けるコースで標高が高くなってしまうという問題です。

Ride with GPSが外れ値を出しやすいところを理解する

先日参照したヘルプページには具体的にどういうときに正確さを欠く標高になってしまうのか書いてありませんでしたが、よくよくヘルプを読むと分かってくることがあります。

ridewithgps.com

まずRWGPSが用いているSRTMデータセットの性質はヘルプから以下の2つを読み取ることができます。

  • 宇宙から衛星によって測定された標高データである
  • 90mごとのメッシュデータである

つまり、この性質に弱い地形では標高データが意図しないものになりやすい可能性が高いということです。例えば、以下のような場所が考えられます。

  • トンネルや立体交差など上空を覆うモノが存在する道路
    • 衛星から取得ということはつまり上から観測できるモノを対象にした標高にしかならない
  • まわりが水上となる橋の上
    • 90mごとでデータが取られているということは、ポイントが橋の上ではなく水上をとっている可能性があるので、その場合ポイントとポイントの間に橋があれば実際の橋の高さより低くなる可能性がある
  • まわりに高いビルが乱立している道路
    • 橋の上の逆になりそう

ちょうど例に出すのに良さそうなルートがあったので、RWGPSのルートプランナーでひいてみました。小倉橋から走り始めて、宮ヶ瀬湖をぐるっと1周するようなルートです。このルートでは先程あげたRWGPSが"正確な"標高を出すのが苦手そうなトンネルや橋がいくつか存在します。

f:id:ayato0211:20211122162126p:plain

スクリーンショットの通り獲得標高は926mと出ています。ベンチマーク的にこのルート情報をGPXファイルとしてエクスポートして、Stravaにも入れてみます(注意してほしいのはStravaが"正確"である、というわけではなくあくまでも分かりやすい比較対象として引き合いに出しています)。

f:id:ayato0211:20211122162629p:plain

Stravaでは同じルートを解釈した結果、獲得標高を488mと出してきました。Stravaの方がざっくり1/2の値なので、これをアプリの違いで誤差としてしまうにはちょっと大きすぎるように感じます。

よくよく標高グラフを見てみると、RWGPSの方がギザギザしているのが分かります。宮ヶ瀬湖のまわりの道路はトンネルが多く、一部区間は橋になっているため、その周辺の標高が外れ値になっているのだと思います。試しにトンネルの区間を選んでみると、以下のようにトンネルの真ん中にかけて標高が高くなっているのが分かります。

f:id:ayato0211:20211122195420p:plain

んー、どうにかこれを修正できると他の人に共有したりできるんだけど…。

Ride with GPSの外れ値を修正する

というわけで調べてみたら、例によってヘルプが出てきた。

ridewithgps.com

Flatten elevationという機能があるらしい。プレミアムユーザーしか使えないけど、ちゃんと用意してくれているのはありがたい。早速トンネルを修正してみる。以下のスクリーンショットのように、標高グラフを選択状態にするとトンネル区間が青くなるので、右側のパネルにある「標高グラフを圧縮1」ボタンを押すだけ。

f:id:ayato0211:20211122201200p:plain

「標高グラフを圧縮」ボタンを押してもリアルタイムでは左のパネルに出ている獲得標高の値は変わらないので、確認したければ保存しないといけないんだけど、保存しなくても下に出ている標高グラフが変わっていることが分かると思います(スクリーンショットは保存した後に開いて撮ったもの)。

f:id:ayato0211:20211122202030p:plain

この調子で橋やトンネルの周辺を平坦化していきます。やりすぎない程度にトンネルや橋のあたりを平坦化した結果が次のスクリーンショットです。獲得標高539m。

f:id:ayato0211:20211122204447p:plain

Stravaの結果に近づけば良いというわけでもありませんが、恐らくはこのくらいが妥当そうな獲得標高になるとは思います(消したのがトンネルの出っ張りや橋付近のへこみだけなので)。

まとめ

これでRide with GPSでトンネルのあるルートをひいたとき、獲得標高が高くなってしまう問題に頭を悩ませる必要がなくなりました。ただし、やりすぎると"一貫性"を損ねる可能性があるため、修正はほどほどにしたほうがよいでしょう。

余談ではありますが、ユーザーがなんでトンネルや橋を考慮していちいち修正しないといけないんだ、っていう人はStravaを使った方が幸せになる気はします。Stravaはユーザーの走行データをもとに地図情報(標高含む)を作っているので、トンネルや橋でも問題なく獲得標高を出すことができます。Ride with GPSはSRTMデータセットを優先的に使い、Stravaはユーザーデータを優先的に使うため、このような違いが出ますが当然どちらにもメリットデメリットがあるので、一概にどちらかが絶対に良いというわけではありません。


  1. 何故か"圧縮"という訳なので最初よく分からなかった…