Technical University of Denmark
2 files

Using QGIS to create WAsP maps

Version 11 2024-01-16, 11:48
Version 10 2024-01-15, 10:20
Version 9 2024-01-15, 06:08
Version 8 2024-01-02, 10:21
Version 7 2023-10-09, 09:28
Version 6 2023-10-06, 10:42
Version 5 2023-09-18, 09:09
Version 4 2023-07-05, 07:24
Version 3 2023-01-16, 07:38
Version 2 2023-01-04, 13:55
Version 1 2022-12-22, 11:26
posted on 2024-01-16, 11:48 authored by Rogier Ralph FloorsRogier Ralph Floors

Creating good roughness and elevation maps is important for microscale flow modelling for wind resource and siting assessment. The Wind Atlas Analysis and Application Program (WAsP) is often used for this purpose and requires maps as inputs. This repository contains tutorials for downloading elevation data (1A), making a hand-digitized roughness map (1B) and downloading a roughness map from the CORINE landcover using the QGIS software. The instructions for exercise 1A to 1C are given in the file "Using QGIS to create WAsP maps.pdf".

Video solutions for exercises 1A to 1C are available in this playlist:

The repository contains the scripts that can be installed as plugin in QGIS (

v1: first version
v2: some links were not working
v3: keep coordinate system when opening files in WAsP
v4: simplified downloading of CORINE (no need to add feature server) and elevation lines (no more need for SRTM plugin)
v5: further simplifications and better error reporting. New script for creating a bounding box from lat/lon. New script for creating a hand digitizing layer.
v6: always draw 0 m contourline for GWA elevation download, float instead of integer as input for script.
v7: GWA elevation download did not work for Sprogø area
v8: Moved to DTU servers for hosting data and fixed inconsistency between area from roughness and elevation
v9: Fixed bug for newest GDAL/QGIS version that caused crash in "Save WAsP landcover lines". All scripts now return a map also for far offshore areas. Do not clip this line if roughness lengths are the same on both sides.

Other bug fixes:

* Constrain on input clipping layer for landcover and elevation data: this can only be a single polygon.

* Check the input clipping layer is not geographic, since the buffering operation will not work on those layers

* renamed index to id for consistency with pywasp/windkit and the lines that are called `id_left` and `id_right`

* Remove fields that are not needed in corine arcgis feature service download

* improved documentation of all functions and added links to sources and doi's

* changed code for elevation lines; was not working for LineStringZ type geometries (for example hojde data from denmark). This code was initially introduced because of QGIS crashes, but I could not reproduce these anymore, so will just stick with this simpler code

* Improved error reporting when user is trying to download in area without coverage.


This work has received internal funding.



  • Siting;>Resource assessment
  • Siting;>Wind Mapping
  • Siting;>Wind Atlases


  • Not applicable


  • Modeling

External conditions

  • Terrain type;>Other
  • Terrain type;>Flat
  • Terrain type;>Complex;>Other
  • Topography;>Other
  • Topography;>Semi-urban
  • Topography;>Urban
  • Topography;>Rural
  • Topography;>Forest
  • Location;>Other
  • Location;>Onshore;>Other
  • Location;>Onshore;>Inland
  • Location;>Onshore;>Coastal
  • Location;>Offshore;>Other
  • Location;>Offshore;>Nearshore

Data category

  • Topographic data

ORCID for corresponding depositor

Usage metrics

    DTU Wind



    Ref. manager