How to Animate Satellite Change Over Time With the QGIS Temporal Controller
- Primary Signal: How to Animate Satellite Change Over Time With the QGIS Temporal Controller
- Overview: A time series of satellite images shows change far better than any single map. QGIS's Temporal Controller turns dated layers into an animation, so urban growth, receding water or s...
- Verification: Analyzed and compiled by FreeSky GeoData editorial monitoring desk.
A single satellite image shows what a place looks like. A time series shows what is happening to it. Urban sprawl creeping across farmland, a reservoir shrinking through a drought, a forest boundary retreating year by year: these are stories that only emerge when you compare images across time. QGIS has a built-in tool for exactly this, the Temporal Controller, which steps through dated layers and animates them like frames of a film. It turns a folder of satellite images into a moving map, and it is far easier to set up than most people expect.
The Temporal Controller works with any layer that has a time dimension: rasters with a date in their name or properties, vector layers with a date field, or a set of images loaded as separate layers. Once configured, you press play and watch the landscape change. You can also export the animation as a series of frames or a video, which makes it one of the best tools in QGIS for communicating change to people who will never open a GIS themselves.
Prepare your time series
Start by gathering images of the same area from different dates, ideally from the same sensor and the same season so that differences in the animation reflect real change rather than differences in the data. A common choice is one Sentinel-2 or Landsat image per year for the same month, which keeps sun angle and vegetation roughly comparable. Give each file a clear name that includes the date, such as city_2019.tif, city_2020.tif, and so on, because the date in the filename is the simplest way to keep the series organised.
Load all the images into QGIS and style them identically. This matters more than it sounds: if each layer has its own stretch and colour settings, the animation will flicker as the brightness jumps between frames, and viewers will mistake a display change for a real change on the ground. Set the same symbology on every layer, ideally by styling one and copying the style to the others, and use the same band combination for each. If the images are large, build overviews or use a coarser resolution copy for the animation, because smooth playback matters more than full detail.
Set up the Temporal Controller
Open the Temporal Controller panel from the View menu or the clock icon in the toolbar. The key setting is the time range: set the start and end dates to cover your series, and set the step size to match your data, for example one year if you have annual images. Then enable temporal properties on each layer. For a raster, right-click the layer, open Properties, go to the Temporal tab, and set the layer to be active for a fixed time range or a single date.
QGIS can also handle a single layer that contains many dates, such as a multi-band raster or a mesh, but the simplest reliable workflow is one layer per date with its own time range. Once the layers are configured, use the play button in the Temporal Controller to step through the series. If a layer does not appear at its expected time, check its temporal settings first: a missing date or a wrong date format is the usual cause, and the fix is in the layer properties, not in the controller.
Export and present the animation
Watching the animation in QGIS is useful, but exporting it is where the value multiplies. The Temporal Controller can export each frame as an image, which you can stitch into a video with any basic video editor, or assemble into an animated GIF. Before exporting, fix the map extent so it does not shift between frames, turn off any layers that flicker, and add a title or date label that updates with each frame so viewers always know which year they are looking at. The QGIS print layout can add that date automatically if the layout is linked to the temporal range.
A good temporal animation tells a story without narration. Keep the series short, ideally five to ten frames, and let each frame linger long enough to read, around one second per year. If the change is subtle, add a swipe comparison or a difference layer that highlights exactly what moved. Urban growth, deforestation, coastal erosion and flood extent are the classic subjects, and they all land harder as an animation than as a pair of before-and-after maps, because the viewer sees the change happen rather than being told about it.
Frequently Asked Questions
Q: What is the Temporal Controller in QGIS?
A: It is a built-in panel that animates layers with a time dimension, stepping through dates so you can watch change over time on the map. It works with rasters, vectors and mesh layers that have date information.
Q: Do I need one layer per date to animate satellite images?
A: It is the simplest reliable method. Give each dated image its own layer, set its temporal range in the layer properties, and the controller will show each layer at the right time.
Q: Why does my animation flicker between frames?
A: The layers probably have different symbology or stretches. Style all layers identically, copy the style from one layer to the rest, and use the same band combination for every image.
📖 Continue Reading the Full Story
Continue reading this article on FreeSky GeoData.
⚡ Access Full Content Now