@XAMTO_AI: Want to learn geospatial programming but don't know where to start? I was in the same state until I came across an open-source book called 'Introduction to GIS Programming', which is free and allows running code online. It starts from the basics of Python and smoothly progresses to advanced geospatial data analysis. The best part is that each section comes with runnable code examples…

X AI KOLs Timeline Products

Summary

Introduces an open-source book titled 'Introduction to GIS Programming', which is free and supports running code online. It is suitable for learning geospatial programming from scratch, covering Python basics to advanced geospatial data analysis.

Want to learn geospatial programming but don't know where to start? I was in the same state until I came across an open-source book called 'Introduction to GIS Programming', which is free and allows running code online. It starts from the basics of Python and smoothly progresses to advanced geospatial data analysis. The best part is that each section comes with runnable code examples, so you can run them as you read, which is much better than just reading without practicing. No prior Python knowledge required, no extra courses needed Code runs directly online, saving the hassle of setting up the environment Switch between 8 languages like Chinese, English, Japanese, and Korean without any reading barriers You can apply for a certification certificate after completion, adding a boost to your resume Documentation and code are updated synchronously, so it's always up to date Completely open-source and free, with no hidden charges URL: http://github.com/giswqs/intro-gispro…
Original Article
View Cached Full Text

Cached at: 08/22/26, 01:21 AM

Want to learn geospatial programming but don’t know where to start? I was in the same boat until I found an open-source book called Introduction to GIS Programming. It’s free, and you can even run the code online. It starts from the very basics of Python and smoothly progresses to advanced geospatial data analysis. The best part is that every section includes runnable code examples — learning by doing is far more effective than just reading. Absolute beginners can follow along without needing extra preparation, run code directly online without environment setup hassles, and switch between 8 languages (including English, Chinese, Japanese, and Korean) for无障碍 reading. After completing the course, you can even apply for a certification to add to your resume. The documentation and code are kept in sync to avoid obsolescence, and it’s completely open-source and free with no hidden costs.
URL: http://github.com/giswqs/intro-gispro…


giswqs/intro-gispro

Source: https://github.com/giswqs/intro-gispro

Introduction to GIS Programming

Binder
Colab
Docker Image
Amazon
YouTube

Introduction

Welcome to the official repository for Introduction to GIS Programming: A Practical Python Guide to Open Source Geospatial Tools. This repository contains all the code examples featured in the book, designed to help you learn and apply Python for geospatial analysis using open-source tools.

Get the Book

Print Edition

  • 🇺🇸 English Full-Color Print Edition (556 pages) is available on Amazon (link).

PDF and EPUB Editions

🇺🇸 English | 🇨🇳 Chinese | 🇨🇿 Czech | 🇳🇱 Dutch | 🇫🇷 French | 🇩🇪 German | 🇮🇳 Hindi | 🇮🇩 Indonesian | 🇮🇹 Italian | 🇯🇵 Japanese | 🇰🇷 Korean | 🇵🇹 Portuguese | 🇷🇺 Russian | 🇲🇽 Spanish | 🇹🇷 Turkish

Cite the Book

If you use this book in your research or teaching, please consider citing it as follows:

Wu, Q. (2025). Introduction to GIS Programming: A Practical Python Guide to Open Source Geospatial Tools. Independently published. ISBN 979-8286979455.

Table of Contents

To download a PDF version of the Table of Contents, please visit [link].

  • Preface

    • Introduction
    • Who This Book Is For
    • What This Book Covers
    • Getting the Most Out of This Book
    • Conventions Used in This Book
    • Downloading the Code Examples
    • Video Tutorials
    • Get in Touch
    • Acknowledgments
    • About the Author
    • Licensing and Copyright
  • Software Setup

    • Overview of Software Tools
    • Introduction to Python Package Management
    • Setting Up Visual Studio Code
    • Version Control with Git
    • Using Google Colab
    • Working with JupyterLab
    • Using Docker
  • Python Programming Fundamentals

    • Variables and Data Types
    • Python Data Structures
    • String Operations
    • Loops and Conditional Statements
    • Functions and Classes
    • Working with Files
    • Data Analysis with NumPy and Pandas
  • Geospatial Programming with Python

    • Introduction to Geospatial Python
    • Vector Data Analysis with GeoPandas
    • Working with Raster Data using Rasterio
    • Multi-dimensional Data Analysis with Xarray
    • Raster Analysis with Rioxarray
    • Interactive Visualization with Leafmap
    • Geoprocessing with WhiteboxTools
    • 3D Mapping with MapLibre
    • Cloud Computing with Earth Engine and Geemap
    • Hyperspectral Data Visualization with HyperCoast
    • High-Performance Geospatial Analytics with DuckDB
    • Geospatial Data Processing with GDAL and OGR
    • Building Interactive Dashboards with Voila and Solara
    • Distributed Computing with Apache Sedona

How to Run Code Examples

The code examples are organized into folders, each corresponding to a chapter in the book. The code examples are written in Python and can be run using MyBinder, Google Colab, or Docker. Follow this video tutorial to learn how to run the code examples.

Using MyBinder

The code examples can be run using MyBinder.
Binder

Using Google Colab

The code examples can be run using Google Colab.
Colab

Using Docker

The code examples can be run using Docker. There are two Docker images available:

A lightweight docker image without Apache Sedona:

docker pull giswqs/pygis:book  
docker run -it -p 8888:8888 -v $(pwd):/app/workspace giswqs/pygis:book  

A docker image with Apache Sedona:

docker pull giswqs/pygis:sedona  
docker run -it -p 8888:8888 -p 4040:4040 -p 8080:8080 -p 8081:8081 -p 7077:7077 -p 8085:8085 -v $(pwd):/app/workspace giswqs/pygis:sedona  

Video Tutorials

Complementing the written content, this book is supported by a comprehensive series of video tutorials that walk through key concepts and provide additional examples:
https://tinyurl.com/intro-gispro-videos

The videos are designed to complement, not replace, the written material. They’re particularly helpful for:

  • Visual learners who benefit from seeing code being written and executed
  • Understanding complex concepts through multiple explanations
  • Learning about the development workflow and best practices
  • Seeing how to approach problems and debug issues

The playlist is organized to follow the book’s structure. You can watch them in order as you progress through the book, or jump to specific topics as needed.

The videos were created in Fall 2024 when I was teaching the Introduction to GIS Programming course at the University of Tennessee. Although the course has concluded, the videos remain relevant and can be used as a reference for the book. Additional videos will be added in the future.

Enroll for Certification

Please note that you can access the course materials and lecture videos on the course website without enrolling in the course. However, if you’re interested in submitting lab assignments, receiving grades, and earning a certificate of completion, you can enroll in the course at any time by clicking the link below. There is no deadline for enrollment, and you can complete the course at your own pace.

Enroll Now

About the Author

Dr. Qiusheng Wu is an Associate Professor and the Director of Graduate Studies in the Department of Geography & Sustainability at the University of Tennessee, Knoxville. He also serves as an Amazon Scholar. Dr. Wu’s research focuses on geospatial data science and open-source software development, with an emphasis on leveraging big geospatial data and cloud computing to study environmental change, particularly surface water and wetland inundation dynamics. He is the creator of several widely used open-source Python packages, including geemap, leafmap, segment-geospatial, and geoai, which support advanced geospatial analysis and interactive visualization. His open-source work is available at the Open Geospatial Solutions on GitHub.

Acknowledgments

This book was written using MyST Markdown and compiled using Typst with the min-book template. Credits to developers and maintainers of the Typst and MyST Markdown projects. Special thanks to @mayconfmelo for the min-book template and their help with customizing the template for this book.

Licensing and Copyright

This book embraces the principles of open science and open education. To support transparency, learning, and reuse, the code examples in this book are released under a Creative Commons Attribution 4.0 International (CC BY 4.0) (https://creativecommons.org/licenses/by/4.0/) license. This means you are free to copy, modify, and distribute the code, even for commercial purposes, as long as appropriate credit is given. Please attribute code usage by citing the book or linking to the GitHub repository:

Wu, Q. (2025). Introduction to GIS Programming: A Practical Python Guide to Open Source Geospatial Tools. Independently published. ISBN 979-8286979455.

While the code is freely available, the text, figures, and images in this book are copyrighted by the author and may not be reproduced, redistributed, or modified without explicit permission. This includes all written content, custom diagrams, and embedded visualizations unless otherwise noted.

If you wish to reuse or adapt any non-code material from the book—for example, for teaching, presentations, or publications—please contact the author to request permission. This dual licensing approach helps balance open access to learning materials with the protection of original creative work.

Thank you for respecting these terms and supporting the open-source geospatial community.

Similar Articles

@XAMTO_AI: Self-taught programming - who hasn't been knocked down by reality a few times when starting out? A Peking University undergraduate dove into computers from his freshman year, and after four grueling years, the very obstacles that tripped him up and almost made him give up became his most valuable lessons. He organized all the truly effective learning materials and courses into an open-source document, arranged in a practical learning sequence. The fundamentals...

X AI KOLs Timeline

A Peking University undergraduate compiled high-quality open-source course resources (from MIT, Stanford, Berkeley, etc.) accumulated over four years of self-taught computer science into an open-source document arranged in a practical order, aiming to help beginners learn programming systematically from scratch.

@XAMTO_AI: Stop bookmarking those flashy but useless AI tutorials. This 'Hands-On Large Models' is what you really need—open source, free, and code that runs. The book covers 12 chapters, guiding you step by step through the complete workflow of deploying large models: ① Language Model Basics ② Prompt Engineering ③ Semantic Search ④ Model Fine-Tuning ⑤ Multimodal…

X AI KOLs Timeline

Recommend an open-source free tutorial 'Hands-On Large Models', covering 12 chapters including language model basics, prompt engineering, semantic search, model fine-tuning, multimodal applications, etc. All code can be run directly in Colab.

@XAMTO_AI: Many people murmur: Since AI coding is so powerful, do we still need to learn the basics? Yes, and increasingly so. I'm recommending a gem of a project on GitHub: Professional Programming, covering everything from algorithms to system design to code quality. The learning path is clear, not the kind that just throws a list of books at you and leaves you hanging...

X AI KOLs Timeline

Recommending the Professional Programming project on GitHub, covering programming basics like algorithms, system design, code quality, providing a clear learning path and hands-on exercises, emphasizing the importance of foundational knowledge even in the era of AI coding.

@manateelazycat: AI is powerful, but newcomers in computer science still need to accumulate knowledge to solve complex problems. Let me re-share the computer science foundational books I previously recommended. As for my own reading habits, especially when learning computer science, I prefer books that are easy to understand and explain why the code works the way it does. Only by understanding the underlying principles can you apply them later.

X AI KOLs Timeline

A seasoned developer shares a curated list of computer books accumulated over many years, covering mainstream languages such as Python, C++, Java, and Rust, along with multiple technical fields, emphasizing the importance of building a solid foundation for solving complex problems.

@Xudong07452910: Recommending a free AI book: "Agentic AI Wandering Guide". I just started reading it, and it feels quite different from many "AI beginner's guides". Although it covers basic knowledge, the author clearly does not focus on concepts that have been repeatedly discussed, but instead goes all the way to reinforcement learning RL, reasoning Reason…

X AI KOLs Timeline

Recommending a free AI book "Agentic AI Wandering Guide", which delves into concepts like reinforcement learning, reasoning, evaluation, etc. Unlike ordinary beginner's guides, it helps understand how AI works. This book is from an arXiv preprint.