Apexlog 使い方マニュアル
English · ホーム · プライバシーポリシー
Apexlog は走行中の GPS+モーション テレメトリを記録し、再生・解析できるアプリです。 本マニュアルでは使い方に加え、重要な点として、エクスポートした記録を自分で解析 できるよう、オープンな NDJSON データ形式を解説します。
記録する
- スマホをマウント(またはポケットに)して Apexlog を開く。
- Record をタップ。ステータス欄に経過時間・サンプル数・現在速度・現在 G が表示。
- Stop で終了。走行は自動的に
.ndjsonファイルとして保存されます。
開始した瞬間から、各記録は以下を取得します(レートは既定値。下記 「録画モード」参照)。
- GPS(約 1 Hz)— 緯度・経度・高度・速度・方位・精度。
- IMU(約 100 Hz)— 生加速度・重力除去(ユーザー)加速度・ジャイロ。
録画モード:Sport と Travel
設定(歯車)→ Recording でモードを選べます。
- Sport(既定)— マウントして走行を高レートで記録するモード。電池節約のため センサーレートを下げられます:IMU Off/25/50/100 Hz、 GPS High/Balanced/Saver。IMU は G・リーン解析の元データです。Off にすると GPS 軌跡のみ記録します。
- Travel(旅モード) — ポケットやカバンに入れたまま長時間記録する省電力の
ジャーニーロガー。IMU はオフで、GPS は毎秒ではなく 約 N メートル移動するごとに
1 点記録します。止まっている間は何も書かれず、丸一日でも小さなファイルに
収まります(通勤 1 時間 ≈ 100 KB)。
- On foot — 徒歩・電車の旅。約 15 m ごとに 1 点。
- Vehicle — 車・バイクの旅。約 50 m ごとに 1 点。
旅の記録は安全上限で自動停止します(6/12/24 時間で設定可)。停止時には通知が 届くので、ホテルや食事の後はアプリを開いて新しい記録を開始してください。
旅モードと Pro: 旅モード自体は無料ですが、画面ロックやポケットの中でも記録を 続けるにはバックグラウンド録画(Pro)が必要です。Pro なしで開始しようとすると 「画面ロックで停止します」という確認が表示されます。
前面録画 と バックグラウンド録画
- 無料: Apexlog が前面(画面表示中)のときに録画。アプリを離れる・画面消灯で停止。
- Pro — バックグラウンド録画: 画面を消しても、別アプリ(ナビ等)が前面でも録画を 継続。ナビが画面を占有するバイクのための想定構成です。バックグラウンド録画中は OS の要件により、常駐通知(Android)/ステータス表示(iOS)が出ます。
記録一覧(ライブラリ)
ホーム画面に記録が新しい順で(ファイルサイズ・開始時刻つきで)並びます。タップで再生。
- 無料は直近3本まで利用可。古いものはロック(削除はされない)され、Pro 解放まで 開けません。
- Pro は無制限に保持。
ゴミ箱アイコンで削除(完全削除・取り消し不可)。
再生・解析
記録を開くと、上から順に表示されます。
- 地図 — OpenStreetMap 上の走行軌跡。タイルは都度取得し端末にキャッシュ。
- 車両ゲージ — メニューで切替:
- トップダウン — 上から見た合成 G ベクトル+ヨーレート。
- リア — リーン角(と横方向 G)。
- サイド — ピッチ角(と前後方向 G)。
- G-G ダイアグラム — フリクションサークル:前後 G 対 横 G。ブレーキ・加速・ コーナリングの強さがわかる。
- チャンネルチャート — 速度/リーン/ピッチをシークバーで時系列表示。
スライダーでシーク、再生ボタンでアニメーション、速度メニュー(0.5×〜8×)で再生速度を 変更。リーン・ピッチ・方位は加速度・ジャイロ・GPS を融合(相補フィルタ)して算出し、 走行自体から導いた端末→車両キャリブレーションを適用しています。
旅モードの記録(IMU なし)では、車両ゲージの代わりにジャーニーゲージが 表示されます:速度に連動するアクティビティアイコン+トリップメーター(そこまでの 累積 km)。On foot のログは 休憩 ☕/徒歩 🚶/道路 🚌/電車 🚆/飛行機 ✈️、 Vehicle のログは 停車 🚦(静止 1 分以内:信号・渋滞)/休憩 ☕(それ以上=駐車)/ 下道 🚗(60 km/h 未満)/高速 🏎(それ以上)を出し分けます。地図・速度チャート・ 数値表示は通常どおり動きます。
アプリ内解析は、スマホの任意の取り付け向きを車両軸に合わせるキャリブレーションを 使います。生ログには端末座標系のセンサーデータが保存されます。車両座標系の計算を 自分で再現したい場合は下記を参照。
エクスポート
エクスポート/共有は Pro 機能です。 各記録の行にはエクスポートボタンと ⋮ メニューがあり、3 つの出力方法があります。
- Export GPX / Export KML — GPS 軌跡を標準の地図形式に変換して共有シートを 開きます。元の記録はそのまま(エクスポートは別ファイル)。設定 → Export で ワンタップボタンの既定形式と、標高を含めるかを選べます。
- Share raw (NDJSON) — 生の
.ndjsonを下記データ形式そのままで送ります。 加工や間引きはありません。
Google マップ / Earth で軌跡を開く
- Google マイマップ(Google マップで表示): mymaps.google.com で地図を作成 → インポート → エクスポートした KML(または GPX)を選択。ルートが地図に描かれ、Google マップ アプリの「保存済み → マイマップ」に同期されます。
- Google Earth:earth.google.com → プロジェクト → KML ファイルをインポート。Earth がインストール済みの端末なら KML を開くだけでも OK。
- GPX は Strava・Garmin Connect・komoot・Ride with GPS など、ほとんどの GPS ツールにも取り込めます(アプリによりアクティビティ/ルートとして)。
Mac/PC では USB 接続で端末から直接コピーも可能です(アプリの Documents ディレクトリ内)。
データフォーマット仕様
記録は UTF-8 の NDJSON(改行区切り JSON):1 行 1 JSON オブジェクト、1 行 1 サンプル。形式はオープンで、どの言語でも簡単に解析できます。
ファイル
apexlog-YYYYMMDD-HHMMSS.ndjson
録画開始のローカル壁時計から命名。例 apexlog-20260615-181241.ndjson。
- 1 行目は必ず
meta行。 - 以降の各行は
gpsまたはimuサンプル 1 件で、おおむね生成時刻順。
meta 行(先頭 1 行のみ)
{"type":"meta","app":"apexlog","ver":"0.2.1","startedAt":"2026-06-15T18:12:41.463902+09:00","device":"iPhone16,2","hz":{"imu":100,"gps":1},"mode":"sport"}
| キー | 意味 |
|---|---|
type |
固定値 "meta" |
app |
固定値 "apexlog" |
ver |
ログ形式/アプリのバージョン(例 "0.2.1") |
startedAt |
録画開始の壁時計。ISO 8601、ローカル UTC オフセット付き |
device |
端末機種名(例 "iPhone16,2"/"Pixel 8"。不明なら "unknown") |
hz |
要求サンプリングレート(実測ではなく設定値)。imu が 0 のログは IMU 無効(旅モード/IMU Off)で imu 行を含まない。gps は選択レート階層の公称 Hz。0 はサブ Hz(距離駆動の旅プリセット) |
mode |
(0.2.1〜・任意)"sport" または "travel"。旧ログには無い |
preset |
(0.2.1〜・任意)旅プリセット:"onFoot" または "vehicle" |
サンプル行
各サンプル行は共通で以下を持ちます。
| キー | 意味 | 単位 |
|---|---|---|
t |
記録開始からの経過秒(モノトニッククロック) | s |
s |
ストリーム:"gps" または "imu" |
— |
gps 行:
{"t":1.000,"s":"gps","lat":35.681236,"lon":139.767125,"alt":3.2,"spd":12.5,"hdg":270.1,"acc":4.0}
| キー | 意味 | 単位 |
|---|---|---|
lat / lon |
緯度 / 経度 | deg |
alt |
高度 | m |
spd |
速度 | m/s |
hdg |
進行方位(対地コース)。負値=取得不可(停車時など) | deg |
acc |
水平位置精度 | m |
imu 行。 3 つの IMU センサーはそれぞれ別の時刻に独立したストリームイベント
として届くため、そのセンサーの軸だけを含む 1 行として書かれます(他フィールドは
省略)。行は次のいずれか:
{"t":0.010,"s":"imu","ax":0.12,"ay":-0.03,"az":9.79}
{"t":0.011,"s":"imu","lax":0.05,"lay":-0.01,"laz":0.02}
{"t":0.010,"s":"imu","gx":0.001,"gy":0.000,"gz":-0.002}
| キー | 意味 | 単位 |
|---|---|---|
ax / ay / az |
生加速度(重力込み) | m/s² |
lax / lay / laz |
ユーザー加速度(重力除去) | m/s² |
gx / gy / gz |
ジャイロ(角速度) | rad/s |
補足:
- 軸は端末座標系(スマホ自身の X/Y/Z)で、OS のセンサー API が返す値そのまま。 車両には整列していません。取り付け向きは任意なので、必要なら自分で車両軸に整列を。
- ファイル内の数値精度:
lat/lon7 桁、alt/spd/hdg/acc2 桁、加速度・ジャイロ 5 桁、t3 桁。非有限値は0で書かれます。 - ストリームは時刻整列されていません。同一時刻の加速度+ジャイロが欲しい場合は、
各ストリームを
tで独立に補間してください。 tはモノトニックなストップウォッチ由来(壁時計変更の影響を受けない)。絶対時刻へはmeta.startedAt + tで対応づけます。
データを解析する
最小の Python 例 — 記録を読み込み、ストリームを分離し、合計 G と km/h 速度を計算:
import json, math
meta = None
gps, accel, uaccel, gyro = [], [], [], []
with open("apexlog-20260615-181241.ndjson") as f:
for line in f:
o = json.loads(line)
if o.get("type") == "meta":
meta = o; continue
if o["s"] == "gps":
gps.append(o)
elif "ax" in o:
accel.append(o)
elif "lax" in o:
uaccel.append(o)
elif "gx" in o:
gyro.append(o)
# 合計加速度の大きさを G で(重力込み)
G0 = 9.80665
for a in accel:
a["g"] = math.sqrt(a["ax"]**2 + a["ay"]**2 + a["az"]**2) / G0
# GPS 速度を km/h で
for p in gps:
p["kmh"] = p["spd"] * 3.6
print(meta["device"], len(gps), "GPS,", len(accel), "accel")
よく使う変換:
- 速度:
km/h = spd × 3.6、mph = spd × 2.23694。 - 合計 G(重力込み):
sqrt(ax² + ay² + az²) / 9.80665。 - リニア G(運動のみ):
ax/ay/azの代わりにlax/lay/lazを使用。 - ジャイロを deg/s に:
deg/s = rad/s × 180 / π。 - 車両座標系: 静止時は生加速度の平均から「上」を推定(比力は上向き)、GPS の前後 加速度と水平 IMU の相関から「前」を求め、「横 = 上 × 前」とする。これがアプリ内 キャリブレーションがリーン/ピッチ算出前に行っている処理です。
Pandas のヒント:pandas.read_json(path, lines=True) で読み込み、先頭(meta)行を
落とし、列の有無(ax・lax・gx・lat)で分割。
権限
- 位置情報(使用中。バックグラウンドは Pro): GPS 軌跡の記録のため。バックグラウンド 許可は、あなたが開始した録画の継続のみに使用。
- モーション/センサー: 加速度・ジャイロ。
- 通知(Android): バックグラウンド録画に OS が要求する「録画中」通知。
- インターネット: 再生時の地図タイル取得と課金処理。
権限は端末設定でいつでも取り消せます。依存機能は再付与まで停止します。
無料 と Pro
| 無料 | Pro(買い切り) | |
|---|---|---|
| 録画(Sport・旅モード) | 前面のみ | + バックグラウンド |
| ログ保有 | 直近3本 | + 無制限 |
| 地図/G-G/姿勢/ジャーニー再生 | ✓ フル | ✓ フル |
| 生データ共有・GPX/KML エクスポート | — | ✓ |
Pro は買い切り — ¥1,000 / US$6.99。サブスクなし。 以前の購入はペイウォールから 復元できます(Pro をタップ →Restore)。