Moves の GPS データを、外部サービスを利用してエクスポートする

2013-11-02 追記

外部サービスを使わずに自分で全部やる方法の記事を書きました。そちらのほうが得られるデータの信頼性が高い(外部サービスを使うと、データが何日か抜けたりしていた)のでオススメです。

リンク: iPhone アプリの Moves からデータを JSON 形式で取得し、それを gpx 形式に変換する

はじめに

Moves raw JSON Export なる外部サービスを利用して、iPhoneライフログアプリ Moves の GPS データのエクスポートを試みた。外部サービスを利用するのでセキュリティ的には甘くなる。お試しの際はご注意を。

データの取得

まずは Moves raw JSON Export にて Authenticate at Moves をクリックして、指示に従って Moves 上で Moves raw JSON Export からのデータ利用を許可する。

次に出てきたデータの取得開始日を入力して(日付の範囲指定はできないようだ)Start Export! することでデータを取得。データ取得ページに書いてあるように、1ヶ月ぶんの出力に約 2.5 分かかる。

出力が終わるとメッセージがポップアップするので、下の窓に出てきた JSON コードらしきものをコピーしテキストエディタかなにか(私は Vim を使った)にペースト。ただしこのコードは似非 JSON コードというか、いろいろと瑕疵があるようで、そのままパーサ(たとえば jqpython -m json.tool)に食べさせても parse error になる。ので次の処理を加える。

データの整形

得られた JSON 全体はひとつの配列になっているのだが、その中に ,,,,, などの連続するカンマが含まれている場合があった。これを除外するために s/,\+/,/g (1つ以上のカンマがあったら、それをカンマ1つで置換)で置換した。

また、 {hoge: piyo}{fuga: hogera} のようにカッコが連続してしまっている(間にカンマが入っていない)場合があった。これを除外するために s/}{/},{/g で置換した。

以上の整形を行ったところ、パーサが通るようになった。一安心である。

gpx データに変換(したい)

そもそもどうして Moves のデータを取得したいと思ったかというと、このデータを利用して別のカメラで撮った映像に GPS 情報をタグ付けできたら嬉しいと考えたからである。なので JSON のままではあまり使いでがなく、たとえば gpx に変換してやれば多くのタグ付けソフトが対応している形式になって使いでが出てくるわけである。でもここはちょっと面倒そうなのであとでやろうと思います(画竜点睛を欠く)。まぁ JSON にはなってるわけだし、カンタンでしょ(慢心)。Google で "json to gpx" とか調べればいいんじゃねーの(傲慢)。

2013-11-01: 追記:JSON を gpx に変換するコードを書いた

上記だけではあまりに丸投げだと思ったので、2ヶ月越しではありますがコードを書きました。詳しくは 別記事 を参照。

2013-11-01: 追記:Moves からのデータの取得を自ら行う

件の Moves Export なるサービスですが、要は これ を実行しているだけっぽい。これを自分で動かせば、外部サービスと Moves とを連携させることへの抵抗感を薄めることができますね(自分ではやってない)。