Methods of Time Series Analysis in Remote Sensing
Module 1 covers a range of basic principles and methods of remote sensing time series analysis that are applicable to data from different platforms and sensors. While the hands-on parts of the module focus on optical satellite imagery, many of the approaches you learn here will be helpful for working with other data types (such as close-range imagery time series or time series of 3D point clouds from photogrammetry or laser scanning). Hence, in this module you will learn about:
- Principles of time series in general and remote sensing time series in specific
- Major Earth observation missions, data archives and access options
- Strategies and computing facilities for large remote sensing time series, including introductions with Python and with the Google Earth Engine
- Classification approaches and methods for remote sensing time series
- Trajectory-based views on remotely sensed variables
- Approaches to land surface monitoring and change detection
- Fusion of multi-modal remote sensing time series
- Possibilities and best practices for validating your analyses with remote sensing time series
Structure overview
This module covers the following themes:
- Principles of remote sensing time series
- Large time series datasets in remote sensing
- Time series analysis based on classification
- Trajectory-based analysis
- Spatio-temporal data fusion
- Reference data, validation and accuracy assessment
Prerequisites to perform this module
The following skills and background knowledge are required for this module:
- Basics of statistics
- Basics of geoinformation systems and handling raster/vector data
- Some familiarity with QGIS
- Basic programming skills in Python
- Principles of remote sensing
Software
For the practical parts of this module (excercises and tutorials), you will need:
- QGIS - In some of the Module 1 excercises, the graphical user interface of QGIS is used for visualization of data or for digitizing polygons (used to label training samples).
- Google Earth Engine - For several tutorials and excercises of Module 1, a registered user account for this service is required (create one here, if you don't have one).
- Python - You can use the package and environment management system Conda and the
etrainee_m1.yml
file to install the packages needed for the tutorials and excercises into a fresh Python environment. The yaml file can be downloaded here: etrainee_m1.yml.
Toolbox intro
Before you start with Theme 1 of Module 1, we recommend that you go through the Toolbox intro. There, you will learn how to
- set up your working environment with Python and all required packages
- create, modify and run interactive Jupyter Notebooks containing Python code
- use Python for basic processing steps and visualization of geospatial data
Practical parts of this module (overview)
Module 1 contains at least one practical part (tutorial or excercise) per theme. The tutorials are linked as separate documents in the respective sections of a theme. Many of them are provided as Python Jupyter Notebooks and, if you download them, you can explore them interactively.
Mandatory parts
It is recommended to go through the following tutorials and excercises (one per theme). They are focusing on image time series analysis with Python's xarray
package and the Google Earth Engine (GEE) Python API, and they (partly) build upon each other:
- Theme 1
- Tutorial 1: Raster Time Series in Python using xarray, introducing the xarray package for handling labelled, multi-dimensional arrays at the example of a Sentinel-2 satellite image time series.
- Theme 2
- Tutorial 1: Sentinel-2 via STAC in Python, showing how to access Sentinel-2 data via a SpatioTemporal Asset Catalog (STAC) and get it into the Python xarray processing framework.
- Theme 3
- Tutorial 1: Image time series classification in Python, showing a machine learning workflow with spectral-temporal metrics (derived from one season of satellite imagery) as features for landcover classification. The result is one landcover map (which we will validate in theme 6).
- Theme 4
- Tutorial: Forest disturbance assessment with Python and the GEE, examining a Landsat 8 NDVI time series (spectral-temporal trajectory) to assess the timing of forest disturbance.
- Theme 5
- Tutorial: Sentinel-1/-2 surface water monitoring, where you learn how to combine Sentinel-1 SAR data and Sentinel-2 optical imagery for monitoring the extent of a water reservoir in a relatively simple workflow.
- Theme 6
- Exercise: Assessment of landcover classification accuracy, with a solution provided in this Notebook.
Optional parts
In case you want to explore further topics and methods, there are more tutorials and excercises available:
- Theme 1
- Theme 2
- Tutorial 2: Google Earth Engine (GEE) in Python, showing how to use the GEE cloud computing environment and its Python API for accessing, cloud-masking and downloading a Sentinel-2 time series.
- Tutorial 3: Large point clouds in Python, providing a couple of hints for handling and exploring large point clouds efficiently in Python (so far not time-series specific).
- Excercise: Search and load Landsat data to QGIS via a STAC API
- Theme 3
- Tutorial 2 with excercise:
- The Snow cover time series in Python tutorial, introduces a very basic procedure for (binary) snow cover mapping with a Sentinel-2 time series. The result is a time series of snow cover maps.
- Excercise: Based on the tutorial, try to interpret the spatial patterns of snow cover duration and investigate the sensitivity of the rule-based classification regarding the classification threshold. For a suggested solution to this excercise see the Notebook Snow cover time series: Interpretation and sensitivity analysis.
- Tutorial 2 with excercise:
Data credits
Landsat imagery courtesy of the U.S. Geological Survey / Terms of use
Copernicus Sentinel data courtesy of the European Space Agency - ESA / Terms of use
Start the module
... by proceeding to the Toolbox intro or (if you are already familiar with Conda, Jupyter Notebooks and GeoPython) skip this and
... go directly to the first theme on Principles of remote sensing time series.