Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Overview of Software Tools

1. Introduction

Knowing Python is important, but it’s only part of the story. To work effectively with spatial data, you also benefit from a set of tools that work well together.

Think of geospatial programming like building something complex: one tool alone won’t get you very far. You need different tools for different jobs, like: managing software, writing and testing code, keeping track of changes, exploring data, and running analyses on your own computer or in the cloud.

In this section, you’ll get a guided overview of the core tools used in modern geospatial programming workflows. You won’t be expected to master them yet. The goal is to understand:

This overview will help you build a mental map of the workflow you can build throughout this course. In the following lessons and labs, you can gradually start using these tools in practice, one step at a time.


2. Learning Objectives

After working through this section, you should be able to:

Don’t worry if this feels abstract at first. These learning goals are about understanding roles and workflows, not about mastering every tool right away. You’ll revisit and apply them throughout the course as you start using the tools in practice.


3. Essential Software Tools

Modern geospatial programming is not built around a single tool, but around a small ecosystem of tools, each with a clear role in the workflow. In this section, you’ll get an overview of six core tools you’ll encounter in Spatial Data Science.

You don’t need to learn all of them at once. For now, focus on what each tool is for and where it fits in the bigger picture.


Conda logo

Package Management: Conda

What it does
Conda manages your Python setup and the libraries your code depends on, especially the tricky geospatial ones.

Think of it like this
Conda is your project environment manager. Instead of having one messy Python installation for everything, Conda lets you create clean, isolated environments. One environment per project or lab.

Why it matters
Geospatial libraries (e.g. for reading rasters or projections) rely on system-level components that are difficult to install correctly. Conda takes care of these dependencies for you and helps avoid the classic: “It works on my laptop, but not on yours.”

What you gain


VS Code logo

Code Development: VS Code

What it does
VS Code is your main workspace for writing, reading, and debugging code.

Think of it like this
VS Code is your control centre. It’s where code, notebooks, version control, and debugging come together in one interface.

Why it matters
As projects grow, plain text editors quickly become limiting. VS Code helps you write cleaner code, catch mistakes early, and understand what your program is doing, which is especially important when working with spatial data and larger scripts.

What you gain


Git logo

Version Control: Git

What it does
Git keeps track of changes in your files over time and records how your project evolves.

Think of it like this
Git is your time machine and safety net. You can go back to earlier versions, compare changes, and try new ideas without risking your working code.

Why it matters
Geospatial projects often grow quickly and involve many files, datasets, and experiments. Git helps you stay organised, avoid losing work, and collaborate with others in a structured and transparent way.

What you gain


Colab logo

Cloud Computing: Colab

What it does
Colab lets you run Jupyter notebooks in your web browser using cloud based computing resources.

Think of it like this
Colab is a ready to use computer in the cloud. You open a notebook and start coding without installing anything on your own machine.

Why it matters
Setting up geospatial software can be time consuming and hardware intensive. Colab removes these barriers by giving you instant access to a working environment that runs on powerful remote machines.

What you gain


jupyter logo

Interactive Analysis: JupyterLab

What it does
JupyterLab is an interactive environment where you can run code, inspect results, create visualisations, and document your thinking in one place.

Think of it like this
JupyterLab is your digital lab notebook. It lets you mix code, maps, plots, and explanations while you explore and refine your analysis.

Why it matters
Spatial data analysis is rarely linear. You try something, look at the result, adjust your approach, and try again. JupyterLab supports this iterative way of working and makes your reasoning visible and reproducible.

What you gain


Docker logo

Containerization: Docker

What it does
Docker packages an entire software environment into a container. This includes the operating system, Python, libraries, and your code.

Think of it like this
Docker is a sealed box that contains everything your project needs to run. If the box runs on one computer, it will run the same way on another.

Why it matters
Geospatial software often depends on complex system libraries that are hard to install consistently. Docker removes this uncertainty and makes sure your analysis behaves the same across different machines and setups.

What you gain


Takeaway:
Each tool solves a different problem. Together, they form a workflow that supports clean code, reproducibility, and collaboration. You’ll start simple and gradually build up this toolkit as the course progresses.


4. Tool Integration and Workflow

The real power of these tools comes from using them together. Each tool has a clear role, but none of them stands alone. Think of this section as a map of how everything connects.

This workflow can be used in any spatial programming project.

A typical development workflow

  1. Conda sets up your project environment and installs the required libraries

  2. VS Code is where you write, run, and debug your code

  3. Git records changes and keeps your work organised over time

  4. JupyterLab supports interactive exploration, visualisation, and explanation

  5. Google Colab lets you run notebooks in the cloud when setup or hardware is a limitation

  6. Docker makes sure the whole setup can be reproduced anywhere

Each tool solves a specific problem. Together, they support clean code, experimentation, and reproducibility.

How collaboration fits in

In practice, your workflow often looks like this:

  1. Write and structure code in VS Code

  2. Explore data and results in Jupyter notebooks

  3. Track changes and versions with Git

  4. Share code and notebooks through platforms like GitHub or Colab

  5. Run the same environment on different machines using Docker

  6. Keep everything consistent with Conda environments


5. Running Code Examples

You can run all code examples from this Jupyter Book in different ways. Choose the option that best fits your situation and experience level.

Cloud options

If your goal is to read and try examples quickly, use a cloud option. These options work directly in your browser and require no local installation.

Local options

These options run on your own machine and give you full control over your setup.


6. Key Takeaways

Here are the main ideas to keep in mind as you move on to the next sections.

Think in workflows, not tools
The real strength of this setup comes from combining tools. Each one solves a specific problem, but together they form a complete and reliable workflow.

Learn progressively
You do not need to master everything at once. Start with the basics like Conda and VS Code. Add more tools as your projects grow in size and complexity.

Reproducibility matters
Managing environments, tracking changes, and sharing setups are essential parts of professional geospatial programming. They help others understand, run, and trust your work.

Stay flexible
Local tools and cloud platforms each have their place. Being comfortable with both allows you to work effectively in different situations and on different machines.

You are learning professional practice
These tools reflect how geospatial programming is done in research and industry. The skills you build here are transferable and long lasting.