> For the complete documentation index, see [llms.txt](https://docs.whiffle.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.whiffle.cloud/outputs/geotiffs.md).

# GeoTIFFs

Map layers give a spatial overview of the simulated area: terrain properties and wind properties averaged over the simulated period.

Every simulation produces a set of 2D map layers covering the simulated area:

* 🏞️ **Terrain layers** describe the surface properties of the site.
* 🌬️ **Wind flow layers** summarise the simulated period in one map per height.

The layers can be accessed in two ways:

* **On the map** in the application.
* **As a download**, listed as **Geospatial Data**: a zip archive with one GeoTIFF per layer, in the projection of the simulation (UTM), for use in QGIS, ArcGIS or another GIS tool.

### 🏞️ Terrain layers

One map is produced per quantity, describing the surface of the simulated area.

<table><thead><tr><th width="296.76171875">Layer</th><th width="81.6328125">Unit</th><th>What it shows</th></tr></thead><tbody><tr><td>🌳 <a href="#canopy-height">Canopy height</a></td><td>m</td><td>Height of the vegetation above the ground.</td></tr><tr><td>🧱 <a href="#mean-surface-roughness-length">Mean surface roughness length</a></td><td>m</td><td>Aerodynamic roughness of the surface, from smooth water to a built-up city.</td></tr><tr><td>⛰️ <a href="#surface-elevation">Surface elevation</a></td><td>m</td><td>Terrain height above sea level.</td></tr><tr><td>🧗 <a href="#terrain-complexity-rix">Terrain complexity (RIX)</a></td><td>%</td><td>Fraction of the surrounding terrain that is steep.</td></tr></tbody></table>

### 🌬️ Wind flow layers

One map is produced per height, describing the flow over the simulated period. The heights depend on the simulation type:

* 📈 **Time series**: the heights requested for the fields output.
* 📊 **Statistics**: the wind resource grid heights, or the calibration heights when measurements are attached.

{% hint style="info" %}

* If no heights are requested, no flow fields are simulated and no wind flow layers are produced.
* Surface elevation, canopy height and terrain complexity do not depend on the flow fields and are always produced.
* The wind shear exponent requires at least two heights. A simulation with a single output height contains no vertical profile, so this layer is not produced.
  {% endhint %}

<table><thead><tr><th width="259.109375">Layer</th><th width="78.05859375">Unit</th><th>What it shows</th></tr></thead><tbody><tr><td><a href="#mean-turbulence-intensity-at-10-m-s-and-at-15-m-s">🌀 Mean turbulence intensity at 10 m/s and at 15 m/s</a></td><td>-</td><td>Typical turbulence intensity at that wind speed.</td></tr><tr><td>💨 <a href="#mean-wind-speed">Mean wind speed</a></td><td>m/s</td><td>Wind speed averaged over the simulated period.</td></tr><tr><td>🛡️ <a href="#representative-turbulence-intensity-at-15-m-s">Representative turbulence intensity at 15 m/s</a></td><td>-</td><td>Design turbulence intensity a turbine must withstand (IEC IP90).</td></tr><tr><td>📐 <a href="#wind-shear-exponent">Wind shear exponent</a></td><td>-</td><td>Rate at which the wind speed increases with height.</td></tr></tbody></table>

### How the layers are calculated

#### 🌳 Canopy height

The height of the vegetation, taken unchanged from the canopy height model used in the simulation.

#### 🧱 Mean surface roughness length

The surface roughness length, averaged over all timesteps of the simulated period:

$$
\overline{z\_0} = \frac{1}{N} \sum\_{t=1}^{N} z\_0(t)
$$

where:

* $$z\_0(t)$$ is the roughness length at timestep $$t$$
* $$N$$ is the number of timesteps in the simulated period

It is part of the simulated flow fields, so it is only produced when the simulation has them.

The values span several orders of magnitude, from roughly 0.0001 m over open water to several metres over cities, and are therefore shown on a logarithmic scale.

#### 🌀 Mean turbulence intensity at 10 m/s and at 15 m/s

The turbulence intensity at that height, averaged over the timesteps in which the wind speed lies within ±0.5 m/s of 10 m/s, or of 15 m/s:

$$
\overline{TI} = \frac{1}{N\_B} \sum\_{t \in B} TI(t)
$$

where:

* $$TI(t)$$ is the turbulence intensity at that height at timestep $$t$$
* $$B = {, t : |U(t) - U\_b| \leq 0.5 \text{ m/s} ,}$$ is the set of timesteps inside the wind speed bin, with $$U\_b$$ either 10 m/s or 15 m/s
* $$N\_B$$ is the number of timesteps in $$B$$

Turbulence intensity varies strongly with wind speed, so an average over all timesteps would mainly reflect how windy each point is. Restricting the average to a narrow wind speed bin makes the values comparable between points. Points at which the wind speed never falls within the bin during the simulated period are left blank.

#### 💨 Mean wind speed

The wind speed at that height, averaged over all timesteps of the simulated period:

$$
\overline{U} = \frac{1}{N} \sum\_{t=1}^{N} U(t)
$$

where:

* $$U(t)$$ is the wind speed at that height at timestep $$t$$
* $$N$$ is the number of timesteps in the simulated period

#### 🛡️ Representative turbulence intensity at 15 m/s

The 90th percentile of the turbulence intensity over the same ±0.5 m/s bin around 15 m/s, as defined by the IEC (IP90). Assuming the values within the bin are normally distributed, this equals:

$$
TI\_{rep} = \overline{TI} + 1.28 , \sigma\_{TI}
$$

where:

* $$\overline{TI}$$ is the mean turbulence intensity at 15 m/s, the layer described above
* $$\sigma\_{TI}$$ is the standard deviation of $$TI(t)$$ over the same set of timesteps $$B$$

The mean describes the typical conditions at that wind speed, while the representative value describes the design turbulence a turbine at that location must withstand. Points at which the wind speed never falls within the bin during the simulated period are left blank.

#### ⛰️ Surface elevation

The terrain height above sea level, taken unchanged from the digital terrain model used in the simulation.

#### 🧗 Terrain complexity (RIX)

The Ruggedness Index is the fraction of the surrounding terrain that is steeper than a critical slope:

$$
RIX = 100% \times \frac{A\_{s > s\_c}}{A\_R}
$$

where:

* $$A\_R$$ is the terrain area within a radius $$R$$ of the point
* $$A\_{s > s\_c}$$ is the part of that area where the local slope $$s$$ exceeds the critical slope $$s\_c$$
* $$R = 3500$$ m and $$s\_c = 0.3$$, about 17°, are the WAsP defaults

The slope is taken in the steepest direction, so the index does not depend on the wind direction. It indicates where the terrain is steep enough for linearised flow models to become unreliable, and therefore where LES adds the most value.

The layer is shown in three classes rather than as a continuous range, following the WAsP rules of thumb:

* below 5 % is low
* between 5 % and 30 % is moderate
* above 30 % is high

Near the edge of the domain only the terrain inside the domain can be counted, and points whose surroundings are less than half covered are left blank.

#### 📐 Wind shear exponent

The exponent $$\alpha$$ of the power-law wind profile:

$$
U(z) = U\_{ref} \left( \frac{z}{z\_{ref}} \right)^{\alpha}
$$

where:

* $$U(z)$$ is the wind speed at height $$z$$
* $$U\_{ref}$$ is the wind speed at the reference height $$z\_{ref}$$
* $$\alpha$$ is the wind shear exponent

$$\alpha$$ is obtained as the slope of a least-squares fit of $$\ln(U)$$ against $$\ln(z)$$ over all available heights, using wind speeds that are averaged over time before the fit.

Fitting each timestep separately and averaging the exponents afterwards would give calm hours a disproportionate weight, as they carry almost no energy but can produce very large exponents.

The fit spans the full range of available heights, which is set by the heights requested for the fields output (time series) or for the wind resource grid (statistics). Exponents from simulations with different heights therefore describe different parts of the profile.
