スマートフォンなどを利用して簡単に人・物の移動データを収集できるようになりましたが、それを死蔵せずに活用できていますか? Mobmapは移動データの可視化や抽出処理を簡単に行えるツールです。
移動データがあればとりあえずMobmapを、と言えるような移動データ活用の定番ツールを目指しています。
Mobmapの画面は大きく左右に分かれています。左側のペインは読み込んだデータの管理や設定、右側は結果表示のための領域になっています。
データを読み込むには左ペインの「Add」ボタンを使いますが、起動時は自動で読み込み画面が出ます。
Mobmapは移動データをCSVファイルから読み込みます。入力するCSVファイルにはID、緯度、経度、時刻の4つの列が必須です。その他の列があっても問題ありません。IDは人や物を区別するための列です。同じIDを持つレコード群がひとつの時系列として扱われます。
注意:CSVファイルの文字コードにはUTF-8を使用してください。Excelから出力した場合はShift_JISになっている場合があります。
注意:処理速度優先のため、ダブルクォートで囲まれたフィールド(カンマを含むことができる)に対応していません。
ファイルを指定すると内容のプレビュー画面が表示されます。ここでID、緯度、経度、時刻の各情報がどの列に入っているかを指定します。
Mobmapが自動検出した結果が初期状態になっています。これで問題なければ「Start」ボタンを押してください。列の設定が間違っている場合は手動で修正できます。
読み込んだデータは左側のペインに「レイヤー」として表示されます。右側の「v」マークを押すとレイヤーごとの詳細設定が現れます。
地図の上部にある再生ボタンとタイムラインでアニメーションを操作できます。
再生ボタンを押すと一定の速度で自動的に時刻が進んでいきます。再生スピードはボタンの右側にあるコントロールで、実時間の倍数で指定できます。例えば「×10」は1秒の再生でデータが10秒進む、という意味になります。
タイムラインをドラッグすると手動で時刻を指定できます。
タイムラインはマウスホイールでズーム可能で、年単位から秒単位までスケールを変えて時刻の指定が可能です。
ここまでマーカーの色は固定でしたが、属性により変化させることもできます。そのためにはまず、必須の4属性(ID、緯度、経度、時刻)以外のデータを読み込む必要があります。
CSVのプレビュー画面で、必須属性以外の列の上にある「+」ボタンをクリックすると、その列を追加属性としてロードします。この時、次の操作が必要です。
読み込みが終わったらレイヤーの設定パネルを開き「Bind marker attr」のドロップダウンリストをクリックします。追加属性が正しく読み込まれていれば、その名前がリストに現れます。
追加属性の名前を選択すると、その値によりマーカー色が変化するようになります。マーカーの色数はスライダで変更可能なので、属性値の範囲に合わせて調整してください。
CSVファイルから読み込む他に、移動速さの属性を生成することもできます。レイヤーのメニューから「速度の属性値を生成」を選び、表示されたダイアログボックスに設定を入力します。
属性値により、マーカーの表示・非表示を切り替えることができます。レイヤー設定パネルの下部にある条件式入力欄をクリックし、マーカーを表示する条件を入力します。
例) 条件式を「speed > 10」とした場合、speedが10を超えたマーカーのみ表示されます。
Mobmapは、移動体レイヤーの各点をグリッド単位で集計して表示することができます。左側のペインで、移動体レイヤーのメニュー(縦3点のアイコン)から「グリッド生成」を選択してください。グリッドは移動体レイヤーと別のレイヤーとして現れます。
グリッドの大きさは標準地域メッシュに加え、それを分割した100m/50mを選択できます。
Mobmapは、移動体データのCSVファイルをZIP形式で圧縮したものを直接読み込み可能です。
さらに、ZIPアーカイブ中に可視化設定のファイルを含め、読み込み時に自動で適用させることもできます。移動体データ以外の追加ファイルを含むZIPアーカイブをMMZ形式と呼びますが、実態はZIP形式そのものです。拡張子はzip, mmzどちらでも構いません。
可視化設定は、JSON形式でmanifest.jsonというファイル名でなければいけません。以下はmanifest.jsonのサンプルです。
{ "layers": [ { "file": "buslocation.csv", "title": "バスロケデータ", "config": { "marker-sizing": { "bind": "delay", "rule": "to-large", "variation": 11, "legend": false }, "marker-coloring": { "bind": "delay", "rule": "hue", "variation": 11, "legend": true } } } ] }
layersは配列形式ですが、現状で含められるレイヤーの数は1つだけです。2つ目以降のレイヤーは無視されます。
layers配列の要素がレイヤー1つの設定を表します。