Spatial Python

A project-based course in spatial data with Python

A hands-on, project-based course for learning spatial data science with Python, covering vector data, raster data, remote sensing, spatial analysis, suitability modeling, interactive maps, and Streamlit applications.

Author

Yousef Esmaeili

Published

September 29, 2026

Welcome

Spatial Python course overview

Image generated with GPT Image 2.5.

This is the website for Spatial Python, a hands-on, project-based course teaching Python for spatial analysis, combining vector data (roads, power lines, administrative boundaries) and raster data (elevation models, satellite imagery).

Across ten sessions, students build a complete real-world application from scratch: a Solar Site Suitability tool that takes a Digital Elevation Model, a Sentinel-2 satellite image, and OpenStreetMap infrastructure layers, and identifies the best areas for solar panel installation, all wrapped in an interactive web app.

The course material has been designed and taught by Yousef Esmaeili.

Note📘 What you’ll build

By the end of this course you won’t just know GIS libraries in isolation. You’ll have shipped a working, deployable Streamlit application that goes from raw satellite and elevation data to an interactive suitability map.

Tip🧩 Who this is for

This course assumes basic familiarity with Python (variables, loops, functions). Python refresher for spatial analysis is a dedicated refresher covering exactly what’s needed before diving into spatial libraries. Feel free to skip it if you’re already comfortable.

Contact

Yousef Esmaeili - yousefes@stu.nit.ac.ir - Instructor, Spatial Python - GitHub · LinkedIn