CSV ファイルを GPX に変換する方法
こちらのほうが難しい方向です。GPX を CSV に変換するのは情報を減らすだけの作業で、安全でほぼ機械的にできます。CSV を GPX に変換するのはその逆——もともと持っていなかったかもしれないルートの形を、表から組み立て直すことを求められます。それができるかどうかは、その CSV に実際に何が入っているかで完全に決まります。そして多くの CSV ファイルにとって、正直な答えは「できない」です。
結論から言うと
CSV が使える GPX トラックになりうるのは、記録された点 1 つにつき 1 行が入っていて、少なくとも緯度と経度の列があり、できれば標高と時刻もある場合だけです。その表を読み込んで GPX の XML 構造として書き出せる道具——QGIS のような GIS ツール、スプレッドシートのマクロ、短いスクリプト——があれば、各行を順番にトラックポイントへ変換できます。逆に、CSV が 1 回の山行につき 1 行で、距離・時間・獲得標高のような列だけを持っている場合、そこにはそもそも組み立てられるルートの形が入っていません。要約はもともとトラックではなく、どんな変換ツールも欠けている点を作り出すことはできません。
まったく性格の違う二種類の CSV
点ごとの CSV
記録された点それぞれが 1 行になっていて、緯度と経度が別々の列に入り、できれば標高と時刻も添えられているもの。ルートを実際に組み立て直せるのは、このタイプの CSV だけです。GPX のトラックポイントが持っているのと同じ情報を、入れ物を変えただけでそのまま抱えているからです。
要約の CSV
1 回の山行が 1 行になっていて、日付・距離・時間・獲得標高のような列を持つもの。世の中の CSV 書き出しの多くは実際にはこちらで、それは多くの人がスプレッドシートに求めているものがこちらだからです。ただしこの目的にとっては行き止まりでもあります。ルート全体を表す数字はぴったり 1 行しかなく、合計からルートの形を逆算することはできません。
変換を生き延びる必要があるもの
線を描くために最低限必要なのは緯度と経度です。標高は、GPX の仕様上は無くてもトラックポイントを作れるという意味では任意ですが、もとの CSV に標高の列が無ければ、できあがる GPX にも標高は入りません。変換ツールには、その数字を生み出すもとがないからです。各行の時刻は、見た目以上に重要です。GPX のトラックポイントはファイルに並んだ順番のまま読み戻されるので、CSV の行が時系列に並んでいなければ、組み立て直したルートは数分離れて記録された点のあいだをジグザグに行き来してしまいます。
座標を静かに壊すスプレッドシートの癖
座標の入った CSV を確認のためにスプレッドシートソフトで開き、そのまま保存し直す——これは、変換しようとしているデータそのものを傷めてしまうよくあるやり方です。スプレッドシートソフトは数字をきれいに整える作りになっていて、それは普通の数値の列には便利でも、GPS 座標の列には向きません。必要だった小数点以下の桁を丸めたり、長い小数を気づかないうちに指数表記に変えてしまったりすることがあります。座標が小数点以下わずか数桁を失っただけでも、地図上に打ち直すと目に見える距離だけずれることがあります。プレーンテキストのエディタや、座標専用に作られた道具でファイルを編集すれば、この問題は起きません。
元の GPX を残しておくほうが楽な理由
この変換が本当に必要になる場面は、見た目より限られています。CSV の要約しか残しておらず元のトラックがもう無い場合、あるいはどこかからルートデータを CSV としてもらい、それを GPX が必要なマッピングツールに入れたい場合くらいです。もし元の GPX ファイルがどこかにまだ残っているなら、それをそのまま使うほうが、合計を持つためだけに作られた表から組み立て直すよりも簡単で確実です。CSV から GPX への変換に取り組む価値があるのは、GPX 自体が本当に失われてしまったときだけです。
間違えやすいところ
- 要約の CSV——1 回の山行が 1 行——がトラックに変わると思い込むこと。どんな道具を使っても、要約には組み立てられる形状が入っていません。
- どのスプレッドシートソフトでもこの変換ができると思い込むこと。CSV には GPX のような決まった構造がなく、どの列が緯度で、どの列が経度で、どの列が時刻かを、そのファイルごとに教えてやる必要があります。
- スプレッドシートで CSV を開いて保存し直したあと座標がわずかに変わっていること。これはスプレッドシートソフトの書式変換による副作用であって、もとのデータの不具合ではありません。
- 組み立て直した GPX に高度プロフィールが入っていないこと。これは変換が失敗したのではなく、もとの CSV にそもそも標高の列が無かった場合に起こります。
TrailCam の場合
TrailCam は記録した同じルートを、GPX 1.1 としても CSV のサマリーとしても、記録したデータからそのまま書き出します。片方をあとからもう片方に作り直しているわけではありません。つまり TrailCam で記録したルートについては、この変換をする必要が実際には生じません。マッピングツールが GPX を必要とするなら、それは CSV の隣にすでに存在していて、CSV から組み立て直すものではないからです。書き出しは任意の TrailCam Pro に含まれる機能で、アプリ自体のダウンロードは無料です。
よくある質問
- どんな CSV ファイルでも GPX トラックに変換できますか?
- 記録された点 1 つにつき 1 行があり、緯度と経度の列がある場合に限られます。要約の CSV——1 回の山行が 1 行のもの——にはルートの形状が入っていないので、変換ツールが何かをトラックに作り変えることはできません。
- CSV を GPX に変換すると、標高も一緒に出てきますか?
- もとの CSV に標高の列があった場合に限られます。CSV から作った GPX ファイルには、その CSV が持っていた以上のものは決して入りません。変換ツールには標高を生み出すもとがないからです。
- スプレッドシートで CSV を編集すると座標が変わってしまうことがあるのはなぜですか?
- スプレッドシートソフトが数値の列を自動的に整形し、小数点以下を丸めたり指数表記に変えたりすることがあり、それが GPS 座標を気づかないうちにずらしてしまいます。プレーンテキストとしてファイルを編集すれば、この問題は避けられます。
自分のルートを記録する
TrailCam は iPhone 用の GPS ルート記録アプリです。動画・写真・音声メモを撮ったその地点に紐づけて保存し、GPX 1.1 または CSV で書き出せます。ダウンロードは無料です。