ODK Collect および ODK Aggregate を使用してデータを保存および管理する

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

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

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

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

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

専門知識を必要としないシンプルな方法をご希望の場合は、ODK Collect と Google ドライブのチュートリアルをご覧ください。

チュートリアルの内容

要件

  • Google アカウントが必要です(新規に作成することも可能です)。

  • Android OS 1.6 以降を搭載している Android スマートフォンが必要です。

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

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

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

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

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

    ODK 用フォームのスクリーンショット

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

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

    フォームのプロパティのスクリーンショット

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

  12. パソコンにファイルをダウンロードするには、[File] > [Export as XML] を選択します。xml コードが表示されます。[Download] ボタンをクリックすると、ファイルが xml ファイルとしてパソコンに保存されます。これは次のステップでスマートフォンにインポートするフォーマットです。

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


ODK Aggregate インスタンスの設定

回答フォームをホストする ODK Aggregate の独自のインスタンスを設定して、データ収集者が Android デバイスにダウンロードできるようにします。ODK Aggregate は、収集したアンケート データの保存、管理、視覚化、公開、エクスポートにも使用されます。

ODK Aggregate はオープンソースの Java アプリケーションで、Google Cloud などのクラウド プロバイダ上でホストできます。その他のクラウド プロバイダについて、あるいは ODK Aggregate の詳細なインストール手順については、ODK のドキュメントを参照してください。


フォームをデプロイする

ODK Aggregate インスタンスを設定したら、フォームをアップロードできます。フォームを使用したデータ収集まであと一歩です。フォームをアップロードすると、Google アカウントを持ち、AppEngine インスタンスのドメイン名を知っている人なら誰でもフォームおよびその回答データを見たり、フォームをスマートフォンにダウンロードしてフォームに入力した回答データをアップロードしたりできます(AppEngine の設定画面でアクセス権を設定できます)。

  1. ページ上部の [Form Management] タブをクリックします。

  2. [+Add New Form] ボタンをクリックします。

  3. お使いのパソコンから、アップロードするフォームを選択できるようになります。ODK Aggregate インスタンスにアップロードする .xml フォームを選択してください。フォームに関連付けられたメディア ファイルがある場合(フォーム内の質問に画像が付いている場合など)、フォームが XML で参照するメディア ファイルもここでアップロードできます。

    "Xform Upload" モーダルのスクリーンショット

  4. [Upload] をクリックします。XML フォームの形式に問題がなければアップロードが実行され、フォームが [List of Forms] ページに表示されます。


ODK Collect をインストールおよび設定する

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

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

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

  4. [全般設定] をクリックします。[サーバー] をクリックします。

  5. [サーバー設定] セクションの [種類] をクリックして ODK Collect のデータの送信先を変更します。7. [ODK Aggregate] を選択します。

  6. 次に、[URL] をクリックし、お使いの ODK Aggregate サーバーの URL を入力します。

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


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

  1. [空のフォームを取得する] をクリックします。

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

  3. ODK Collect のメインメニューで [空のフォームに入力する] をクリックして、情報の入力に進みます。入力が済んだら、[確定済のフォームを送信] をクリックします。フォームが ODK Aggregate インスタンスに送信されます。


データを表示する

  1. ODK Aggregate インスタンスの [Submissions] タブをクリックし、プルダウン メニューから “Sample” フォーム、あるいは表示する回答データのフォーム名を選択します。“Sample” フォームの横の [View Submissions] ボタンをクリックします。

    回答データ リストのスクリーンショット

  2. ご自身または他のユーザーによって作成された入力済みのすべての回答データが ODK Aggregate インスタンスに表示されます。写真付きの回答データの場合は行の右端にリンクが表示され、写真を個別に閲覧できます。


Google Earth でデータを表示する

データは Google Earth で表示することもできます。

  1. ODK Aggregate インスタンスの [List of Forms] ページで、[Create KML file] をクリックします。

  2. オプションが複数表示されます。[Field to Map] で、フォームの GPS 位置に関する質問に対応するフィールドを選択します。[Title Field] で、Google Earth のポップアップ バルーンの一番上に表示するフィールドを選択します。[Picture Field to Display] では、写真に対応するフィールドを選択します。続いて [Submit] をクリックすると、Google Earth KML ファイルのダウンロードが開始します。

    Export ボタンおよびエクスポート形式が強調表示されたスクリーンショット

  3. ダウンロードが完了してからファイルをダブルクリックすると、そのファイルが Google Earth で開きます。すると、各回答データの目印が表示されます。目印をクリックするとポップアップ バルーンが開いて、その回答データのデータ値が表形式で表示されます。

    Sample.xml フォームを使用している場合は、次のようなポップアップ バルーンが表示されます。

    拡大された目印バルーンとデータ値の表を示すスクリーンショット

ヒント: データを Google Earth にインポートした後は、ポイント、ライン、ポリゴンなどを追加して、収集したフィールド データをより効果的に表現できます。Google Earth へのアノテーションの追加方法

作業中の地域の過去のイメージを表示できる場合は、その場所の継時的な変化を見ることができます。Google Earth での過去のイメージの表示方法

さらに Google Earth では、ご自分がデータを収集している地域や、データを収集する目的と目標、現地の状態についてユーザーに訴えかけられるよう、ナレーション付きツアーを作成することもできます。Google Earth でのナレーション付きツアーの作成方法


ディスカッションとフィードバック

このチュートリアルについてご不明な点やご意見がございましたら、Google Earth のヘルプ コミュニティをご利用ください。他のユーザーと意見交換を行っていただけます。


次のステップ