データの加工

ここでは『旅ログviewer sio-musubi』で表示再生できるように、ドライブレコーダーの動画とGPSデータを加工する方法を説明します。最初は戸惑うかもしれませんが、丁寧な説明を心がけたつもりなのでくじけずついてきてください。

目次

1. 加工ツール

 ドライブレコーダーの記録を『旅ログviewer sio-musubi』で再生するためには、加工が必要ですが、『旅ログviewer sio-musubi』は再生専用で加工の機能はありません。そこで、私が使っているツール・フリーソフトを基本に説明します。別に馴染みのツールがあれば敢えて合わせる必要はありません。

Table 1-03

2. ドライブレコーダー純正再生ソフトで記録を確認

 まずは、ドライブレコーダー純正再生ソフトでmicroSDカードの記録を確認します。外観は再生ソフトで異なりますが画面配置でおそらく右側に位置情報のトラックのリストがあり、各トラックの記録を始めた時刻が表示されているはずです。

(純正再生ソフトの表示例)    過去の『Google Maps』のバージョンアップで地図は表示できなくなっています。

Fig.1-08

 トラックをクリックすると対応する動画が表示されます。行程(自宅から道の駅までなど、エンジンを掛けてから切るまで)の最初と最後を表示させて、記録できていることを確認します。カードが複数枚になっていたら、どの行程を記録したカードか区別できるようにしておきます。

memo

 本サイトでは車の移動を主体に、トラック、ブロック、行程、旅(程)を以下ように使い分けています。車のエンジンスタートからキルまでが1行程、その間1分弱単位のドライブレコーダーの記録の区切りがトラック。行程がいくつか集まって旅(程)。

 行程の中で、急ブレーキや急ハンドルなどGや衝撃があったところで複数ブロックに分割されることがあります。

(例)

Fig.1-08

3. 記録データのエクスポート

※以下、ドライブレコーダーのデータを加工していきますが、オリジナルデータは別に保存して必ずコピーしたものを使ってください。

3-1. GPS信号の記録間隔確認

 まず最初に、後加工で必要になるGPS信号の記録間隔を確認するために、GPS信号を安定して受信している(発進してから数トラック後で、トンネルを通っていない)トラックの kmlファイルをエクスポートします。その際、複数トラックを選択しないこと。結合されてしまいます。 エクスポートしたkmlファイルを『メモ帳』で開きます。

(kml (gx拡張なし)ファイルの例)

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Document>
<Folder>
<Placemark>
<visibility>1</visibility>
<name></name>
<description></description>
<Style>
</Style>
<LineString>
<coordinates>
138.826557,34.609473,30       経度,緯度,高度
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
     (省略)
138.827413,34.615177,30
138.827433,34.615292,30
138.827405,34.615535,30
138.827407,34.615653,30
138.827333,34.615897,30
138.827315,34.616015,30
138.826803,34.617318,30
138.826710,34.617480,30
138.826473,34.617607,30
138.826233,34.617688,30
</coordinates>
</LineString>
</Placemark>
</Folder>
</Document>
</kml>

 kmlファイル中の <LineString><coordinates> の次に続く記録ポイントの座標数(経度,緯度,高度の数字の行数)を数えます。この記録ポイント数で、エクスポートしたトラックの長さ(次のトラックの時刻との差)を割り返したのがポイント間隔です。

 他に数トラック計算して平均をとればドライブレコーダーのだいたいの記録間隔がわかります。0.5秒単位で丸めましょう。記録間隔は変わらないので、確認は1度で十分です。

3-2. 行単位でのエクスポート

 次は行程単位でのデータのエクスポートですが、電源入時のGPS信号が受信できていないトラックを除いてエクスポートします。※1

 純正再生ソフトで最初のトラックから再生してみて、途中で GPS信号受信が開始(緯度,経度が画面に表示)されれば、次のトラックが先頭です。行程の最後のトラックまで選択して、kmlファイルと動画ファイルをそれぞれエクスポートします。※2

※1:「ドライブ前に」ページの「4.出発時の注意点」を守って GPS信号の受信を待ってから発進していることが前提です。そうでなければ最初のトラックから行程単位でエクスポートします。後加工が大変です。

※2:トラックはブロック単位で管理されています(例ではG11がブロックで6が通番)。行程が1ブロックではなく、数ブロックに分けられているかもしれません。複数ブロックを一括エクスポートできなければブロック単位でエクスポートし、後で結合します。

(純正再生ソフトの例)  最初のトラックは電源入り直後で GPS信号の受信ができていなかったので、選択から除外しています。

Fig.1-10

 エクスポートされたファイル名は先頭のトラックの記録開始時刻に関連付けられています。「2021-06-21-14-29-46.kml」、「2106211429.mp4」など。エクスポートしたファイルは、「drive_2021-06-21_IZU」など内容が判る名前のフォルダに保存します。

4. 動画ファイルの加工

 エクスポートした動画ファイルは mp4形式でしょうか? avi形式になっているかもしれません。

 mp4ファイル単体であればこの工程は終了です。次の工程(5.kmlファイルの加工)に進みます。

 mp4ファイルが複数の場合と aviファイルの場合、動画編集が必要です。

 また、エクスポートした動画には撮影時刻(スタートから到着まで1秒単位)が記録されていることが前提です。

4-1. 動画編集ソフトの準備

動画編集ソフト 『shotcut』

ダウンロードは https://shotcut.org/download/ から  インストール方法は下記参照サイトの末尾にも説明があります。

参照サイト        ※VideoLabさんに感謝。

「Shotcutの使い方を解説!無料の動画編集ソフトの使い方をマスターしよう」 https://videolab.jp/shotcut/

4-2. 動画ファイルの結合、保存(mp4への変換も)

 参照サイト「Shotcutの使い方を解説!無料の動画編集ソフトの使い方をマスターしよう」の以下の手順でおこないます。

 shotcutの使い方講座① ~動画編集の基本~ 

①プロジェクトの開始 : 読み込む動画は mp4、aviファイルどちらでもかまいません。

②動画をタイムラインに配置する : 先に配置した動画の最後尾は、画面最下部のスライダックを右にズラせば現れます。前の動画と結合する動画の間に隙間(モスグリーン)が無いように後ろの動画をクリックして詰めます。

Fig.1-11

途中をとばして

 shotcutの使い方講座③ ~データを書き出す~ 

データの書き出し方法①~③ : 保存する際は、元フォルダ(例:drive_2021-06-21_IZU)の中に「統合済」フォルダを作成し、ファイル名は連結した最初のトラック名で保存します(例:2021-06-21-14-29-46.mp4)。これで『旅ログviewer』用の動画 mp4ファイルの準備は完了です。動画プレイヤーで確認してみてください。

5. kmlファイルの加工

5-1. kmlファイルの整形

 ドライブレコーダー純正再生ソフトからエクスポートされた kmlファイルはタグにインデントが無く構成が解りにくいので、整形します。

(kml ファイルの例)

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Document>
<Folder>
<Placemark>
<visibility>1</visibility>
<name></name>
<description></description>
<Style>
</Style>
<LineString>
<coordinates>
138.826557,34.609473,30       経度,緯度,高度
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
     (省略)
138.827413,34.615177,30
138.827433,34.615292,30
138.827405,34.615535,30
138.827407,34.615653,30
138.827333,34.615897,30
138.827315,34.616015,30
138.826803,34.617318,30
138.826710,34.617480,30
138.826473,34.617607,30
138.826233,34.617688,30
</coordinates>
</LineString>
</Placemark>
</Folder>
</Document>
</kml>

整形は『webサイト「ラッコツール」』 https://rakko.tools/tools/40/  のお世話になります。

 サイトを開いた状態ではツールの「テキスト」タグが選択されています。「ファイル」タグを選択するとファイルを読み込んで変換してくれますが、ウェブサイトにローカルファイルを読み込ませるのに抵抗があるかもしれませんので、「テキスト」タグの方で説明します。

Fig.1-12

①整形したいkmlファイルを「メモ帳」で開き、「編集(E)」⇒「すべて選択(A)」、「編集(E)」⇒「コピー(C)」でテキストをコピーします。

②ラッコツールの「変換したいテキストを貼り付けるスペース」に貼り付けます(マウスでクリックし、「Ctrl」+「v」)。

③「インデントレベル:」のプルダウンメニューで「4スペース」を選択します。

③下の 整形 バーをクリックすると、その下に「変換後のテキストが貼り付けられたスペース」が現れます。

④「コピー」ボタンをクリックして、「変換後のテキスト」をコピーします。

Fig.1-13

⑤『メモ帳』で新規ファイルを開き、「編集(E)」⇒「貼り付け(P)」で貼り付けます。

Fig.1-14

⑥整形漏れで結合している2箇所の矢印部分で「改行」し、下の </coordinates> を上の <coordinates> の位置に合うようにインデント(半角スペースを必要数)を入れます。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <Folder>
            <Placemark>
                <visibility>1</visibility>
                <name/>
                <description/>
                <Style/>
                <LineString>
                    <coordinates>
138.826557,34.609473,30       経度,緯度,高度
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
     (省略)
138.827413,34.615177,30
138.827433,34.615292,30
138.827405,34.615535,30
138.827407,34.615653,30
138.827333,34.615897,30
138.827315,34.616015,30
138.826803,34.617318,30
138.826710,34.617480,30
138.826473,34.617607,30
138.826233,34.617688,30
                     </coordinates>
                </LineString>
            </Placemark>
        </Folder>
    </Document>
</kml>

⑦元のファイル名で上書きして、このファイルの整形は終わりです。

5-2. kmlファイルの結合

 行程が複数ブロックに分かれていた場合、kmlファイルを複数エクスポートしたと思います。この場合、先頭の整形した kmlファイルに結合します。具体的には、先頭の kmlファイルの座標(群)の後ろに2番目以降の座標(群)を挿入します。

①行程の先頭の kmlファイルを『メモ帳』で開き、一連の座標(経度, 緯度, 高度)群の後ろ(</coordinates>の前)に空白行(改行)を2行入れます。

②次にエクスポートした行程の2番目に当たる kmlファイルを『メモ帳』で開き、一連の座標群をドラッグして選択(最初の行頭をクリックし、「Shift」を押したまま「↓」で下に進んで選択するのが簡単です)してコピーし、①の空白行の2行目に貼り付けます。

③この後の修正の際の目印として、結合した座標群の最初の行の後ろに「第2ファイル」(コメント)を入れます。※

④行程に kmlファイルがまだあれば、第3ファイル以降は第2ファイルと同じ要領で結合します。

⑤元の先頭の kmlファイル名で、mp4ファイルを保存した「統合済」フォルダに保存します。

※:kml(XML)の文法上、ソース内のコメントは「<!– コメント –>」で入れなければいけませんが、「旅ログviewer」では座標記載領域(<coordinates>から</coordinates>間)の2バイト文字や空白は無視されるのでコメントに使えます。Google MapやGoogle Earthではエラーになるので、最終的にはこの空白や2バイト文字は削除します。

(結合した例)

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <Folder>
            <Placemark>
                <visibility>1</visibility>
                <name/>
                <description/>
                <Style/>
                <LineString>
                    <coordinates>
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
     (省略)
138.827413,34.615177,30
138.827433,34.615292,30
138.827405,34.615535,30
138.827407,34.615653,30
138.827333,34.615897,30
138.827315,34.616015,30
138.826803,34.617318,30
138.826710,34.617480,30
138.826473,34.617607,30
138.826233,34.617688,30

138.825915,34.617770,30       第2ファイル
138.825730,34.617825,30
138.825443,34.617925,30
138.825302,34.617980,30
138.825030,34.618103,30
     (省略)
138.823413,34.627127,30
138.823410,34.627400,30
138.823398,34.627542,30
                     </coordinates>
                </LineString>
            </Placemark>
        </Folder>
    </Document>
</kml>

5-3. タイトルと詳細を記入

『旅ログviewer』で表示する「タイトル」と「詳細」をkmlファイルに記入します。

<Placemark> と <LineString> の間に下記の要領で挿入します。

タイトル : <name> タイトルの内容 </name>

詳細   : <description> 詳細の内容 </description>

(記入例)   枠に収まらずに折り返しになっています。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <Folder>
            <Placemark>
                <visibility>1</visibility>
                <name>2021年6月21日 伊豆半島ドライブ</name>
                <description>【6/7】愛逢岬からセブンイレブン西伊豆賀茂店まで</description>
                <Style/>
                <LineString>
                    <coordinates>
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
     (省略)
138.827413,34.615177,30
138.827433,34.615292,30
138.827405,34.615535,30
138.827407,34.615653,30
138.827333,34.615897,30
138.827315,34.616015,30
138.826803,34.617318,30
138.826710,34.617480,30
138.826473,34.617607,30
138.826233,34.617688,30

138.825915,34.617770,30       第2ファイル
138.825730,34.617825,30
138.825443,34.617925,30
138.825302,34.617980,30
138.825030,34.618103,30
     (省略)
138.823413,34.627127,30
138.823410,34.627400,30
138.823398,34.627542,30
                     </coordinates>
                </LineString>
            </Placemark>
        </Folder>
    </Document>
</kml>

5-4. プレイスマークの挿入

 現在地とは別にプレイスマークを挿入するには、いまある <Placemark> の前に下記のように挿入します。

<Placemark>

    <visibility>1</visibility>

    <name>場所名</name>

    <description>詳細の内容</description>

    <Point>

        <coordinates>経度, 緯度, 高さ</coordinates>

    </Point>

</Placemark>

「経度, 緯度, 高さ」ですが、『旅ログviewer』では「高さ」は評価していないので、ダミーで「30」にしています。ターゲットの「経度, 緯度」は以下のいずれかの方法で取得します。

①Webサイト  ジオコーディング http://www.geocoding.jp/

         住所やランドマーク名で緯度, 経度を検索します。

②Google Maps 検索でプレイスマークが表示されれば、これを右クリックすると緯度, 経度が表示されます。

③インストールした座標取得ツール『getCoord.html』で場所を特定して、「経度, 緯度, 30」を表示させます。

※①、②は表示が「緯度」「経度」で逆順になっているので注意してください。

(記入例)

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <Folder>
            <Placemark>
                <visibility>1</visibility>
                <name>愛逢岬</name>
                <description>写真あり</description>
                <Point>
                    <coordinates>138.826498,34.609581,30</coordinates>
                </Point>
            </Placemark>
            <Placemark>
                <visibility>1</visibility>
                <name>2021年6月21日 伊豆半島ドライブ</name>
                <description>【6/7】愛逢岬からセブンイレブン西伊豆賀茂店まで</description>
                <Style/>
                <LineString>
                    <coordinates>
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
138.826557,34.609473,30
     (省略)
138.827413,34.615177,30
138.827433,34.615292,30
138.827405,34.615535,30
138.827407,34.615653,30
138.827333,34.615897,30
138.827315,34.616015,30
138.826803,34.617318,30
138.826710,34.617480,30
138.826473,34.617607,30
138.826233,34.617688,30

138.825915,34.617770,30       第2ファイル
138.825730,34.617825,30
138.825443,34.617925,30
138.825302,34.617980,30
138.825030,34.618103,30
     (省略)
138.823413,34.627127,30
138.823410,34.627400,30
138.823398,34.627542,30
                     </coordinates>
                </LineString>
            </Placemark>
        </Folder>
    </Document>
</kml>

 複数個所にプレイスマークを挿入するには、<Placemark>~</Placemark>を繰り返します。

5-5. 旅ログviewer sio-musubi で再生確認

 ここで一旦『旅ログviewer sio-musubi』で mp4ファイルと対応する kmlファイルを読み込み、「タイトル」「詳細」「プレイスマーク(青色)」「現在地マーク(紫色)」「行程(青線)」が意図したとおり表示されているか確認します。 意図したとおりになっていなければ、手順を見返して修正します。

 次に再生し、ドライブ映像と地図上の現在地マークの進行のズレが大きくない、または気にしないのであればデータの加工は完了です。

 ズレが大きく気になるようであれば(5ポイント以上?)、トンネルなどでの GPS信号ロストが考えられます。kmlファイルの位置情報補間作業に進みます。

6. kmlファイルの位置情報補間

6-1. GPS信号ロストの影響

 長いトンネルを通過する際、トンネルの途中で GPS信号ロストが発生し、トンネルを出てしばらくしてから GPS信号を受信(復帰)します。

Fig.1-15

 GPS信号をロストしている区間の本来存在するポイント分が抜け落ち、動画再生時間をポイント数で割り返したポイント間隔がドライブレコーダーの記録間隔を上回ります。現象として、現在地マークの進行が正常に記録されているポイント間はゆっくり、逆にロストしたポイント間は飛び越えてワープします。結果、複雑に影響してドライブ映像と現在地マークの進行がズレます。このズレを解消するにはロストしたポイント(位置情報)をすべて補間するしかありません

6-2. GPS信号ロスト位置の特定

 まず『ドライブレコーダー純正再生ソフトで行程の記録データを最初から再生し、トンネル内でGPS信号受信マークが消えた(GPSロスト)時刻、トンネルを出る時刻、GPS信号受信マークが再点灯した時刻をワンセットとしてメモし、行程の最後までチェックします。

 次に行程の最初からセット単位で補間していきます。

例として   記録間隔が1.5秒

Table 1-04

 今度は旅ログviewer sio-musubi』で該当時刻近辺を再生します。するとトンネル部分で現在地マークがワープする場所があるはずです。

Fig.1-16

 スライダックを操作して戻し、再生して「GPSロスト」(実際はロストの1ポイント前)の位置に現在地マークを移動します。ここで画面右下の「現在地 緯度」、「現在地 経度」に表示されたのが「GPSロスト」位置の座標です。メモします。同様に「GPS復帰」位置の座標をメモします。

(例)

Fig.1-17

6-3. ポイント補間

 今度は『メモ帳』と『getCoord』を使って、実際にポイントを補間していきます。

 「メモ帳」で kmlファイルを開き、「編集(E)」⇒「検索(F)」で「GPSロスト」の緯度または経度を入力して検索します。ヒットした座標が間違いないことを確認し、改行して後ろに空行を挿入します。

138.771957,34.813287,30
138.771785,34.813547,30
138.771720,34.813678,30
138.771615,34.813943,30
138.771585,34.814087,30
138.771567,34.814363,30
138.771557,34.814512,30
138.771537,34.814792,30
138.771528,34.814932,30

138.771622,34.818588,30
138.771463,34.818767,30
138.771398,34.818832,30
138.771280,34.818933,30
138.771235,34.818978,30
138.771178,34.819050,30
138.771140,34.819067,30
138.771110,34.819087,30

 「GPSロスト」座標を『getCoord』の地図移動パートに入力して「移動」ボタンを押すと、地図が移動して中心+マークが「GPSロスト」位置にきます。

Fig.1-18

 トンネル出口までの区間に10ポイント補間するわけですが、目測で10等分するのは至難の業です。現在地マークの進行を調整するのが目的なので、5等分(同じ場所に各2ポイント分滞在)で kmlファイルに追加します。(トンネル内は現在地マークの進行を合わせる風景もなく、各3・4ポイント分振り分けても気にはならないと思います。)

 地図をクリックして移動させ、中心+マークで出口までの5等分の位置に合わせます。ここで表示された座標取得パートの「kmlファイル用座標データ」をコピーし、kmlファイルに追加します。追加の際、後で場所を探しやすいようにインデントを付けます。

 ※地図移動パートで座標を入力して移動しても、座標取得パートに表示される座標が微妙にズレます。また、地図に触らず「+」「-」で地図を拡大、縮小しても座標がズレます。はては『getCoord』のwindowサイズを変えても変化します。最大に拡大して中心+マークを合わせたいところですが、そうすると分割位置の見当がつかなくなってしまいます。補正を試みようとしている倍率でのこの座標のズレは、GPS受信信号の誤差や手動補正のブレなどに比べれば影響が少ないので無視します。

Fig.1-19
138.771785,34.813547,30
138.771720,34.813678,30
138.771615,34.813943,30
138.771585,34.814087,30
138.771567,34.814363,30
138.771557,34.814512,30
138.771537,34.814792,30
138.771528,34.814932,30

		138.771561,34.815543,30
		138.771561,34.815543,30

138.771622,34.818588,30
138.771463,34.818767,30
138.771398,34.818832,30
138.771280,34.818933,30
138.771235,34.818978,30
138.771178,34.819050,30
138.771140,34.819067,30
138.771110,34.819087,30

 同様にして、「GPS復帰」まで計17ポイント(トンネル内:10、トンネル出口:1、トンネル外:6)追加します。

138.771785,34.813547,30
138.771720,34.813678,30
138.771615,34.813943,30
138.771585,34.814087,30
138.771567,34.814363,30
138.771557,34.814512,30
138.771537,34.814792,30
138.771528,34.814932,30

		138.771561,34.815543,30
		138.771561,34.815543,30
		138.771669,34.816217,30
		138.771669,34.816217,30
		138.771728,34.816657,30
		138.771728,34.816657,30
		138.771878,34.817027,30
		138.771878,34.817027,30
		138.771985,34.817353,30
		138.771985,34.817353,30
		138.772133,34.817701,30		トンネルOUT
		138.772117,34.817851,30
		138.772079,34.817974,30
		138.772015,34.818093,30
		138.771945,34.818238,30
		138.771886,34.818353,30
		138.771784,34.818472,30

138.771622,34.818588,30
138.771463,34.818767,30
138.771398,34.818832,30
138.771280,34.818933,30
138.771235,34.818978,30
138.771178,34.819050,30

補正後

Fig.1-20

 これで、「GPSロスト」から「GPS復帰」までのワンセットの補間が完了です。この補間を行程の最後まで行えば、再生中のドライブ映像と現在地マークの進行はかなり近くなったはずです。残り数ポイントの差は補間の誤差なので、トンネル内や信号待ちでのポイント増減調整で進行を合わせます。

 くれぐれも、全セットの(計算上の)補間が済む前にやみくもにこのポイント増減調整をしないこと。出口のない迷宮に迷い込み、結局はその増減を元に戻すはめになります。

※すべての補間が終わり、再生してみて問題なければ、編集の目印に入れたコメント(「第2ファイル」とか「トンネルOUT」)は削除します。もし『Google Earth』で kmlファイルを表示させようと思った時に、<coordinates></coordinates> 間に2バイト文字が入っているとフリーズするため。

 お疲れ様でした。これで旅ログの完成です。『旅ログviewer sio-musubi』で再生して旅の思い出を楽しんでください。