Tech Enabled Field Studies, Third Edition

The latest from Carte Diem Press is a Third Edition of this popular book from Tom and Roger on field studies includes the technology and how to information to implement into many settings. The 3rd Edition includes drones, programming, Raspberry Pi, and updated workflows… and an online companion.

We created this resource for educators who want to do research with learners –typically 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.

Order at GISetc. >>

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.

 

Harvesting ArcGIS Online Data and Maps Metadata

This short article describes a process where Python was used to harvest metadata from a list of identified ArcGIS Online maps and the maps’ data services. The data were logged to MySQL (with pymysql); a PHP web search and discovery page was created.  The process allows for keyword searching in titles and descriptions of maps and data layers.

Why harvest metadata?

This approach was used as our collection of 150 maps is housed in several AGO organizations with data services spread across even more.  These data and maps are designed for student use and vetted, making school curriculum authors interested in search and discovery of “good” data.  Essentially, we have a target population that is keenly interested in a subset of scattered data and maps.

Who might use this approach?

This article may be of interest to developers needing to create a search solution across a specific list of maps and constituent data services.

The Approach

Using the ArcGIS Python API 1.5.2 and a prebuilt list of mapIds, a script was built that iterates over the list, logging titles and descriptions for the maps.

with open('data/maps.csv') as f:
reader = csv.reader(f)
for map in reader:
result = gis.content.get(map[0])
web_map_obj = WebMap(result)
web_map_obj
web_map_obj.layers

Using the layers attribute now available for the map object, we then loop over all the layers in the map (above), also logging titles and descriptions.

We then log the data to a MySQL table (with a custom function), like:

dbwriter(
  objectType='Webmap',
  mapId=result.itemid,
  objectName=result.title,
  url='http://www.maps.arcgis.com/home/webmap/viewer.html?webmap=' + result.itemid,
  description=ssnippet
  )

Then loop over each layer and log to the table, slightly changing parameters as necessary.

You can access the script at GitHub below. The Python code, a sample CSV input file, and a sample SQL script for generating the MySQL table are included.

github  https://github.com/trbaker/mapHarvest