LoginSignup
9
12

More than 5 years have passed since last update.

Googleのイカしたデータ集めツール「Open Data Kit」セットアップまとめ

Last updated at Posted at 2016-05-01

Open Data Kit (ODK) とはなんぞや

https://opendatakit.org/
Googleの方がワシントン大学在学中に開発した、GoogleCloudPlatformとAndroidを使ってデータ集めと可視化をサポートするキット。
シンプルな質問項目を自分でつくることができ、電波がなくてもデータを集めることができ、それをGCP経由で書き出したり整理したりできる、ということで、アメリカや発展途上国などを中心に、主に社会問題解決のために様々な場所で使われているそうです。

以下適当な訳文。

オープンデータキットは組織の作者や地域、モバイルデータ集めの解決を助けるフリーのオープンソースセットです。

  • データ収集フォームまたは調査をつくる
  • モバイル・デバイスでデータを集め、サーバーに送る
  • サーバー上の集められたデータを集計し、有用なフォーマットでデータを抽出する

ODKは、GPS位置情報と写真を用いた社会経済学的調査・健康調査に加え、臨床医の意思決定を助けたり、複数のメディアに適用可能な自然マッピングツールの形成にも役立ちます。
ワシントン大学のコンピューターサイエンス&エンジニアリング学部で研究が続けられています。

どうやって使うの

https://www.google.co.jp/intl/ja/earth/outreach/tutorials/index.html#odk
上記のGoogle Earth Outreachのチュートリアルサイトでもだいたいのことはわかりますが、なぜかチュートリアルのサイトが開けなかったりいろいろうまく行かなかった部分があったので、参考文献とハマりポイントなどを簡単にまとめておきます。

主に下記の3つの手順があります。

手順 内容
Build 質問フォームをつくる
Collect 回答をアプリで集める
Aggregate 回答を集約し活用する

Build

【参考】
◇ODK公式:Build
https://opendatakit.org/use/build/
◇GoogleEarthOutreach:ODKを使用した携帯端末でのデータ収集入門
https://www.google.co.jp/intl/ja/earth/outreach/tutorials/odk_gettingstarted.html

これらを見れば完璧にできると思います👯
ブラウザ上で質問項目をつくり、できたらSaveしてxmlでエクスポートしましょう。

Collect

【参考】
◇ODK公式:Collect
https://opendatakit.org/use/collect/
◇GoogleEarthOutreach:ODK Collectを使用して携帯端末でデータを収集する
https://www.google.co.jp/intl/ja/earth/outreach/tutorials/odk_collect.html

Android端末を持っている人は、Playストアから「ODK Collect」をダウンロードしましょう。
Android端末を持っていない場合はAndroidエミュレータを立ち上げる必要があります。ぼくはAndroidエミュレータ使った経験がなかったのでこれにズッポリハマりました。
上記のODK公式には「Androidエミュレータは不安定でバグだらけだから極力Android端末使ってね」と書いてあります。ぼくもそのほうが良いと思います。

この時点ではまだ自分のサーバーに繋がっていないのでODK Collectだけでは自分で作ったアンケートは(多分)集計できません。のでGoogle Cloud Platformでプロジェクトを作ります。ODK Collectが動くのを確認したらAggregateに進む。

Androidエミュレータを使うときの注意

エミュレータに関するODK公式からのアナウンス
https://github.com/opendatakit/opendatakit/wiki/DevEnv-Setup

↑これに沿ってAndroid Studioを動かしたのですが、仮想端末にPlayストアを入れる方法がわかりませんでした。のでぼくは下記のやりかたをとりましたが、この辺スイスイできる人ならODK公式どおりにやったほうが良いかと思います。

ぼくはGenymotionを使いました。

【参考】
◇MacでAndroidを動かす方法(Genymotionを使って)
http://akiueo.hatenablog.com/entry/mac-android-genymotion-201505
◇Genymotion の仮想端末に Google Play を入れる(2015/10時点)
http://qiita.com/snaka/items/9e770f2b8be2a6b2e662
◇How do you install Google frameworks (Play, Accounts, etc.) on a Genymotion virtual device?
http://stackoverflow.com/questions/17831990/how-do-you-install-google-frameworks-play-accounts-etc-on-a-genymotion-virt
↑ここからARM Translation Installer v1.1とGoogle Play for Androidを落としました。この辺もなかなか曲者でした。

結局うまくPlayストアが入ってODK Collectを動かすことができたのはNexus5(Android 5.1)でした。他の仮想端末で4.4.4とか6.0も試しましたがうまく行きませんでした。たぶん他にもうまく動くパターンがあると思いますが試してません。

Aggregate

◇ODK公式:Aggregate
https://opendatakit.org/use/aggregate/
◇GoogleEarthOutreach:ODK Aggregate を使用してデータを管理する
https://www.google.co.jp/intl/ja/earth/outreach/tutorials/odk_aggregate.html

↑GoogleEarthOutreachの解説ですが、たぶんチュートリアル用に用意してあるサーバー http://odk-tutorial.appspot.com/ が動かないので、自分で用意する必要があります。頑張りましょう。上記のODK公式の方に英語ですが詳しいリファレンスがあります。

ぼくはこのタイミングで初めてGoogleCloudPlatformを触ったのと、バックエンドは本当に何にもわからないので相当迷子でした。その辺わかる人ならスルッとできるかもしれません。
初めて触る人は、GoogleCloudSDKを先に入れて、AppEngineチュートリアルは先にやっておいたほうがいいかもしれません。

【参考】
◇Google Cloud SDKのインストールと認証の設定について
http://www.task-notes.com/entry/20151019/1445223600

以下ODK公式:Aggregateのざっくり訳。

  1. Java 7以上をインストール
  2. Gmailアカウントが必要。Google Cloud PlatformはProjectを立ち上げたりApp Engineの軽い使用にはお金を要求しない。フリーで使えるレベルを超えるとApp Engineサーバーはカリフォルニア時間の深夜0時から24時間止まる。
  3. Google Cloud Platformにアクセス、My Consoleを開く https://cloud.google.com/
  4. GCPのプロジェクトを作ったことがなければ、Create an empty projectする。作ったことがあればどれでも良いから選ぶ。
  5. プロジェクトIDがURLの一部になる(URL手打ちすることがあると思うので短くしておいたほうがいいです)
  6. ODK Aggregateをダウンロードする https://opendatakit.org/downloads/
  7. インストーラを開き、ローカル保存先を指定し、Google App Engineを選ぶ
  8. instance nameはAppEngineインスタンスの名前を入れる。
  9. UserIDは忘れないユーザーIDを入れておく。ODK Aggregateにログインするときに使う。
  10. URLを開き、AppEngineにプロジェクトIDと同じ名前のapplicationができていたら、application idにはプロジェクトIDを入れる。下のチェックはしない(このAppEngineにインスタンス立てるところハマってゴタゴタしてるうちにうまく回るようになったので、ここの手順違うかもしれません)
  11. ODK Aggregate App Engine Updaterを起動、Google Cloud Platformのアカウントのメールアドレスを入れ、Verify Tokenを押すと許可を確認されるので許可
  12. ブラウザが開きコードが出てくるので、Updaterのしかるべきフォームに入れてOKを押す
  13. 処理が出てきて最後Succeeded!と言われるのでUpload ODK Aggregateも押す
  14. またSucceeded!と言われれば多分OK。言われなかったら処理内容に何か書いてある可能性高。言われてうまく動かなかったらAppEngineのインスタンスの設定などを見直しましょう。

ここまでうまくいっていれば、http://プロジェクトID.appspot.com にアクセスすると、GoogleEarthOutreachの記事のチュートリアル用サイトと同じ画面になると思います。
ぼくのプロジェクトのサイトを見たい方がいればTwitterなどでご連絡ください!

ここから先は当該記事に従ってログインしていくと、ODK AggregateインスタンスにBuildで作成したフォームをアップし、端末で回答して送信、集計することができるはずです。

ODK Collectアプリから自分のフォームに回答する

上記の記事の手順に従ってフォームをアップしたあと、Collectの記事の通りに「プラットフォーム設定の構成」を行うと、ODK Collectアプリに自分のフォームをダウンロードすることができます!!やったね!!ぼくはここまで8時間かかったよ!!
スクリーンショット 2016-05-01 0.59.36.png

あとは左スワイプしながら回答してアップするだけ。そうするとODK Aggregateインスタンスに回答がたまっていきます。

スクリーンショット 2016-05-01 19.41.55.png
いろいろ設定を整えたうえでPublishを押すとデータの書き出しができるようです(まだ試してません)。右上の「Visualize」というところを押すとごく簡単なヴィジュアライズができます。

スクリーンショット 2016-05-01 19.41.30.png
エミュレータの偽位置情報です。ぼくの故郷・北海道遠軽町は最高です。

以上

バックエンド強くなってGoogleCloudPlatformとかガリガリいじりたいです(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)💻💻💻💻💻🐥💻💻💻💻💻

FieldHackONAGAWAたのしみです!!

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12