Create Satellite Timelapse Animations in QGIS with Google Earth Engine
Satellite timelapse animations are a powerful way to visualize environmental change, from urban expansion and deforestation to river dynamics and weather events. The QGIS Timelapse Plugin lets you create these animations for any location on Earth with just a few clicks, powered by Google Earth Engine’s cloud computing. You draw a rectangle, choose a satellite, set the time range, and the plugin handles all the data processing, mosaicking, and animation generation without downloading any raw data.
In this tutorial, I walk through setting up the plugin and creating timelapse animations using Landsat, MODIS NDVI, and GOES weather satellite imagery.
Video tutorial: QGIS Timelapse Plugin Tutorial
What You Will Need¶
A Google Earth Engine account
Your Google Cloud project ID
Set Up the Environment¶
Install Pixi and create a project¶
pixi init geo
cd geo
pixi add qgis geemap earthengine-api pillow ffmpegThe pillow package is needed for GIF generation and ffmpeg for MP4 conversion.
Authenticate Google Earth Engine¶
pixi run earthengine authenticateLaunch QGIS¶
pixi run qgisInstall the Plugin¶
Go to Plugins > Manage and Install Plugins.
Go to Settings and add the custom repository URL from the plugin page.
Search for timelapse and click Install Plugin.
The timelapse icon (a play button) appears in the toolbar and a Timelapse menu appears in the menu bar.
Use Timelapse > Check for Updates to get the latest version from GitHub.
Supported Satellites¶
The plugin supports six satellite data sources:
Landsat: 30 m resolution, global coverage from 1984 to present. Best for long-term change analysis.
Sentinel-2: 10 m resolution, global coverage from 2015 to present. Higher spatial detail than Landsat.
Sentinel-1: SAR imagery, not affected by clouds. Useful for all-weather monitoring.
MODIS NDVI: 250 m resolution, global coverage from 2000 to present. Best for continental-scale vegetation monitoring.
GOES: Geostationary weather satellite with imagery every few minutes. Best for monitoring weather events like hurricanes and volcanic eruptions.
NAIP: Sub-meter aerial imagery for the United States only.
Create a Landsat Timelapse¶
Define the area of interest¶
Click the Timelapse icon in the toolbar.
In the AOI tab, either click Use Map Extent or click Draw Bounding Box and draw a rectangle on the map.
If your Earth Engine project ID is not set as an environment variable, enter it in the project ID field.
Configure the imagery¶
Go to the Imagery tab.
Select Landsat.
Set the year range (e.g., 1984 to 2025 for the full Landsat archive).
Set the season (e.g., March to October to focus on snow-free months).
Choose the temporal frequency:
Year: One composite per year (best for multi-decade change)
Quarter: Four composites per year
Month: Monthly composites (keep the year range short to avoid too many frames)
Date: Individual image dates
Select the band combination (e.g., false color composite for highlighting vegetation, or true color for natural appearance).
Enable cloud masking to remove cloudy pixels from composites.
Configure the output¶
Go to the Output tab.
Specify the output file path for the GIF animation.
Check Create MP4 to also generate an MP4 video (requires ffmpeg).
Customize the title text, text color, font size, and progress bar appearance.
Generate the animation¶
Click Create Timelapse. The plugin processes the data on Google Earth Engine’s servers and generates the animation in roughly 30 seconds to a minute. The result plays directly in the QGIS panel.
Example: Las Vegas Urban Growth¶
Drawing a rectangle around Las Vegas and creating a yearly Landsat timelapse from 1984 to 2025 produces a striking visualization of urban expansion. The animation clearly shows the city growing outward into the surrounding desert over four decades.
Create a MODIS NDVI Timelapse¶
MODIS NDVI timelapses are ideal for visualizing vegetation dynamics at continental scales.
Draw a large rectangle (e.g., covering Africa).
Select MODIS and choose NDVI as the index.
Set the frequency to Year.
Click Create Timelapse.
The resulting animation shows the seasonal “green wave” of vegetation sweeping north during the northern hemisphere summer and south during winter, driven by rainfall patterns across the continent.
Create a GOES Weather Timelapse¶
GOES satellites capture imagery every few minutes, making them ideal for monitoring fast-moving weather events.
Zoom to the area where the event occurred.
Select GOES and choose the appropriate satellite (GOES-16, 17, or 18 depending on the coverage area and time period).
Set the date and time range to cover the event. The time is in UTC.
Click Create Timelapse.
GOES timelapses are useful for visualizing hurricanes, volcanic eruptions, wildfires, and other dynamic atmospheric events. The high temporal frequency produces smooth animations that show cloud movement and storm development in detail.
Tips¶
Too many frames: If the plugin returns an error about too much data, reduce the time range, increase the temporal frequency (e.g., yearly instead of monthly), or draw a smaller area.
Band combinations: Experiment with different band combinations. False color composites (e.g., B5, B4, B3 for Landsat) often reveal more detail than true color, especially for vegetation and water features.
Cloud masking: Always enable cloud masking for optical imagery (Landsat, Sentinel-2) to get cleaner composites.
Output formats: The GIF is useful for quick sharing on social media. The MP4 is better for presentations and video editing.
Resources¶
Plugin Page: qgis.gishub.org
GitHub Repository: github
.com /opengeos /qgis -timelapse -plugin Google Earth Engine: earthengine
.google .com
The plugin handles all the complexity of satellite data processing, from filtering and mosaicking to compositing and animation, so you can focus on choosing the right location, time period, and satellite for your story. Try it with your own area of interest and feel free to open an issue on the GitHub repository if you have questions or feature requests.