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.

Learning Approach

University of Manitoba
Planet Labs PBC

This course is cumulative: each module builds on the previous one to develop a dual foundation in Hyperspectral Remote Sensing and Scientific Python. Building a strong foundation is essential for analyzing hyperspectral data effectively, and the course is designed to help you steadily develop both conceptual understanding and practical skills.

Hyperspectral analysis is best learned as a workflow made of processing blocks (e.g., loading → preprocessing). Throughout the course, you will learn these blocks one by one, and then connect them into a complete, reusable workflow (Figure 1).

Course teaching strategy and toolkit approach

Figure 1:Tanager Hyperspectral Course: teaching strategy overview.

Lesson structure

Lessons are designed to be interactive and hands-on. When a topic requires theoretical grounding, we begin with the essential concepts and intuition. Then we work through the idea using step-by-step coding in Python, clearly explaining the purpose and reasoning behind each operation.

Once the concept is clear, we package what you learned into reusable functions. Because the course is cumulative, these functions will carry forward into future lessons, so you can apply the same process efficiently to new datasets and build confidence over time.

A “Toolkit” that grows with you

This course includes a unique interactive assignment designed to help you build your own hyperspectral analysis workflow.

Starting in Module 2 (after the foundations), you will keep a single Toolkit code cell of your own. You begin from the skeleton shown below and expand it lesson by lesson, adding new functions, improving structure, and increasing capability as the course progresses. Each Module 2+ lesson shows the reference solution so far at the top, and ends with new function stubs for you to implement before moving on. By the end of the course, your cell becomes your personal hyperspectral analysis toolkit.


The Skeleton Code of Empty Toolkit

The Toolkit’s skeleton code you will start with in Module 2 is shown below.

# Import Key Libraries
import h5py
import numpy as np

def load_tanager_hdf5(
    file_path: str,
    data_path: str = 'HDFEOS/SWATHS/HYP/Data Fields/surface_reflectance'
    ):
    """
    Load a Tanager-1 hyperspectral cube and its wavelengths from an HDF5 file.

    Args:
        file_path (str): The absolute or relative path to the .h5 file.
        data_path (str): Internal HDF5 path to the reflectance dataset.

    Returns:
        tuple: (cube, wavelengths) — the hyperspectral data cube and the
        per-band center wavelengths.
    """
    # TODO: Implement file reading logic here
    pass