/teaching-programming-for-gis

Jupyter notebooks to teach an introduction to Programming for GIS, including core Python concepts and packages to work with vector, raster, and network data.

Primary LanguageJupyter Notebook

Programming for GIS: Teaching resources

Abstract

This teaching material has been developed for a MSc module on programming for geographic data science at Birkbeck, University of London.

This repository contains a set of Juypter Notebooks to introduce students to the programming core concepts in Python and to packages to load, process, visualise, and analyse geospatial data.

The examples include data from the Open Geospatial Datasets for GIS Education repository.

Conda environment

All the notebooks in this repository run on an Anaconda3 environment defined in condaenv_geoprogv1.yml (see folder conda_environment_geoprogv1). The notebooks were developed and tested on Mac OS Big Sur and Windows 10. Python version: 3.9.

Content

Each set includes 3 notebooks, named as content, exercises, and solutions. These are the topic covered with the corresponding Python packages:

  • 01: Data types and variables (Python)
  • 02: Control structures; Pandas data frames (pandas)
  • 03: Defining functions; temporal data (Python)
  • 04: Vector data (geopandas)
  • 05: Raster data (rasterio, rasterstats)
  • 06: Network analysis (networkx, osmnx)
  • 07: Machine learning (sklearn); Natural Language Processing (spacy)

Author

Andrea Ballatore (Birkbeck, University of London)

License

All the content in this repository (except the example datasets) is licensed under Creative Commons Attribution-NonCommercial-ShareAlike (CC-BY-NC-SA). License: CC BY-NC-SA 4.0

Last update

March 2021