Android: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
Line 22: Line 22:
For a dedicated app, the [https://f-droid.org/repository/browse/?fdfilter=manpages&fdid=com.chmod0.manpages Manpages] App ([https://github.com/chmod0/Manpages 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.
For a dedicated app, the [https://f-droid.org/repository/browse/?fdfilter=manpages&fdid=com.chmod0.manpages Manpages] App ([https://github.com/chmod0/Manpages 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 [http://packages.debian.org/pdftk PDFTk] for assembly and [http://calibre-ebook.com/ Calibre] for final conversions).
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, [http://packages.debian.org/pdftk PDFTk] for assembly, and [http://calibre-ebook.com/ Calibre] for final conversions)


Both dedicated App and eBook solutions should be searchable.
Both dedicated App and eBook solutions should be searchable.

Revision as of 23:18, 25 October 2013

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 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 v.in.gpsbabel 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.

It is expected that FOSS field software for archeological and geophysical field surveys will be available in the near future.

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. 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

Hotspots

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, to 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.