ArcGIS on a Pi: Happy Pi Day!

This post describes how to install the ArcGIS API for Python on a Raspberry Pi 3 B+.
Document version: March 14, 2019. Version 1.1 – Tom Baker RPi-Logo

To learn more about the Raspberry Pi, visit http://raspberrypi.org.

Start with a clean installation of the Raspberry Pi’s Raspbian OS for best results.

Installations

  1. Install Berryconda

    Berryconda for Raspberry Pi is the conda environment for Pi. The installer includes Python 3.6.1 at the time of this writing and meets the minimum Python 3.5 requirement of the ArcGIS API for Python 1.6.0.

    1. Download the bash script (.sh file) for Berryconda3-2.0.0-Linux-armv71.sh from the bottom of the page: https://github.com/jjhelmus/berryconda
    2. With the file on your Pi, right-click and select Properties. Set permissions to “Only Owner” to execute. Press OK.
    3. Open a Terminal window in the current folder and run the bash script. Start the command with a period and paste the filename. Like (ignore indentation icon):
      • ./Berryconda3-2.0.0-Linux-armv71.sh
    4. Click through the Terminal prompts to install. Use default settings.
  2. Install Jupyter Notebook

    1. At a Terminal prompt, type:
      • conda install Jupyter
  3. Install the ArcGIS API for Python

    1. Check your python version. Use the Terminal window and type:
      • python –version
    2. Download the arcgis package from the anaconda repository for 32-bit Linux that matches your version of Python (e.g. 3.6). The file name should look something like: linux-32/arcgis-1.6.0-py36h39e3cac_1.tar.bz2
    3. Download from https://anaconda.org/Esri/arcgis/files
    4. Note: In our tests, the arcgis file cannot be directly downloaded using conda from any repository.The conda tool fails to find the required “linux-armv71” channel for arcgis.  However, downloading the file and installing from a local path negates the conda installer looking for the arm-specific version of arcgis.
    5. Right-click the package and select “Copy Full Path”.
    6. From a Terminal window, install the package like:
      • conda install /fullpath/arcgis-1.6.0-py36h39e3cac_1.tar.bz2
  4. Test the installation

    1. At a Terminal window, type:
      • jupyter-notebook
    2. When the notebook loads in a browser, create a new Python3 document.
    3. In the document’s first cell, enter the four-line test script below that will draw a map.
      • from arcgis.gis import GIS
      • gis=GIS()
      • map1 = gis.map(“Palm Springs, CA”)
      • map1

 

Raspberry Pi Models Tested

To date, we have used the following Pi models with the ArcGIS API for Python and Jupiter Notebooks. Brief comments follow.

Raspberry Pi 3 B+ – Quad-Core BROADCOM 64bit ARMv8 1.2 GHz 1 GB RAM

  • Demo installation above was conducted on this model.  Maps draw responsively with a slight lag on the first request.

Raspberry Pi Zero W v1.1-

  • It took about 5 minutes to run the four line script above.

Spatial Citizenship Education

I’m delighted to share a chapter with Curtis and Millsaps in this new book from Shin and Bednarz! sce_book

Spatial Citizenship Education: Citizenship through Geography (Shin and Bednarz, 2019) is the inaugural book exploring the contribution of geographic education (and geographic technologies and spatial thinking) to the development of the citizen.  It describes citizenship development through a rich understanding of spatial and geographic narratives. The book includes a history of geographic education as well as theoretical and conceptual elements of the work of geography education. Geography teachers, teacher educators, and GIS education researchers should consider this volume as a critical contribution to their well-rounded library.

 

Chapters include:

  • Conceptualizing spatial citizenship
  • Geography as a social study
  • Geography, capabilities, and the educated person
  • The spatial production and navigation of vulnerable citizens
  • Citizenship education in a spatially enabled world
  • Rediscovering the local
  • Cultivating student citizens
  • Geotechnologies and the spatial citizen
  • Informed citizenry starts in the preschool and elementary grades – and with geography
  • Spatial citizenship in the secondary geography curriculum
  • Spatial citizenship in the geography/social studies teacher education

 

Amazon link to the book.

 

 

Mapping Your Geotagged Images

Originally published November 12, 2018 on LinkedIn.

Geotagged images are taken constantly, usually by people with smartphones, perhaps even by people unaware that latitude-longitude information is embedded in the header of the images.  For many casual users, seeing these images in a smartphone’s built-in Photo app with a simple map feature is all the mapping they’ll want.  But for the carto-literati, nothing short of a photo-map service and map will suffice.

This post walks through Python 3 code that uses the Python Imaging Library (PIL) and ArcGIS Online API for Python to extract geotag info, build a CSV, and publish the data out as an ArcGIS Online data service.  The required software stack looks like this:

  1. Python 3.x
  2. Jupyter Notebooks
  3. ArcGIS Online API for Python
  4. PIL
  5. This workflow also assumes your images are stored in a local Dropbox folder(or similar file synchronization tool).

The sample Python code can be found on GitHub.  The sample of the ArcGIS Online map is above and in the article header graphic. After getting the stack installed, you’ll need to download the sample script and enter your:

  1. Local Dropbox folder path
  2. Web URL to the shared Dropbox folder
  3. Your ArcGIS Online details

My sample images included 150+ iPhone images of a recent trip to Italy. The first block of Python code uses PIL to read the image headers and write out a CSV to the root image folder. Because the images are local, this section of the script runs very quickly.  You can stop here if you just want the CSV file or run the second code block to publish the CSV to your ArcGIS Online account. From there, add your new map layer to a map and share! Your markers will be clickable with a link to your images.

Using geotagged images can be a great way to capture verifiable data in a project-based learning or citizen science exercise. Students can collect data with photographs, share their images to a DropBox file request, and then use this script to map the pictures.

Tech Enabled Field Studies, ed 2

We created this book for educators who want to do research with learners –typically IMG_2032
classroom teachers working with their students in Earth Systems or Environmental Science, Geography, or History.  The book would also be useful to those running outdoor education or field research programs for students of all ages; however, as the title suggests, we do focus on tech-enabled methods, tools, and analysis.  Most of the content assumes that the research will be conducted outside or “in the field”. We believe it will provide powerful justification to include these projects in your classes. we believe this volume would make a great addition to any reference library on field research techniques.

Chapters in edition two include:

  • What are field studies and why use them?
  • Designing a field study
  • Data, Data, Data
  • Field Instruments
  • ArcGIS Online and Field Studies
  • Geotagging Images for Field Studies
  • Survey123 Web
  • Creating an Editable Feature Service in ArcGIS Online
  • Editable Feature Services and ArcGIS Desktop
  • Mapping and Data Analysis in ArcGIS for Desktop

To purchase the book, visit Amazon or GISetc.