Fun with the Open Data Kit

12. July, 2011 • 14 Comments

I’ve recently rediscovered the Open Data Kit project and have been having a lot of fun playing around with this suite of tools designed for building mobile data collection solutions. ODK is a Google sponsored project, which is supported by the University of Washington’s Department of Computer Science and Engineering. It appears mainly aimed at humanitarian projects in the developing world, but looks like it may be creeping into the business sector as well.

The basic ODK workflow:

GIS Potential:

ODK has the potential to fill a crucial gap that has existed for years between low-end recreational GPS units (think eTrex) and high-end GPS data collectors (think Trimble). Recreational GPS units are dirt cheap and fairly accurate these days, but they lack any sort of sophisticated data collection capabilities. You get waypoint name and description fields, and a selectable symbol if you are lucky, but this just won’t cut it for most GIS projects where data integrity is paramount. Most recreational GPS units are built on closed platforms (Garmin, Magellen) while the industry standard for high end units seems to be  Windows Mobile (ArcPad, TerraSync).

Smartphones however, offer reasonably cheap hardware paired with sophisticated open operating systems. Most have decent cameras and GPS sensors and they are connected to the web by default. There are tons of GPS and mapping apps already out there, but what we really need is a generic application that works with our custom data dictionaries or forms- and this is where ODK shines!

Tips, Tricks, and Hacks:

As a Google project, ODK works seamlessly with App Engine and Fusion Tables, which is cool in and of itself, but hardcore GIS requires more tweaking. A Java application that uses PostgreSQL just screams out for PostGIS and GeoServer integration! Here’s what you need to know to get this system up and running…

Prerequisites:

Lessons Learned:

ODK + PostGIS + GeoServer + Leaflet:

An exercise in open source mobile GIS data collection: http://geoserving.net/odk_geoserver

14 Comments to “Fun with the Open Data Kit”

  1. [...] his Fun with the Open Data Kit blog post, he writes, “ODK has the potential to fill a crucial gap that has existed for years [...]

    • We are ODK users (for large scale population surveys on Human Rights in Africa) and because it’s open source we were able to develop a custom version of the software called KoBo. We also built on the idea of digital data collection with some added software. To handle the complex construction of XML surveys, we developed the KoBo Form Builder (http://formbuilder.koboproject.org/KoBoFormDesigner.html) which helps non-programmers create large surveys with complex skip logic. Because we work in Africa, where connectivity is unreliable, we created the Post Processor for offling synching and aggregation of data. This puts all collected data into a CSV. I encourage you to take a look at KoBoProject.org.

  2. Sindile says:

    Wow this is cool. But trying your application returns the following:

    Connecting to server gives this error Error getting form list form listing failed. null

    I am using ODK Collect 1.1.5

  3. Sindile says:

    Works

  4. Tumaini says:

    Hey Bryan, am really new to ODK (couple of days old actually) and though your project above sounds something I would REALLY like to try, it seems aimed more at those with enough experience to follow, e.g. “Make sure you create your intended ODK postgres database using the PostGIS template!”… but I would love to know how to even get ODK working with Postgres to begin with, so for us complete newbies (well, just me I guess :-) ) could you please maybe explain how to set up ODK Aggregate locally and working with Postgres, and then maybe flesh out some of the bullet point instructions above? It would be tremendously useful for people just getting into ODK, and there are not (or dont seem to be, or disjointed efforts in creating) enough documentation to guide the absolute novice through these processes.

    Thanks for understanding, and look forward to hearing from you. Am on tkilimba at ihi dot or dot tz, you can hit me up there maybe if you have the time?

  5. Andy says:

    I am also trying to you use ODK to collect data using an Android device. I have that working but would like to map those GPS collections in real-time using a Google mashup or Geoserver. Neither I am have any experience with. Any help would be appreciated.

  6. Sebastian says:

    Brian, I’m trying to modify your example to achieve the WFS-T are editable on the client side and not only be able to view them. I am currently trying to include the primary key metadata table in Postgres as described (http://docs.geoserver.org/latest/en/user/data/primarykey.html), but I have been unsuccessful.

    any clue would be of great help to me.

  7. Bryan says:

    Sebastian,

    If you are doing editing, you may want to avoid the view completely and write a stored procedure or function that inserts the ST_GeometryFromText bit into your geometry field. I have never messed around with the primary key metadata table you referenced.

    BRYAN

Leave a comment