A brief overview of tools for field data collection.


I am often in the field, making observations. I would like a convenient way to capture observations for later analysis.

Observations might include:

  • Categorizations from a known taxonomy (species etc)
  • Textual descriptions
  • Location
  • Images (, audio, video)

Quick start

To get started with mobile data collection right away, sign up for a free account at https://kf.kobotoolbox.org/ and use their graphical survey editor to author a survey.

Another great hosted option is https://beta.ona.io. It doesn't have a built in form editor, so you would author your forms using a spreadsheet.

Both hosted options integrate with Enketo to allow you to submit responses using a web browser or mobile device. Enketo allows you to do offline data collection and batch-submit responses later. You can "install" Enketo to your phone by selecting "Add to home screen" on Android/Chrome (similar on iOS).

OpenDataKit Ecosystem

There is a very productive ecosystem of open source/non-proprietary data collection tools, largely developed in the context of the needs of humanitarian aid organizations, which started with the OpenDataKit suite of projects.

ODK defines a standard format for describing a survey form (a subset of XForms), as well as a convenient precursor format, XLSForm which allows authoring surveys using a spreadsheet. These two formats provide the main integration point for tools in the ecosystem.

ODK Collect is an Android app that can fetch a survey form, display an interface for filling it out, and submit responses back to a server. It's kind of ugly but functional. There is also a variant GeoODK Collect that supports offline map tile caching for geospatial data collection.

Enketo is an excellent alternative to ODK Collect that is developed as a mobile-friendly web application. You can install it to the home screen of your device and use it offline, just like a native app. It supports geo fields (points, polygons, etc), images/audio/video, and much more. Enketo is designed to be integrated with a survey server such as Onadata or KoboToolBox.


How can I create cascading select questions?

A cascading select is a series of single select questions where the available choices for each question depend on previous selections.


  • Country > Province > City
  • Group > Species > Variety

While Kobo's graphical survey editor doesn't support creating cascading selects, the underlying form spec does. Author your form as a spreadsheet and then upload it to KoboToolBox or Onadata as XLSX. Check out Kobo's kb entry on cascading selects as well as the ForageLog form for examples.

How can I get response data into another system?

You probably want to ship responses into your analysis tool of choice, be it a SQL database, elasticsearch instance, or spreadsheet. There are three basic options:

If you use Kobo or Ona:

  • Do a one-time export once you're done collecting data
  • Use their built in webhook support (see https://ona.io/static/docs/restservices.html) to forward responses to your server as they come in. Contact me if you want help with this integration (it's pretty simple).

If you want responses to go straight to your server:

  • You can generate your own XForm and integrate with Enketo to provide a UI for filling it out, skipping the intermediate server. I can help with this, again it's pretty straightforward.