From GRASS-Wiki
Jump to: navigation, search

GRASS on Android Devices

Android devices (tablets and phones with touch screens) can run or augment GRASS in a number of ways:

  • The GRASS software itself can be run on the Android device
  • The Android device can be used to display reference material
  • The Android device can be used as a GPS source or provide other sensor data

Running GRASS software on Android

Since GRASS is written in C, Bourne shell script, and Python, and Android apps are written in Java, the GRASS software will not be available as an App any time soon.

However, on a developer mode/jailbroken/"rooted" Android device you can install Lil' Debi which will allow you to run an embedded version of Debian/Linux for which GRASS is already packaged. This is similar to, and perhaps a bit easier than, the Raspberry Pi install.

A Bluetooth mouse, keyboard, and external monitor (if your device supports them) can help improve the user experience, although the solution will not be as field-portable.

Device used as a reference guide

Laptop (and workstation) users who wish to maximize their screen real-estate can view the GRASS help pages and Programmers' Manual on their tablet or phone instead of competing for space on the main monitor. In the simplest case this can be done by opening the device's web browser and navigating to the online versions at the GRASS website, but for use in the field where WiFi or cellular coverage is not practical a dedicated app or eBook with the help pages and module synopsis downloaded to your phone will be useful.

For a dedicated app, the Manpages App (BSD-licensed code here) might be a good staring point for app development in the GRASS SVN sandbox, but with help pages arranged by raster/vector/general/... sections instead of traditional man page sections.

Perhaps easier and more-portable is to create a GRASS Reference Guide eBook containing the introduction pages, module synopsis, and full module help pages. Much of this is already in place -- since HTML is by definition already marked-up text there are many tools to automate the conversion into to LaTeX or DocBook formats, and from there into PDF, Mobi, or ePub formats. (see also the scripts in the source code tools/ directory, PDFTk for assembly, and Calibre for final conversions)

Both dedicated App and eBook solutions should be searchable.

If you are at a university, see if your library offers an electronic version of the various published GRASS Books. (Neteler and Mitasova 3rd ed. is available from mine as individual chapters)

Device used as a recording slate in the field

You can use apps such as Geopaparazzi, gvSIG Mini, and many from OpenStreetMap including OSMAnd~'s editing plugin to record and annotate data in the field, then load the results onto your main GRASS laptop or workstation afterwards.

POI (points of interest) are often saved into a custom Sqlite DB by the Android App, GPS tracks are typically saved into a GPX file which can be imported into GRASS with the module, and OpenStreetMap data and "diffs" saved in a GPX-compatible text format. Likewise grids, aerial imagery, and transect line plans can be prepared on your GRASS workstation and loaded onto the tablets or phones at the start of the day. (see v.out.gpsbabel for creating GPX files from GRASS vector maps)

The F-Droid project hosts many Free and Open Source applications for Android, including GPS loggers, see the navigation apps section. Check both the F-Droid site/app and the Google Play store for the latest versions, one or the other can sometimes be out of date.

The My Fake Location app is useful during testing indoors when no GPS signal is available.

It is expected that FOSS field software for archeological and geophysical field surveys will be quickly mature in the near future, sooner if we help. :-)

North Carolina sample dataset's roadsmajor and usgsgages vector maps (exported as GPX with v.out.ogr) draped over an MBTiles tileset of the combined soilsID and elevation_shade raster layers (exported with r.out.mbtiles) in Geopaparazzi.
  • The r.out.mbtiles script can be used to prepare an offline TMS tileset or MBTiles SQLite database suitable for the fine Geopaparazzi Android field notes app. GDAL has read support for MBTiles since version 1.10. Currently the best way to export Spatialite vector layers is to use v.proj to pull them into a lat/lon location in GRASS, then in QGIS enable the GRASS Toolbox and connect to the mapset, add the GRASS vector layer, and right click on it in the layer list on the left and choose "Save As...". Select spatialite as the file type. Import projects back into GRASS with the addon module.

Device used for live data input

Most Android devices contain sensors such as an electronic compass (which can be pressed into duty to record magnetic anomalies), GPS, and attitude (e.g. for measuring dip angles). Besides recording internally these can be immediately sent to a paired laptop or field recording device via Bluetooth or a custom Wifi app.

Field deployment


This is not particular to GRASS, but may be useful in field logistics, for example if the field station has a wired or satellite internet connection this can be relayed to the field study site (WiMax or Pringle can/wok antennas?) and from there your field assistants can be connected to each other or a central field data collection point via a local hotspot. In this way they can pull data to coordinate on a local virtual-grid, communicate/share lists, consult reference guides, and instantly upload photos or results back to the field coordinator.

Android cell phone as a hotspot

("tethering" often refers to USB or Bluetooth connection to a single computer, here we look at a WiFi hotspot for many computers to use simultaneously)

There are many guides and helper-apps on the internet, you might start with Google's help page on the subject. Your particular phone may or may not include support (many carriers like to charge extra for this capability), in which case you may need to "root" it, re-flash to a custom ROM (e.g. CyanogenMod), or find another phone to use.

  • Settings → Wireless & networks → Tethering & portable hotspot → Set up Portable Wi-Fi hotspot.

Laptop+ethernet at a hotspot

A WiFi device in your laptop is a two way radio, and many models can be repurposed as a hotspot if the WiFi device is not otherwise being used, e.g. if the primary connection to the internet is via wired ethernet. For laptops running Ubuntu 12.04 or Debian Wheezy there's a handy script for setting up and starting & stopping your local hotspot. You'll need to install the wireless-tools, hostapd, dnsmasq, iw, and libnotify-bin packages. Remember many desktop systems (especially Macs) also contain an in-built WiFi chip these days.

To see if your wireless card supports Access Point mode, run the following command and look for "AP" in the list of supported interface modes:

iw list

There are two main network modes: Ad-hoc and Access Point. AP (Access Point) will be more compatible. Setting up ad-hoc and relaying mesh networks (for less than about 30 nodes) is another option.