This code repository serves as the course website for ENVM-680 Spring 2018, Web-based geospatial analysis. The class will provide students with a working knowledge of web-based mapping for a range of applications. We will rely on the Carto platform. Students will have the opportunity to create maps and learn about programmatic ways to query/analyze geospatial data, embed maps in blogs, and other modern techniques for analyzing and sharing geospatial information.

Course information


  • Course meeting: Room HR104, Mondays 6:30pm PT - 9:30pm PT, January 22 to March 5.
  • Instructor information: Robin Kraft (rkraft4@gmail.com) Adjunct professor, Department of Environmental Science.
  • Office hours: By appointment
  • Course texts: There is no book required for this class. All course material is hosted online, mainly within this repository.
  • Software: The primary software is web-based and no license is required for course access. Data files for classroom exercises will be available in this repository.
  • Coding: You are not expected to be able to write code, but it will help. We will be writing SQL statements and tweaking Javascript in class.
  • Evaluation: A letter grade will be assessed at the end of the course, based on course participation (10%), four weekly assignments (60%), and a final project (30%).
  • Assignments: Course readings and exercises will be assigned after the associated lecture.
  • Final project: Write a blogpost with a working web map on Github Pages. Tell a story, or help someone tell theirs. Read finalproject.md for details.
  • Academic honesty: The University of San Francisco expects the highest standards of academic honesty and integrity. This precludes engaging in, causing, or benefiting from any aspects of cheating on assignments or examinations, plagiarism (intentionally or knowingly representing the words or ideas of another as one’s own in any academic exercise), forgery, multiple submissions of the same paper, or any other such activities are not in accord with professional ethics and behavior. Any assignment found not to be in the student's own words will be marked zero.

Course sequence


This is a rough course outline that is subject to change as the semester advances. The lectures and this sequence may be updated.

  1. Basics (January 22)
    Theory: What are web maps and how do they work?
    Practice: Getting started with guided tutorials. Create static and dynamic maps. Introduction to in-browser SQL scripts. Logistics and planning.
    Assignment 1 issued.

  2. Your map is a product; SQL & APIs (January 29)
    Theory: Product thinking and map design.
    Practice: Introduction to SQL scripts within the Carto editor. Views onto synced tables for real-time maps of stream flow data.
    Assignment 2 issued.

  3. Spatial joins; advanced styling (February 5)
    Practice: Find points within polygons; get the intersection of polygons from multiple tables. Recreate a map using custom popups and CartoCSS styling. Assignment 3 issued.

  4. WITH statements & practicing what you've learned (February 12)
    Practice: More advanced versions of everything from weeks 1-3.

  5. Guest speakers (February 19)
    Theory: Guest speakers from NASA/Earth Genome, Planet, Apple, Mapbox. Final list TBD.
    Practice: Answering questions about projects.

  6. NO CLASS (February 26)

  7. Presenting final projects; special topics; wrap up (March 5)