Part 2 – Raster Import & Basemap

Data Preparation
Import an AHN elevation raster into QGIS, inspect its values, style it, and derive a simple sea-level-risk zone.
Published

August 6, 2026

Classification: Beginner GIS Analysis | Spatial Data Basics | Raster Import

Learning Level: Beginner

Time Estimate: 30 minutes

Software Required: QGIS LTR 3.44

Author: Daniele Cannatella


Overview

This exercise is the second hands-on block of the Week 1 GIS workshop, following directly on from Part 1 – Vector Import & Basemap. You will import an AHN elevation raster for Vlissingen, inspect its values, style it as a basemap, and use a simple elevation threshold to derive a sea-level-risk zone.

Learning Outcomes

By completing this exercise, you will be able to:

✅ Import a raster layer into QGIS from the Browser Panel
✅ Read raster statistics (min/max) and interpret a histogram
✅ Style a raster using a pseudocolor ramp
✅ Derive a binary risk-zone raster using a threshold expression
✅ Export a raster layer and share a basemap screenshot


Data & Software

You will need:

Resource Type Description
vlissingen-part-2.qgz QGIS project Starter project for the municipality of Vlissingen
elevation_5m.tif Raster (GeoTIFF) AHN Digital Terrain Model (DTM), pre-clipped to the study area

Background: The World Bank Climate Knowledge Portal projects sea levels along the Dutch coast could rise by approximately 0.70 m by 2100 under current emissions trajectories. This tutorial uses that figure as a simple screening threshold — not a precise flood model.


Step 1: Import the Raster Layer

  1. Launch QGIS LTR 3.44
  2. Open the project vlissingen-part-2.qgz
  3. From the Browser Panel, import the raster layer elevation_5m.tif

Result: The evelation_5m layer appears in the Layers Panel and draws on the canvas in a default greyscale style.


Step 2: Inspect Raster Statistics

2.1 Open Symbology and Set Accuracy

  1. Right-click the elevation_5m layer and select Properties
  2. Go to the Symbology tab
  3. Under Min / Max Value Settings, set Accuracy to Actual (slower) instead of the default Estimate (faster)

Why this matters: Estimate computes statistics from a sample of pixels, which is fast but can miss extreme values. Actual reads every pixel — slower on a large raster, but the min/max and histogram are exact.

2.2 Check Min, Max, and Histogram

  1. With Accuracy: Actual applied, note the reported Min and Max values in the Symbology panel
  2. Switch to the Histogram tab (in the same Layer Properties dialog) to view the distribution of elevation values

Result: You should see a min/max elevation range for the study area, and a histogram showing how frequently each elevation value occurs.

❓ Question: What are the min and max elevation values for this raster?

✅ Solution (click to reveal):

Read the Min and Max fields directly from the Symbology panel (Step 2.2). Values close to or below 0 m are common near the Dutch coast.

❓ Question: What does the histogram tell you about this study area?

💬 Discussion pointers (click to reveal):

Look for: where the bulk of the distribution sits (the dominant elevation range), whether there’s a long tail toward higher elevations (e.g. dunes or built-up areas), and any sharp spike at an extreme value (often a sign of a no-data value being read as real elevation, rather than a genuine terrain feature).


Step 3: Style the Raster

  1. Still in Layer Properties → Symbology, change Render type to Singleband pseudocolor
  2. Choose an elevation-appropriate colour ramp from the cpt-city catalog: Color ramp → All Color Ramps/Create New Color Ramp… → cpt-city
  3. Click Classify, then Apply

Result: The DTM now renders in a continuous colour ramp from low to high elevation, making terrain patterns easier to read than the default greyscale.


Step 4: Derive a Sea-Level-Risk Zone

Areas at or below the 0.70 m threshold are treated here as a simple proxy for land potentially exposed to projected 2100 sea-level rise.

  1. Open the Raster Calculator (Raster → Raster Calculator…, or search Raster calculator in the Processing Toolbox)
  2. Output layer: risk_zones.tif
  3. Expression:
"elevation_5m@1" <= 0.70
  • "elevation_5m@1" – refers to band 1 of the AHN DTM raster
  • <= 0.70 – flags every pixel at or below the 0.70 m threshold
  1. Click OK to run

Result: A new binary raster is created, where a value of 1 marks pixels at or below 0.70 m (the potential risk zone) and 0 marks pixels above it.

4.1 Style and Verify the Risk Zone

  1. Open Symbology for the new risk-zone raster
  2. Set Render type to Singleband pseudocolor, or use Paletted/Unique values with two classes (0 / 1)
  3. Assign a clear colour to class 1 (e.g. red or orange) and make class 0 transparent or a neutral colour, so the risk zone stands out against the basemap


Step 5: Export and Share

  1. Right-click the risk-zone layer → Export → Save As…, and confirm the output format/name from Step 4 (risk_zones.tif)
  2. Take a screenshot of the QGIS canvas showing the styled DTM basemap (with legend) for the Miro deliverable
  3. Upload the screenshot to the course Miro board
  4. File → Save Project

Reflection

  • What does this risk zone tell you about the study area?
  • What are the limitations of using a single elevation threshold to represent flood or sea-level risk?
  • How might this simple screening approach differ from a proper hydrodynamic flood model?

Back to top