ODK Collect と Google ドライブを連携させてデータを保存、管理する

モバイル デバイスを使ってフィールド データを収集する組織がますます増加しています。Open Data Kit(ODK)は、Android モバイル デバイスを使ってデータを収集し、そのデータをオンライン サーバーへ送信することができる、オープンソースのツールです。データ収集時にインターネットへ接続したり、モバイル通信会社のサービスを利用したりする必要がありません。ODK Collect を使用すると、従来の紙フォームを電子フォームに転換でき、その結果、テキスト、数値データ、GPS、写真、動画、バーコード、音声をオンライン サーバーへアップロードできるため、データ収集プロセスを効率化できます。

Open Data Kit とは、ワシントン大学のコンピュータ サイエンス&エンジニアリング学科の開発者および Change のメンバーによって作成された、誰でも利用できるオープンソース プロジェクトです。ODK の詳細、最新情報、他のチュートリアル、プロジェクトへの寄付などについては、www.opendatakit.org をご覧ください。

ODK Collect では、現場で収集したデータの送信先を選択することができます。

  • ODK Aggregate。任意のクラウドベースのサーバー上で回答フォームおよび回答をホストできます。
  • Google ドライブと Google スプレッドシート。ODK Collect は Google ドライブのアカウント内の回答フォームにアクセスできます。また、Android デバイスで収集したデータを直接 Google スプレッドシートに送信できます。

Google ドライブと Google スプレッドシートを使用すると、モバイルでのデータ収集作業を簡単に行えるようになります。ODK 用のフォームを Google ドライブにアップロードすると、ODK Collect がフォームを認識します。次に、オフライン状態のモバイル デバイスでデータ収集を行います。再度オンラインになったら、収集したデータを Google スプレッドシートに送ります。フォームに写真が含まれる場合、Google フォトのアルバム アーカイブに限定公開(リンクを知っているユーザーのみが表示可能)で保存され、Google スプレッドシートとリンクされます。この方法なら、ODK Aggregate のようにサーバーを用意しなくても、ODK のデータを手軽に管理・保存することができます。

これよりも堅牢な方法をご希望の場合は、ODK Aggregate のチュートリアルをご覧ください。

チュートリアルの内容

要件

  • Google アカウントが必要です(新規に作成することも可能です)。
  • Android OS 1.6 以降を搭載している Android スマートフォンが必要です。

データの収集と送信に使用するフォームを作成する

ODK 用のフォームにはいくつかの作成方法があります。ODK Build(ドラッグ&ドロップによるフォーム作成ツール)を使用することも、XLSForm を使用してスプレッドシート上でフォームを作成することもできます。ユーザーの大半は Excel を使用してフォームを作成しますが、初めてフォームを作成する場合は、まずは ODK Build から始めるのが簡単です。ここでは、ODK Build を使う方法を説明しますが、他の方法については ODK のドキュメントをご覧ください。

  1. ODK Build にアクセスします。

  2. 新しいアカウントを作成するか、既存のアカウントでログインします。このアカウントは Google アカウントとは別のものであり、別のログイン名とパスワードを使用できます。フォームはこのアカウントに保存され、いつでもアクセスできます。

    Image

  3. ページの下部にある追加したい質問のタイプ(Location、Text など)をクリックして、フォームに質問を追加します。

    Image

    各質問には共通のプロパティや固有のプロパティがあります。共通のプロパティについての説明は下記をご覧ください。質問ごとに保存する必要はありませんが、すべて完了したら最後に必ずフォームを保存してください。

  4. 「名前を入力してください」など [Text] タイプの質問は [Label] セクションに入力します。

    テキスト フィールドの質問のプロパティを右側に入力します。テキスト フィールドの最小文字数や最大文字数を設定することもできます(省略可)。

  5. フォームで年齢などの数値を入力するには [Numeric] タイプを使用し、質問文は [Label] セクションに入力します。 [Properties] セクションで、数字を整数(Integer)として記録するか小数(Decimal)として記録するか指定します。

  6. ユーザーに日付の指定を許可する場合は [Date] タイプを使用します。スマートフォンは自動的に現在の日付を記録し、ユーザーはフォームに日付を入力したり修正したりできます。

  7. フォームのユーザーが GPS チップセットを備えたスマートフォンを使っている場合、フォームに [Location] のエントリを追加できます。GPS 位置を記録するよう促す質問が表示されます。スマートフォンの GPS で衛星位置を取得しながら、ユーザーはスマートフォンに内蔵の GPS 精度の推定値を表示できます。

  8. [Media] タイプを指定した場合、フォームのユーザーがフォーム回答データにメディア ファイルを添付できるようになります。メディア形式として、Image、Audio、Video から選択できます。フォームはデバイスのカメラモード、音声メモ モード、または動画カメラ モードに切り替わり、メディアはフォームのエントリとともに保存されます。この例では、[Label] セクションに「写真を撮る」と入力し、使用するメディアの種類としてプルダウンメニューから [Image] を選択します。ヒント: デバイスによってはデフォルトの画像サイズを小さくできます。これによりアップロード時のファイルサイズを抑えられるため、インターネット接続が遅い環境で写真を含むフォーム回答データをアップロードするときに便利です。

  9. 複数の選択肢から 1 つをユーザーに選択してもらいたい場合は、[Choose One] という質問タイプを使用します。[Add Option] をクリックすることで、表示する選択肢を指定できます。各選択肢には必ず対応する値も追加してください。これはすべての選択肢に必須です。使用できるのは小文字と、スペースの代わりのアンダースコア(_)です。

  10. 多項選択式の質問には、[Select Multiple] 質問タイプを使用します。[Choose One] と同様に、各選択肢には必ず対応する値を追加してください。その際使用できるのは小文字とアンダースコアだけです。

    フォームの質問の共通プロパティ:

    Data name(必須): フォームの xml に保存される変数名です。使用できるのは小文字と、スペースの代わりのアンダースコア(_)です。

    Label(必須): ユーザーに表示する質問を入力します。

    Hint: 質問のヒントまたはヘルプを指定します。注: フォームをローカライズする場合は、ここに英語のテキストとローカライズされたテキストを併記する必要があります。英語のデフォルト テキストを入力したくない場合は、テキスト エディタで xml としてフォームを作成する必要があります。フォームのローカライズについての詳細は、このチュートリアルの最後にあるヒントを参照してください。

    Default value: ユーザーに表示するデフォルトの情報です。たとえば、ある子供のグループに関する情報を収集していて、ほとんどの年齢が 12 歳であるとわかっている場合は、デフォルト値として「12」を入力することができます。

    Read-only: ユーザーが情報を入力できないようにしたい質問には、このチェックボックスをオンにします。

    Required: チェックボックスがオンになっている質問では、ユーザーが情報を入力しないとフォームへの入力が完了したとみなされず、フォームを保存できません。

    Image

  11. フォームが完成したら、ODK Build アカウントに保存します。[File] > [Save Form As] に移動します。アカウントへの次回のログイン時からは、[File] > [Open] を選択してフォームを開くことができます。

ODK Build について詳しくは、ODK のウェブサイトを参照してください。


フォームをデプロイする

ODK Build を使用して作成した回答フォームを Google ドライブでホストし、プロジェクト チームが各自の Android スマートフォンにダウンロードできるようにします。また、プロジェクト チームからの回答データの送信先および保存先となるスプレッドシートを作成する必要があります。

  1. Google アカウントを使用して Google ドライブにログインします。

  2. ODK プロジェクト用の Google ドライブ フォルダを作成します。[新規] をクリックし、[フォルダ] を選択します。新しいフォルダに名前を付けます。

  3. ODK プロジェクト用フォルダに新しいスプレッドシートを追加します。[新規] をクリックし、[Google スプレッドシート] を選択します。このスプレッドシートに ODK の回答データが収集されます。

  4. 新しいスプレッドシートで [共有] ボタンをクリックし、スプレッドシートを [リンクを知っている全員が編集可] に設定します。

    Image

  5. スプレッドシートの URL をコピーします。

  6. ブラウザの別のタブで、ODK Build から回答フォームを開きます。

  7. ODK Build で [Edit] > [Form Properties] に移動します。スプレッドシートの URL を [Submission URL] フィールドに貼り付けます。

    Image

  8. ODK Build で、フォームを XML ファイルとしてダウンロードします。[File] > [Export to XML] をクリックします。ポップアップ ウィンドウで [Download] をクリックします。

  9. もう一度 Google ドライブに切り替えて、[新規] をクリックし、ODK プロジェクト用フォルダに xml フォームをアップロードします。

  10. ODK プロジェクト用フォルダで XML ファイルをクリックし、[共有] ボタンをクリックします。設定を [リンクを知っている全員が編集可] に変更し、Android デバイスにフォームをダウンロードする必要があるすべてのユーザーを追加します。ユーザーがフォームをダウンロードできるようにするには、そのユーザーの Google アカウントにフォームを共有する必要があります。そうすることで、そのユーザーの [共有アイテム] に表示されるようになります。


ODK Collect をインストールして設定する

  1. Google Play ストアにアクセスし、ODK Collect を検索します。すでに ODK Collect アプリをインストール済みの場合は、最新バージョンにアップデートします。

  2. ODK Collect アプリを起動します。

  3. メニュー(右上にある 3 つの点)をタップします。

  4. [全般設定] をタップします。

  5. [サーバー設定] セクションの [種類] をタップして ODK Collect のデータの送信先を変更します。6 [Google ドライブ, Google スプレッドシート] を選択します。次に、[Google アカウント] をタップして、ODK Collect で使用するアカウントを指定します。ここで指定したアカウントが Google ドライブのフォームの格納先となり、ご自身や他のユーザーが送信した ODK のデータもこのアカウントのスプレッドシートに保存されます([フォールバック送信 URL] フィールドには何も入力しないでください)。

  6. ヒント: Android デバイスを、作成したフォームの編集権限がある Google アカウントに関連付ける必要があります。Android スマートフォンへの Google アカウントの追加

  7. 戻るボタンを押してメインメニューに戻ります。


ODK Collect を使用してデータを収集する

  1. [空のフォームを取得する] をクリックします。次に、[マイ ドライブ] をクリックします。ODK Collect アプリが Google ドライブ アカウントにアクセスできるよう、[許可] をクリックします。ODK Collect が Google ドライブ アカウント内の XML ファイルを自動検出します(フォルダ一覧の後に表示されます)。XML ファイルは、フォルダにまとめておくと見つけやすくなります。

    1. フォームを検索する: フォームは、ブラウジングするより検索したほうが簡単に見つかります。

    2. [マイ ドライブ] または [私と共有] からフォームを見つける: フォルダの階層をたどってフォームを見つけることも可能です(フォームをデータ収集担当スタッフと共有した場合、スタッフには [私と共有] からフォームを見つけてもらうことになります。ただし、基本的には検索のほうが手軽です)。XML ファイルは、フォルダ一覧の下に表示されます。

  2. 検索ボックスにフォーム名を入力して、追加したフォームを検索します。フォームが見つかったら、右側のチェックボックスをオンにして、[選択済をダウンロード] をクリックします。フォームのダウンロードが完了すると、「成功しました」というメッセージが表示されます。先ほど作成したサンプル フォームをダウンロードしてみましょう。

  3. ODK Collect のメインメニューで [空のフォームに入力する] をクリックして、情報の入力に進みます。入力が終わったら [確定済のフォームを送信] をクリックします。回答データが Google スプレッドシートに表示されます。

    1. 新しいシートに初めて回答を送信する際は、Google ドライブへのデータ送信の許可を求めるメッセージがデバイスに表示されます。シートにデータを送るには [許可] をクリックします。

    2. ヒント: Google スプレッドシートへの送信の際にエラーが表示される場合は、不要になった他のフォームを削除してみてください。メインメニューから [保存されたフォームを削除] をクリックします。

    3. 動画: ODK Collect から Google スプレッドシートへのデータ送信(1:53)


データを表示する

  1. Google スプレッドシートで、回答データ格納用に作成したシートを開きます。ページを更新しなくても、新しいデータが追加されていく様子を確認できます。

  2. フォームに写真を追加した場合は、その写真へのリンクがシートに追加されます。写真は個々のユーザーの Google アカウントに関連付けられた Google フォトのアルバム アーカイブに送信され、限定公開のアルバムとしてリンクを知っているユーザーにのみ閲覧権限が付与されます。写真は、それぞれフォームと同名のアルバムに保存され、同じフォームに送信された写真全体を閲覧できるようになります。

  3. 回答データを地図上で視覚化するには、Google マイマップを使用できます。作成した地図は Google ドライブのアカウントにも保存されるため、すべての ODK データを 1 つのドライブ フォルダでホスト、管理、および視覚化できます。詳細は、Google マップへ情報をインポートする手順の説明、またはマイマップを使用してカスタム マップ上でデータを視覚化するためのチュートリアルをご覧ください。データは CSV ファイルとしてダウンロードするか、Google スプレッドシートから直接インポートすることができます。

これで、ODK Collect のデータを Google ドライブに保存して管理できるようになりました。


次のステップ