Open-Source GIScience

In this course, you will explore a variety of open-source technologies for working with geosptial data, performing spatial analysis, and undertaking general data science. The first component of the class focuses on the use of QGIS and associated technologies (GDAL, PROJ, GRASS, SAGA, and Orfeo Toolbox). The second component of the class introduces Python and associated open-source libraries and modules (NumPy, Pandas, Matplotlib, Seaborn, GeoPandas, Rasterio, WhiteboxTools, and Scikit-Learn) used by geospatial scientists and data scientists. We also provide an introduction to Structured Query Language (SQL) for performing table and spatial queries.

This course is designed for individuals that have a background in GIS, such as working in the ArcGIS environment, but no prior experience using open-source software and/or coding.

You will be asked to work through a series of lecture modules and videos broken into several topic areas, as outlined below. Fourteen assignments and the required data have been provided as hands-on opportunities to work with data and the discussed technologies and methods.

If you have any questions or suggestions, feel free to contact us. We hope to continue to update and improve this course.

After completing this course you will be able to:

  1. apply QGIS to visualize, query, and analyze vector and raster geospatial data.
  2. use available resources to further expand your knowledge of open-source technologies.
  3. describe and use a variety of open data formats.
  4. code in Python at an intermediate-level.
  5. read, summarize, visualize, and analyze data using open Python libraries.
  6. create spatial predictive models using Python and associated libraries.
  7. use SQL to perform table and spatial queries at an intermediate-level.

This course was produced by West Virginia View ( with support from AmericaView ( This material is based upon work supported by the U.S. Geological Survey under Grant/Cooperative Agreement No. G18AP00077. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the opinions or policies of the U.S. Geological Survey. Mention of trade names or commercial products does not constitute their endorsement by the U.S. Geological Survey.


UK Data


US Data

Portland Data

Burn Ratio

Supervised Classification


Machine Learning Example

Example GIS Data

Python Example Data

Jupyter Notebooks

SQL Examples

Slides PDFs

Install ArcGIS Pro

QGIS Intro

Open-Source GIS




Base Maps

Read in Data

Symbolize Vectors

Symbolize Rasters

Choropleth Maps

Data Conversion

Map Layouts


Open Data Seminar

A1: Map Layouts

A2: Digitizing

Vector-Based Spatial Analysis

Attribute Tables

Selection and Query

Vector Overlay

Vector Analysis

Vector Summarize

Research Tools

Select by Location

Merge Vectors

Bounding Geometry

Table/Spatial Joins

A3: Query and Selection

A4: Vector Analysis

Raster-Based Spatial Analysis

Raster NoData

Raster Reclassify

Mask and Merge

Raster Calculator

Exract at Points

Zonal Summary



Euclidean Distance

Kernel Density


Data Conversion

Terrain Analysis

A5: Raster Modeling

A6: Raster Summarization

Image Analysis and Remote Sensing


Stack Bands

Band Ratios

Extract Multi-Band

Mask and Merge

Zonal Stats Multi-Band


Orfeo Toolbox




Training Data

Supervised: Train

Supervised: Predict

Image Segmentation


A7: Burn Ratios

A8: Supervised Classification

QGIS Advanced

Batch Processing

Graphical Modeler

QGIS to Leaflet

A9: Graphical Modeler

Coding and Data Science

Conda Environments

Spatial Conda Env

Intro to Python

Deeper Dive




Spatial Analysis

Machine Learning

Machine Learning


SQL Seminar

A10: Python Data Query

A11: Graphing

A12: Vector Analysis

A13: Geospatial ML

A14: SQL Query