Journal topic
Wind Energ. Sci., 5, 73–87, 2020
https://doi.org/10.5194/wes-5-73-2020
Wind Energ. Sci., 5, 73–87, 2020
https://doi.org/10.5194/wes-5-73-2020

Research article 13 Jan 2020

Research article | 13 Jan 2020

Digitalization of scanning lidar measurement campaign planning

Digitalization of scanning lidar measurement campaign planning
Nikola Vasiljević, Andrea Vignaroli, Andreas Bechmann, and Rozenn Wagner Nikola Vasiljević et al.
• Technical University of Denmark – DTU Wind Energy, Frederiksborgvej 399, Building 118-VEA, 4000 Roskilde, Denmark

Correspondence: Nikola Vasiljević (niva@dtu.dk)

Abstract

By using multiple wind measurements when designing wind farms, it is possible to decrease the uncertainty of wind farm energy assessments since the extrapolation distance between measurements and wind turbine locations is reduced. A WindScanner system consisting of two synchronized scanning lidars potentially represents a cost-effective solution for multipoint measurements, especially in complex terrain. However, the system limitations and limitations imposed by the wind farm site are detrimental to the installation of scanning lidars and the number and location of the measurement points. To simplify the process of finding suitable measurement positions and associated installation locations for the WindScanner system, we have devised a campaign planning workflow. The workflow consists of four phases. In the first phase, based on a preliminary wind farm layout, we generate optimum measurement positions using a greedy algorithm and a measurement “representative radius”. In the second phase, we create several Geographical Information System (GIS) layers such as exclusion zones, line-of-sight (LOS) blockage and lidar range constraint maps. These GIS layers are then used in the third phase to find optimum positions of the WindScanner systems with respect to the measurement positions considering the WindScanner measurement uncertainty and logistical constraints. In the fourth phase, we optimize and generate a trajectory through the measurement positions by applying the traveling salesman problem (TSP) on these positions. The described workflow has been digitalized into a Python package named campaign-planning-tool, which gives users an effective way to design measurement campaigns with WindScanner systems. In this study, the Python package has been tested on three different sites characterized by different terrain complexity and wind farm dimensions and layouts. With minimal effort, the Python package can optimize measurement positions and suggest possible lidar installation locations for carrying out resource assessment campaigns.

1 Introduction

The development of a wind farm project begins with an assessment of the wind resources and the energy yield for the planned wind farm. Best practices recommend estimating wind resources based on local wind measurements (MEASNET2016). Measurement campaigns designed for wind resource assessment have historically relied on anemometers and wind vanes mounted on tall meteorological masts (also called met masts) to measure a wind climate similar to the wind climate the wind turbines will experience during their lifetime. The local measurements are used to produce the observed wind climate of the site. To account for the seasonal and interannual variations of the wind, the observed wind climate is long-term corrected using long-term reference data from a nearby meteorological station, reanalysis data or mesoscale models . The long-term-corrected wind climate is then extrapolated vertically and horizontally, typically using a flow model such as WAsP to estimate the wind resource at hub height for every wind turbine location.

The single mast approach is affordable but can cause large uncertainties. Specifically, in complex terrain (mountainous and forested areas), the spatial extrapolation becomes challenging as the topography can significantly influence the flow. The ideal scenario would be to measure the local wind climate at every planned wind turbine position. However, erecting as many masts as wind turbines would be extremely costly and in some areas impossible.

Many large wind farm projects in complex terrain are developed using multiple masts. Combining one fixed mast and one or several roaming profiling lidars moved to different positions during the campaign is another option. The advantage of roaming vertical profiling lidars lies in their ability to provide affordable high-altitude measurements, ease of deployment and no need for building permits in comparison to the masts, while data availability and inaccuracy in complex terrain are some of their disadvantages. However, any roaming setup brings a trade-off between the number of measurement positions and the measurement duration at each location since short measurements (e.g., of 3 months) can lead to erroneous wind climate .

A potential solution for multipoint measurements for wind resource assessment lies in the application of scanning lidars . With a measurement range of several kilometers and a beam that can be oriented freely in any direction , many measurement positions can be reached without moving the hardware. Especially dual-Doppler setups (i.e., two scanning lidars) can provide accurate retrieval of horizontal wind speed and wind direction (i.e., two-dimensional, 2-D, wind vector) at many possible positions . While scanning lidars provide a broad range of benefits, there are also clear challenges when designing multilidar measurement campaigns.

The biggest challenge when designing a multilidar measurement campaign is deciding where to measure and how to position scanning lidars to acquire accurate measurements. As mentioned before, we would like to measure at every future wind turbine location. Realistically, in the case of large wind farms (many wind turbines), this is not feasible. As the laser beams need to traverse each turbine location, there would not be enough measurement samples per location to do a proper statistical analysis of the wind resources. A good rule of thumb is to have at least 10 samples for each measurement point per 10 min period. Therefore, we would need an approach to minimize the number of measurement points such that we satisfy spatial and temporal coverage of the wind farm resources (i.e., enough samples and a good distribution of measurements across the farm site).

Afterward, constraints that arise from scanning lidars, atmosphere and site characteristics dictate the positioning of lidars. Indeed, the laser beam of scanning lidars can be steered freely, but, on the other hand, it can be blocked in some directions by the terrain, vegetation or other obstacles. This impacts the lidar positioning since we need an unobstructed passage of the laser beams towards measurement points, i.e., clear line of sight (LOS). On the other hand, the lidar characteristics (e.g., laser wavelength and output power) in combination with the atmosphere characteristics (e.g., aerosol extinction, backscatter coefficient and atmospheric attenuation) impact the lidar range. Furthermore, retrieving the 2-D wind vector requires a limited beam elevation angle (e.g., smaller than 5 as suggested by ) to avoid contamination of horizontal wind components with the vertical component. Finally, the intersecting angle of the laser beams at the measurement points should be large enough (e.g., greater than 30 as suggested by ) to minimize the lidar measurement uncertainty .

Once the lidar positions are set and measurement points determined, generating an optimized trajectory is essential to reduce the motion time from one measurement point to another, and thus boost the sampling rate per measurement point. Overall, at the same time, a campaign designer has to handle several constraints to find the best measurement locations and accordingly generate the best possible measurement campaign layout, or they can decide that a measurement campaign with scanning lidars is not practical.

In this paper, we describe a workflow which tackles the above-described challenges involved in the planning of scanning lidar campaigns together with an approach of the workflow digitalization. The workflow is based on the application of the methodology for multilidar experiments on wind resource assessment campaigns , which was previously used in planning of measurement campaigns conveyed in the New European Wind Atlas (NEWA) project , such as Perdigao-2015 and Perdigao-2017 . The workflow addresses “experiment layout design” and “scanning modes design” steps of the abovementioned methodology (see steps 4 and 5 in Vasiljević et al.2017).

The paper is organized as follows. Section 2 provides a detailed description of the four main phases of the workflow. Additionally, Sect. 2 provides a recipe for the workflow digitalization. In Sect. 3 we present results of applying the digitalized workflow for planning campaigns at three wind farm sites that are different in size, layout and complexity. Results and further development of the workflow are discussed in Sect. 4, and we provide our concluding remarks in Sect. 5.

2 Methodology

2.1 Overview

We assume that the location and the layout of the wind farm are known. This initial information is input to the campaign planning workflow, which consists of four sequential phases graphically represented in Fig. 1. First of all, if required the measurement positions are optimized based on the wind farm layout. Afterward, the measurement positions are used in combination with lidar and site constraints to generate the map that highlights the best lidar installation locations. In the next phase, the positions of the scanning lidars are determined by minimizing a dual-Doppler measurement uncertainty of horizontal wind speed while identifying existing road and power infrastructure. Finally, considering the measurement positions and positions of scanning lidars, the trajectory of the laser beams through all the reachable measurement points is optimized and afterward generated. In the sections that follow, each phase will be described in detail.

Figure 1Campaign planning workflow (figure designed using © freepik.com icon database).

2.2 Phase 1 – measurement positions optimization

This first phase of the workflow tackles challenges of measurement point optimization. We assume that the wind farm site has been selected and that a preliminary resource assessment and wind farm layout have been made before the campaign planning.

For small wind farms (either a limited number of turbines and/or a limited spatial extent), we consider the wind turbine positions as the measurement positions. For larger wind farms, the number of measurement points needs to be reduced. However, the reduced set of measurement points should be adequately distributed over the wind farm site to avoid long wind resource extrapolation distances. The simplest approach is to group the wind turbine locations, which are close to each other in clusters and to assign a single measurement location per cluster. suggests that measurements from a single location represent the wind climate over a certain area described by “representativeness radius” (Rr). Rr has different values for different terrain types. For example, in complex terrain, the radius should be smaller than 2 km as suggested by . By solving a disk-covering problem (e.g., Biniaz et al.2017), in which we aim to find a minimum number of disks with a radius equal to Rr that cover all locations of wind turbines, we cluster the wind turbines and optimize the measurement locations. As stated in , there are several ways to solve the disk-covering problem. One of them is a greedy approach that we adapted to suit our purpose.

In our case, the greedy algorithm implementation yields the set D of m unique disks with the radius Rr covering the set T of n wind turbine positions ($T=\mathit{\left\{}{T}_{\mathrm{1}},{T}_{\mathrm{2}},\mathrm{\dots },{T}_{n}\mathit{\right\}}$). We are solving the disk-covering problem in two dimensions (2-D) by omitting the height coordinate (i.e., z) of turbine positions. The greedy algorithm implementation can be described in the algorithmic sense with the following steps:

1. Initialize the set D (D=∅).

2. For any unique pair of wind turbine positions (there is $p=\frac{n\mathrm{!}}{\mathrm{2}\left(n-\mathrm{2}\right)\mathrm{!}}$ unique pairs), calculate a midpoint Mi, which is considered a potential disk center, and add it to the set $M=\mathit{\left\{}{M}_{\mathrm{1}},{M}_{\mathrm{2}},\mathrm{\dots },{M}_{p}\mathit{\right\}}$.

3. Find the elements of the set T that are covered by each element of the set M and form an additional set S which will contain this information. To do this, calculate the distance between each element of the two sets:

$\begin{array}{}\text{(1)}& \begin{array}{rl}{d}_{i,j}& =\parallel {M}_{i}-{T}_{j}\parallel \\ & =\sqrt{{\left({x}_{{M}_{i}}-{x}_{{T}_{j}}\right)}^{\mathrm{2}}+{\left({y}_{{M}_{i}}-{y}_{{T}_{j}}\right)}^{\mathrm{2}}},\\ & i=\mathrm{1},\mathrm{\dots },p\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\wedge \phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}j=\mathrm{1},\mathrm{\dots },n,\end{array}\end{array}$

where xm, ym, xt, and yt are coordinates of disk centers and turbine positions; then compare di,j to Rr (the di,jRr condition must be satisfied for a disk Mi to cover a point Tj). Through the comparisons, the set S is formed. The elements of S are actually sets themselves containing wind turbine positions covered by each disk from the set M. If, for example, a disk Mk covers turbine positions T1, T2 and Tn (i.e., dk,1, dk,2 and dk,n are smaller or equal to Rr), the corresponding element of the set S, i.e., Sk, will contain these elements (i.e., ${S}_{k}=\mathit{\left\{}{T}_{\mathrm{1}},{T}_{\mathrm{2}}\phantom{\rule{0.25em}{0ex}}\mathrm{and}\phantom{\rule{0.25em}{0ex}}{T}_{n}\mathit{\right\}}$). Alternatively, if a disk Mk does not cover any turbine position, the corresponding element of the set S will be an empty set (i.e., Sk=∅).

4. Select a disk from the set M which covers the maximum number of points of the set T (this process is aided using the set S). Let this disk be Mi.

5. The disk Mi is added to D and removed from M:

$\begin{array}{}\text{(2)}& D=D\cup {M}_{i},\text{(3)}& M=M\cap {M}_{i},\text{(4)}& S=S\cap {S}_{i}.\end{array}$
6. Points covered by Mi provided in Si are removed from the set T and from any subset of the set S:

$\begin{array}{}\text{(5)}& T=T\cap {S}_{i},\text{(6)}& \forall {S}_{j}\in S,\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}{S}_{j}={S}_{j}\cap {S}_{i}.\end{array}$
7. Steps 1 to 6 are repeated until either the set T or S is empty :

$\begin{array}{}\text{(7)}& T=\mathrm{\varnothing }\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\vee \phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}S=\mathrm{\varnothing }.\end{array}$
8. If T is not an empty set after Step 7, then the remaining elements are added to the set D:

$\begin{array}{}\text{(8)}& D=D\cup T.\end{array}$

At the end of this process, elements of the set D, i.e., measurement points, contain only x and y coordinates. Using the digital elevation model (DEM) from the Shuttle Radar Topography Mission (SRTM; ) we can introduce the height information to the elements of the set D. It is important to additionally add the hub height of future wind turbines to this height information. As the last step of the first phase, we generate a mesh of equally spaced points over the site with the measurement point in the mesh center (see Fig. 2). Let us denote the mesh as G and treat it as a set of elements Gi,j (${G}_{i,j}=\mathit{\left\{}{x}_{i},{y}_{j}\mathit{\right\}}$, where $i=j=\mathrm{1},\mathrm{\dots },l$). The mesh resolution should be equal to the land cover and terrain data resolution which will be used in the second phase (typically $\mid {x}_{\mathrm{2}}-{x}_{\mathrm{1}}\mid =\mid {y}_{\mathrm{2}}-{y}_{\mathrm{1}}\mid =\mathrm{100}$ m). This avoids any interpolation of the land cover or topography datasets to our mesh.

Figure 2A stack of data used to generate the GIS layer for lidar placement: (a) measurement positions generated by solving the disk-covering problem; (b) mesh covering wind farm site; (c) land cover data sourced from CORINE Land Cover database; (d) terrain data sourced from SRTM DEM database and (e) aerial image sourced from the © Google Maps server.

2.3 Phase 2 – highlighting best lidar installation locations

In this phase, we will create a Geographical Information System (GIS) layer which includes site and lidar constraints while highlighting the best lidar installation locations considering the previously determined measurement points. We will denote this GIS layer as the combined layer and treat it as a set Cl containing elements ${C}_{\mathrm{l},i,j}$. To create this layer, first we acquire land cover data, orthography data and the aerial image corresponding to the extent of the previously generated mesh (Fig. 2). For land cover data, we can use the CORINE Land Cover dataset. In the case of the orography, the previously mentioned SRTM DEM datasets serve this purpose, and for the aerial image we can use the Google Maps server. All three data sources are publicly available. The acquired stack of data will be a base material for the combined layer creation.

At present we consider five types of constraints which are detrimental for a lidar installation: zones where a lidar cannot be installed (e.g., lakes, forests, etc.); topographical features that can block the beam; keeping the lidar elevation angle below a certain threshold to avoid measurement contamination with the vertical component of the wind; the maximum lidar range; practical matters such as access roads. To create the combined layer which contains all the above-listed constraints, first we will generate GIS layers for each constraint and afterward merge them. These individual GIS layers are (1) exclusion zones layer, (2) LOS blockage layer, (3) elevation angle layer, (4) lidar range layer and (5) logistical layer.

To create the exclusion zone layer we will use the land cover data and according to the land cover type (e.g., water surface, forest, etc.) classify areas of the site as suitable or not for a lidar installation. The land cover data can be treated as a set Lc of equally spaced elements Lci,j containing integer values which represent the so-called grid_code that indicates the land cover type (e.g., water bodies have grid_code code from 40 to 44). A look-up table for grid_code comes together with the land cover data when downloaded from the CORINE Land Cover web site (https://land.copernicus.eu/pan-european/corine-land-cover/, last access: 9 January 2020). To generate the exclusion zone layer we make a copy of the mesh (an empty mesh), walk through the mesh (going from one mesh point to another), fetch the corresponding information on land cover type from the land cover dataset, check the type and assign a value of 1 or 0 to the mesh point if the land cover type allows lidar installation or not (e.g., ${G}_{i,j}=\mathit{\left\{}{x}_{i},{y}_{i},\mathrm{1}\mathit{\right\}}$ if grid_code code is equal to 12, i.e., “arable land”). An example of a fictive exclusion zone layer is shown in Fig. 3.

Figure 3Fictive exclusion zone layer represented as an array: Gi,j denotes one mesh point, white and gray squares indicate bad (${G}_{i,j}=\mathrm{0}$) and good (${G}_{i,j}=\mathrm{1}$) locations for a lidar installation, respectively, and i corresponds to x coordinate or easting and j corresponds to y coordinate or northing.

To generate the LOS blockage layer we need to create a dataset that contains the summed height of terrain and canopy. To do this we will add 20 m at each location in the DEM dataset where the CORINE Land Cover dataset contains code which corresponds to the forest (grid_code code equal to 23, 24 and 25). This value is a conservative guess. Afterwards, we make a copy of the mesh, walk through the mesh, fetch the corresponding elevation from the DEM dataset, perform a viewshed analysis from the selected mesh point to each measurement point that returns which measurement points are visible and assign the visible measurement points to the mesh point (e.g., if measurement points D1, D2 and Dn are visible from Gi,j, then ${G}_{i,j}=\mathit{\left\{}{x}_{i},{y}_{i},{D}_{\mathrm{1}},{D}_{\mathrm{2}},{D}_{n}\mathit{\right\}}$). In the viewshed analysis for the selected mesh point, we are only taking the corresponding height from the DEM dataset (since we consider that lidar will be installed on the ground), while for the points in between the mesh and measurement points we are considering the summed height dataset. The result of this process is the LOS blockage layer, whose mesh points contain a set of measurement points to which there is an unobstructed LOS.

Our focus is to design a dual-Doppler measurement campaign to retrieve the horizontal wind speed. Accordingly, a low elevation beam angle is required to avoid contamination of the LOS speed measurement with the vertical component of the wind vector. We create the elevation angle layer to serve this purpose. This layer is created through the following steps: we make a copy of the mesh, walk through each mesh point, fetch the height information from the DEM dataset, calculate the elevation angle from the mesh point to each measurement point, compare the calculated angle to a threshold value (e.g., a maximum of 5 as suggested by ) and assign measurement points to the mesh point for which the elevation angle is below the threshold value.

In the lidar range layer, mesh points contain measurement points that are within reach of the lidar taking into account the expected range of the lidar for the given site. It is worth noting that the expected range is not the maximum range given in the product data sheet. The layer is created similarly to the previous one.

To create the combined layer, we will treat the four previously derived layers as sets Ez (exclusion zone layer), Lb (LOS blockage layer), Ea (elevation angle layer) and Lr (lidar range layer). Since each set is made using the same mesh, each set contains the same number of elements. The combined layer, treated as a set Cl containing elements ${C}_{\mathrm{l},i,j}$, is derived as follows:

Therefore, the mesh points of the combined layer will contain which and how many measurement points are reachable considering the first four above-described constraints.

Finally, the acquired aerial image of the site (the logistical layer) is kept separately and will serve the important purpose of identifying existing road and power infrastructure.

2.4 Phase 3 – placement of the lidars

The combined layer together with the underlying aerial image highlights the “best” locations for the placement of individual lidars considering all the above-described constraints. However, designing the campaign for a dual-Doppler system, where beams from two lidars need to synchronously cross every measurement position, adds one more constraint, which is the limitation on the beams intersection angle. The measurement uncertainty of a dual-Doppler system increases when the intersecting angle between the laser beam becomes small (see ). Therefore the position of the second lidar is very much determined by the position of the first lidar. Considering that we have chosen the first lidar location using the combined layer and the logistical layer, now we need to calculate an additional layer to which we will refer as the intersecting angle layer. This layer is created as following: we make a copy of the mesh, walk through each mesh point considering each mesh point as a second lidar position, calculate intersecting angles between the two laser beams at each measurement point and add those measurement points to the mesh point for which the intersecting angle is bigger than a specific value (e.g., at least 30 as suggested by ; ). Let us treat this GIS layer as a set Ia with elements ${I}_{\mathrm{a},i,j}$. To highlight the best locations for the second lidar installation, the intersecting angle layer should be intersected with the combined layer, i.e.,

$\begin{array}{}\text{(11)}& {S}_{\mathrm{l}}={C}_{\mathrm{l}}\cap {I}_{\mathrm{a},i,j},\end{array}$

where Sl is a set corresponding to the newly created GIS layer for the second lidar placement. The process of selecting a position for the first lidar, followed by the generation of the layer for locating the second lidar and selection of the second lidar position, should be performed several times to generate several potential experiment designs, since only during a field visit will it be possible to determine the most likely design for the measurement campaign. Once the second lidar position is determined, we derive a set of reachable measurement points Dr by both lidars, which is a subset of the set D (DrD).

2.5 Phase 4 – trajectory optimization and generation

The fourth phase consists of the optimization of the path through the measurement points (to boost the sampling rate) and the generation of the synchronized trajectories for two scanning lidars.

One way to optimize the path through the measurement points is to adapt the traveling salesman problem (TSP). In the regular TSP, the goal is to find the shortest path through a set of n cities that a traveling salesman needs to visit. There are multiple approaches to solve the TSP (Reinelt1994). One of the simplest implementations for solving the TSP is nearest neighbor heuristics (NNH). As stated in (Reinelt1994):

This heuristic for constructing a traveling salesman tour is near at hand. The salesman starts in some city and then visits the city nearest to the starting city. From there he visits the nearest city that was not visited so far, etc., until all cities are visited, and the salesman returns to the start.

In our case, we have a single set of measurement points Dc which need to be simultaneously visited by the two laser beams. Since typically two scanning lidars will not be symmetrically positioned with respect to the measurement points we will have two different sets of steering angles Ds1 and Ds2 corresponding to the first and second lidar, respectively, that enable “visiting” the measurement points with the laser beams. Therefore, we cannot directly apply the above-described heuristics. The TSP NNH solution needs to be adapted.

Let us consider that the set Dc is defined as

$\begin{array}{}\text{(12)}& {D}_{c}=\mathit{\left\{}{D}_{c,\mathrm{1}},{D}_{c,\mathrm{2}},\mathrm{\dots },{D}_{c,n}\mathit{\right\}},\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}{D}_{c,i}=\mathit{\left\{}{x}_{i},{y}_{i},{z}_{i}\mathit{\right\}},\end{array}$

while Ds1 and Ds2 are defined as

$\begin{array}{}\text{(13)}& {D}_{\mathrm{s}\mathrm{1}}=\mathit{\left\{}{D}_{\mathrm{s}\mathrm{1},\mathrm{1}},{D}_{\mathrm{s}\mathrm{1},\mathrm{2}},\mathrm{\dots },{D}_{\mathrm{s}\mathrm{1},\mathrm{n}}\mathit{\right\}},\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}{D}_{\mathrm{s}\mathrm{1},\mathrm{i}}=\mathit{\left\{}{\mathit{\theta }}_{\mathrm{1},i},{\mathit{\phi }}_{\mathrm{1},i}\mathit{\right\}},\text{(14)}& {D}_{\mathrm{s}\mathrm{2}}=\mathit{\left\{}{D}_{\mathrm{s}\mathrm{2},\mathrm{1}},{D}_{\mathrm{s}\mathrm{2},\mathrm{2}},\mathrm{\dots },{D}_{\mathrm{s}\mathrm{2},\mathrm{n}}\mathit{\right\}},\phantom{\rule{0.25em}{0ex}}\phantom{\rule{0.25em}{0ex}}{D}_{\mathrm{s}\mathrm{2},\mathrm{i}}=\mathit{\left\{}{\mathit{\theta }}_{\mathrm{2},i},{\mathit{\phi }}_{\mathrm{2},i}\mathit{\right\}},\end{array}$

where θ and φ are azimuth and elevation angles, respectively. Additionally, we will make a set I which will contain indexes of the sets' elements:

$\begin{array}{}\text{(15)}& I=\mathit{\left\{}\mathrm{1},\mathrm{2},\mathrm{\dots },j,\mathrm{\dots },n\mathit{\right\}}.\end{array}$

The adapted TSP NNH solution for dual-Doppler trajectory can be described in the algorithmic sense with the following steps:

1. Initialize empty sets Tl1 and Tl2 (${T}_{\mathrm{l}\mathrm{1}}={T}_{\mathrm{l}\mathrm{2}}=\mathrm{\varnothing }$), which will contain ordered elements of the optimized trajectory (i.e., the trajectory points).

2. Select an arbitrary index j from the set I.

3. Set an element l to j (l=j).

4. Select elements Ds1,l and Ds2,l.

5. Add the elements Ds1,l and Ds2,l to the set Tl1 and Tl2, respectively, and remove index j and elements Ds1,l and Ds2,l from the set I, Ds1 and Ds2, respectively:

$\begin{array}{}\text{(16)}& {T}_{\mathrm{l}\mathrm{1}}={T}_{\mathrm{l}\mathrm{1}}\cup {D}_{\mathrm{s}\mathrm{1},\mathrm{l}},\text{(17)}& {T}_{\mathrm{l}\mathrm{2}}={T}_{\mathrm{l}\mathrm{2}}\cup {D}_{\mathrm{s}\mathrm{1},\mathrm{2}},\text{(18)}& I=I\cap j,\text{(19)}& {D}_{\mathrm{s}\mathrm{1}}={D}_{\mathrm{s}\mathrm{1}}\cap {D}_{\mathrm{s}\mathrm{1},\mathrm{l}},\text{(20)}& {D}_{\mathrm{s}\mathrm{2}}={D}_{\mathrm{s}\mathrm{2}}\cap {D}_{\mathrm{s}\mathrm{2},\mathrm{l}}.\end{array}$
6. Calculate sets Δα1 and Δα2, which contain elements Δα1,il and Δα2,il (i takes values from the set I), defined as

$\begin{array}{}\text{(21)}& \begin{array}{rl}\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{1},il}& =\mathit{\left\{}\mid {\mathit{\theta }}_{\mathrm{1},i}-{\mathit{\theta }}_{\mathrm{1},l}\mid ,\mid {\mathit{\phi }}_{\mathrm{1},i}-{\mathit{\phi }}_{\mathrm{1},l}\mid \mathit{\right\}}\\ & i=\mathrm{1},\mathrm{2},\mathrm{\dots },n;\end{array}\text{(22)}& \begin{array}{rl}\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{2},il}& =\mathit{\left\{}\mid {\mathit{\theta }}_{\mathrm{2},i}-{\mathit{\theta }}_{\mathrm{2},l}\mid ,\mid {\mathit{\phi }}_{\mathrm{2},i}-{\mathit{\phi }}_{\mathrm{2},l}\mid \mathit{\right\}}\\ & i=\mathrm{1},\mathrm{2},\mathrm{\dots },n\end{array}\end{array}$

that describe relative angular moves for the two lidars from the measurement point described by the last element of the sets Tl1 and Tl2 (i.e., Ds1,l and Ds2,l, respectively) to all remaining measurement points described by elements of Ds1 and Ds2.

7. Form a set B containing maximum concurring elements of the sets Δα1 and Δα2:

$\begin{array}{}\text{(23)}& \begin{array}{rl}B& =\mathit{\left\{}max\left(\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{1},\mathrm{1}l},\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{2},\mathrm{1}l}\right),max\left(\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{1},\mathrm{2}l},\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{2},\mathrm{2}l}\right),\\ & \mathrm{\dots },max\left(\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{1},\mathrm{1}n},\mathrm{\Delta }{\mathit{\alpha }}_{\mathrm{2},\mathrm{1}n}\right)\mathit{\right\}}.\end{array}\end{array}$
8. Find index j of an element of the set B which has lowest value.

9. Repeat steps 3 to 8 until the sets Ds1 and Ds2 are empty (${D}_{\mathrm{s}\mathrm{1}}={D}_{\mathrm{s}\mathrm{2}}=\mathrm{\varnothing }$).

The main modification of a standard TSP NNH solution is the addition of Step 7, which ensures that the trajectory will be optimal for both lidars instead of only one. The difference between the standard and adapted TSP NNH solution can be seen from an example shown in Fig. 4.

Figure 4TSP NNH: (a) standard TSP NNH for lidar denoted ws1; (b) standard TSP NNH for lidar denoted ws2; (c) adapted TSP NNH for two lidars denoted ws1 and ws2.

To get the lidars to follow the optimized trajectory, we need to describe the motion of the scanners as a function of time. In other words, we need to add the time component of the trajectory to the spatial description we yielded in the previous steps. When calculating the timing for the trajectory, we assume that the lidars will stop at each measurement point and sample wind speed before they continue to the next measurement point. Therefore, we expect that lidars will perform so-called step-stare trajectories. There are several reasons for selecting step-stare trajectories instead of continuously scanning the flow through the trajectory described by the measurement points. Step-stare trajectories are simpler for the implementation and synchronization of multiple lidars; also, the step-stare data processing is less complex when compared to the continuously scanning trajectories.

The timing for the step-stare scans can be calculated using a simple solution for the kinematics elevator problem (KEP) (e.g., Al-Sharif2014) considering an infinite jerk:

where Tmove is a minimum time required to perform an angular motion Δβ considering maximum allowed acceleration Amax and speed Vmax of the lidar scanner head.

In the case when rotational axes of the scanner head have different kinematic limits, it is advisable to use limits that are more conservative (i.e., lower maximum allowed acceleration and speed).

Since we have two lidars that move from one to another measurement point, we will generally have two different moving times to perform angular motions. To keep the lidar measurements in sync, we take the maximum of the two derived values.

2.6 Digitalizing workflow

The previously described workflow has been digitalized using Python and a set of public Python libraries resulting in a Python package campaign-planning-tool . The package has been made public (open source), it is versioned on GitHub and, using Zenodo, the code base has been assigned a persistent object identifier . At the time of writing the manuscript, version 0.1.3 has been released. Using campaign-planning-tool end users can design scanning lidar campaigns and export results and configuration files for lidars. The whole process roughly takes a couple of minutes.

3 Results

3.1 Overview

In this section, the campaign planning workflow is demonstrated through the application of campaign-planning-tool on three different wind farm sites, which are named by their country of origin: Scotland , Italy and Turkey . These three sites were selected since they are characterized by different terrain complexity and wind farm dimensions and layouts.

The only information needed for each site is the wind turbine positions and their hub height. This input could be generated arbitrarily, but to make the examples realistic the actual operational wind farms have been chosen. For all three sites, we aim to design the campaign for the long-range WindScanner system configured in a dual-Doppler mode (i.e., the system will have two scanning lidars). The system is described in detail in . To demonstrate the workflow, the most essential bits of information are the maximum range of the lidars, which is 6 km, and maximum acceleration and speed of the scanner heads, which are 100 and 50 s−1. Results which will be described in the following sections are accessible as a data collection or as individual datasets .

3.2 Site 1 – Scotland

The Scottish site consists of 22 wind turbines with 47 m hub heights and has a quite compact layout (Fig. 5). The distance between adjacent turbines is about 300 m (5 rotor diameters). The wind farm is placed on hill, 300 m above sea level (a.s.l.), and surrounded by rolling hills of farmland with windbreaks and patches of forest. The hill is quite steep with maximum slopes of 20 % from the main southwestern wind direction. The site is located 17 km from the coast. Therefore, it can be considered an inland site.

Figure 5The aerial image of the Scottish site. Aerial data: © Google Maps, DigitalGlobe.

Due to the compact design of the wind farm, we decided to skip the measurement position optimization and try to generate a measurement campaign in which we intend to measure at every wind turbine position. Considering that the site is relatively close to the coast, surrounded by agricultural land and the altitude is about 300 m a.s.l., thus relatively low, the site should experience a good concentration of aerosols. Nevertheless, we cannot expect that the WindScanner lidars will have a 6 km range all the time and assume that on average the WindScanner lidars would have a range of at least 3 km at the selected site (i.e., half of the maximum claimed range). This estimation is based on our experience in doing measurement campaigns at various locations and in different atmospheric conditions.

Using this range together with the map extent, campaign-planning-tool outputs the combined layer (see top image in Fig. 6). The dark red colored areas show positions from where an individual scanning lidar can reach out to all measurement positions. Those areas are relatively large because the wind farm layout is compact. For this example, we chose to place the first WindScanner at the south of the wind farm (coordinates of 400, −1600 and 350 m in easting, northing and altitude a.s.l., respectively, relative to the map center coordinates of 535 662, 6 183 892 m in easting and northing, UTM zone 30U).

Figure 6Placing lidars at the Scottish site: (a) locating first lidar at the combined layer; (b) locating second lidar at the second lidar placement layer.

As explained in Sect. 2 (Phase 3), the first lidar placement is instrumental for the second lidar placement because of the intersecting angle between the respective lidars' beams. There is only one area of the map where the placement of the second lidar assures that all measurement points are within reach and measurable with fair accuracy (bottom image in Fig. 6). By selecting the position of the second lidar (coordinates of 1600, −400 and 304 m in easting, northing and altitude a.s.l., respectively, relative to the map center coordinates), we complete the generation of one measurement campaign layout. In practice, we would generate several layouts (for different positions of WindScanner 1 and WindScanner 2) and assess their feasibility by inspecting aerial images, e.g., looking for access roads and nearby power lines or houses. However, for the sake of demonstrating the workflow, we have generated only a single layout.

Since we have both the measurement and lidar positions, we have all the elements to optimize and generate the trajectory. Figure 7 shows the optimum trajectory through the measurement points, resulting from the modified TSP (see Sect. 2 – Phase 4).

Figure 7Final campaign design at Scottish site.

Considering the kinematic limits of the scanner head and that we are performing step-stare scans, we can apply the elevator kinematic problem on the trajectory points. This step yields the required time to move the scanner heads from one point of the trajectory to another, which in our case is about 14 s for the entire trajectory with an additional 22 s for measurements. Overall, one complete scan of all measurement points will take about 36 s, which results in about 16 samples of each measurement point per 10 min period. Typically we aim at having at least 10 samples per 10 min period which is satisfied with this configuration.

To verify that the optimized trajectory indeed takes the least amount of time, we have calculated the motion time for 106 trajectory configurations by randomizing the order of trajectory points. This is a fraction of all possible permutations of trajectory points (${P}_{n=\mathrm{22}}=\mathrm{22}\mathrm{!}$). However, since the order of points is randomized (thus not correlated) the results shown in Fig. 8 are trustworthy. Based on the derived results, the optimized trajectory is on average 8 s shorter for this specific campaign layout (i.e., the position of measurement points and lidars).

Figure 8A histogram of motion time for 106 different trajectory configurations for the Scottish site. The min, mean, max and standard deviation are 17.15, 22.09, 25.76 and 1.03 s, respectively.

One way to gauge the value of a WindScanner campaign is to estimate how much the uncertainty of the annual energy production (AEP) is reduced compared to a single met mast campaign. Since the flow model can account for a large part of the total uncertainty in complex terrain, a reduction in the extrapolation distance (i.e., a distance between a turbine and measurement position) gives a reduced flow model uncertainty. A method for estimating the flow model uncertainty has been published by . In the paper, the part of the extrapolation uncertainty associated with the distance is proposed to be

$\begin{array}{}\text{(25)}& {u}_{d}=\mathit{\lambda }\left(\mathrm{1}-{e}^{-d/L}\right),\end{array}$

where λ=10 %, L=1 km and d is the extrapolation distance.

We will consider a single centrally placed met mast and calculate an average ${\stackrel{\mathrm{‾}}{u}}_{{d}_{\mathrm{mast}}}$ taking into account all turbine positions. Based on Eq. (25) we have calculated ${\stackrel{\mathrm{‾}}{u}}_{{d}_{\mathrm{mast}}}$ to be 4.3 %. Since the derived WindScanner setup allows for measurements at every turbine location, the extrapolation uncertainty for the multilidar campaign will be 0 %. To reproduce the previous results, consult the Jupyter Notebook file in .

3.3 Site 2 – Italy

The Italian wind farm consists of 36 wind turbines with a 78 m hub height. The turbines are distributed over a large area (see Fig. 9) but somewhat clustered in small groups (Fig. 10) often with interturbine distances of less than 300 m (3 rotor diameters). With a coastline only 10 km to the west, a complex coastal–inland wind climate transition is expected to occur across the wind farm. The terrain has an average 7 % slope from the coast to the wind farm. The wind farm is surrounded by farmland; although, in a range of about 7 km there are several medium-sized towns that are forming an urban area ring around the farm site.

Figure 9The aerial image of the Italian site. Aerial data: © Google Maps, DigitalGlobe.

Figure 10Measurement locations for Italian site: black dots – wind turbine positions, gray circles – disks covering wind turbine positions, red dots – optimized measurement positions (i.e., disk centers).

Given the specific layout of the wind farm, having more or less isolated groups of tightly packed wind turbines, we decided to apply the measurement point optimization. For this wind farm, the representativeness radius was set to 500 m, which is 4 times smaller than the maximum suggested value for the complex terrain sites (MEASNET2016). With this conservative setting, the optimization routine found 13 disks of radius equal to 500 m which covers all 36 wind turbine locations (Fig. 10). The disk centers represent measurement positions.

From there, the workflow was applied in the same way as it was for the Scottish site. In comparison to the Scottish site, the Italian wind farm is even closer to the sea, and it is surrounded by an urban area that in our experience increases the aerosol concentration resulting in an improved lidar range. Therefore, for the Italian site, we can expect to have an average measurement range of 4 km for the WindScanner systems. The combined layer generated using campaign-planning-tool is shown as the top image in Fig. 11. For this site, there are no positions from which any lidar can reach all 13 measurement positions. At best, there are only a few locations from which one lidar can reach 11 out of 13 measurement points. The top image of Fig. 11 shows the selected location for the first lidar installation (coordinates of −1254, −766 and 253 m northing, easting and height a.s.l., respectively, relative to the map center coordinates of 297 200 and 4 189 947 m in northing and easting, respectively, UTM zone 33S). The layer for the second lidar placement (the bottom image in Fig. 11) shows that the second lidar can reach nine measurement positions (not necessarily coinciding with those reachable by the first lidar) at most and this can only be achieved from a few locations. Of these locations, we selected one which assures that we cover the largest extent of the wind farm, thus getting good spatial information on the farm wind resources. The coordinates of a selected location for the second lidar are 1700, 100 and 299 m in northing, easting and height a.s.l. relative to the map center coordinates (the bottom image in Fig. 11).

Figure 11Placing lidars at Italian site: (a) locating first lidar at the combined layer; (b) locating second lidar at the second lidar placement layer.

Considering the positions of WindScanner systems, reachable measurement points and kinematic limits, we derived an optimum trajectory through the measurement points and calculated the timing for the synchronized scanner head motion (Fig. 12). Based on the calculated timing for the scanner heads motion and considering one second accumulation time per measurement point, one scan through all the points takes roughly 20 s of which 8 s are spent on measurements (consult Jupyter Notebook file in ). This provides us with about 30 measurement samples at each measurement point within a 10 min period.

Figure 12Final campaign design for Italian site.

To verify that the optimized trajectory is indeed the shortest in duration, we have generated all possible trajectories by making permutations of trajectory points. Unlike for the Scottish site, for the Italian site this is feasible since the trajectory contains only eight measurement points, thus there is 40 320 (8!) unique trajectories. For each trajectory, we have calculated the total motion time considering that the lidars will be operated in sync. The results are shown in Fig. 13. Based on the derived results the optimized trajectory is on average 6 s shorter for this specific campaign layout (i.e., the position of measurement points and lidars).

Figure 13A histogram of motion time for 40 320 different trajectory configurations for the Italian site. The min, mean, max and standard deviation are 11.93, 18.14, 22.66 and 2.1 s, respectively.

Like in the previous example we will calculate the averaged extrapolation uncertainty considering a single centrally placed met mast (${\stackrel{\mathrm{‾}}{u}}_{{d}_{\mathrm{mast}}}$). The derived value for ${\stackrel{\mathrm{‾}}{u}}_{{d}_{\mathrm{mast}}}$ is 9.21 %. Unlike the previous example where we were able to measure at every turbine location, the current WindScanner layout is not able to provide the equivalent measurements. Therefore, even the WindScanner measurement campaign will have extrapolation uncertainty. To derive the extrapolation uncertainty for the WindScanner campaign (${\stackrel{\mathrm{‾}}{u}}_{{d}_{\text{dual-Doppler}}}$), we will treat the WindScanner campaign as a multimast campaign, and when calculating distance d for Eq. (25) we will use the closest measurement point to a wind turbine location. Based on this setup the derived value for ${\stackrel{\mathrm{‾}}{u}}_{{d}_{\text{dual-Doppler}}}$ is equal to 4.61 %. To reproduce these results, consult the Jupyter Notebook file in .

3.4 Site 3 – Turkey

The Turkish wind farm consists of 22 wind turbines with an 80 m hub height. The wind farm extends 8 km from north to south (see Fig. 14) with the three most northerly turbines separated by about 2 km from the rest. The interturbine distance is 400–500 m (4–5 rotor diameters) for most turbines. The turbines are located along a 1600 m tall north–south ridge and the main wind direction is from the northeast (i.e., perpendicular to the ridge line). In the main wind direction, the mean terrain slopes are about 12 % and with extremes reaching 50 % the site should be regarded as very complex. The land cover is sparse vegetation with a patch of forest along the western-facing slopes.

Figure 14The aerial image of the Turkish site. Aerial data: © Google Maps, DigitalGlobe.

For this site, we assumed the average lidar measurement range to be 3 km, and we used the representativeness radius of 400 m. Our assumption on the average range in the case of the Turkish site is probably closer to what a lidar would probably achieve in a field operation (thus less conservative) due to operation in high altitude where we usually experience low aerosol concentration and often low clouds and fog. On the other hand, the selected representative radius is 100 m lower than in the case of the Italian site, thus about 5 times smaller than the recommended value by MEASNET. Running the workflow using these parameters we generate a measurement layout with 10 measurement positions (see Fig. 15) with the associated combined layer for the first lidar placement shown in Fig. 16, top image.

Figure 15Measurement locations for the Turkish site: black dots – wind turbine positions, gray circles – disks covering wind turbine positions, red dots – optimized measurement positions (i.e., disk centers).

Figure 16Placing lidars at the Turkish site: (a) locating first lidar at the combined layer; (b) locating second lidar at the second lidar placement layer.

There are only a few good locations for placing the two lidars, due to the wind farm length (8 km) and the lidar average range (3 km). Once again the best solution is to place the lidars in the middle of the wind farm. The top image of Fig. 16 shows the first lidar placement, whose coordinates are −400, 100 and 1562 m in northing, easting and height a.s.l., respectively, relative to the map center coordinates (easting 249 672 m and northing 4 227 405 m, UTM zone 36S).

Knowing the first lidar position leads us to the generation of the second lidar placement layers. From the bottom image in Fig. 16 there is hardly any area where the second lidar could be placed. Also, the bottom image in Fig. 16 shows the result of our choice for the second lidar placement (second lidar coordinates are −1900, −700 and 1492 m in northing, easting and height a.s.l. relative to the map center).

The designed WindScanner layout can provide measurements in 4 out of 10 measurement points that cover the middle part of the wind farm (Fig. 17). There are two measurement points in the middle of the farm that are not reachable since the beam of the second WindScanner is blocked by the hill crest. Also, the upper and lower quarters of the wind farm area are not reachable with the current layout. In principle, we would probably need two or more WindScanner systems to cover the entire wind farm (i.e., four scanning lidars).

Figure 17Final campaign layout for Turkish site.

Considering the WindScanner systems and measurement locations together with the kinematic limits as the input for the last phase of the workflow we reach the optimized trajectory. The trajectory total time is 13.26 s of which 4 s are spent on the wind speed measurements. This trajectory would provide about 43 samples of each measurement point within a 10 min period. Similar to the Italian site, to verify that the optimized trajectory is the shortest one, all possible trajectories have been generated (the total of 4!=24). Considering all possible trajectories, the average trajectory time (motion part only) is 11.13 s, with a standard deviation of 2.34 s. The minimum and maximum time is 9.26 and 14.42 s, respectively. To reproduce these results, consult the Jupyter Notebook file in .

We will repeat the same analysis of the extrapolation uncertainty as in the case of the previous sites. Considering a single centrally placed met mast the average extrapolation uncertainty ${\stackrel{\mathrm{‾}}{u}}_{{d}_{\mathrm{mast}}}$ it is equal to 8.41 %, while in the case of the WindScanner campaign ${\stackrel{\mathrm{‾}}{u}}_{{d}_{\text{dual-Doppler}}}$ is equal to 5.69 %. To reproduce these results, consult the Jupyter Notebook file in .

4 Discussion

4.1 Discussing results

The primary purpose of the described workflow is to design dual-Doppler measurement campaigns for wind resource assessment (WRA). This scope follows the RECAST project ambition which is focused on developing a new way of performing WRA based on multiple measurement points using WindScanner systems. This has driven the choice of examples for Sect. 3 of this paper. However, the workflow and its digitalized version (i.e., campaign-planning-tool) described in this paper are not limited to only planning WRA campaigns. It can be used to design any campaign using one or several scanning lidars. It can easily be applied to any type of scanning lidar since it only requires lidar specifications, which are expected lidar range and scanner head kinematic limits (i.e., maximum acceleration and speed).

Planning the measurement campaign thoroughly especially with such complex instruments as scanning lidars ensures higher data availability during the campaign and eventually saves time and money. Lidars are very mobile and allow agile measurement campaigns compared to a met mast, but too often the ease of deployment is mistaken with a limited (underestimated) need of planning. This study provides solutions for optimizing measurement points, lidar positions and measurement trajectory which represent a necessary foundation for accurate measurements of wind resources over the wind farm site. We have demonstrated that the above-stated optimization leads to reduced trajectory timing and thus an increase in the sampling rate.

The point of the workflow and the corresponding Python package is also to carefully consider the relevance of using scanning lidars for a measurement campaign. We have shown that for large sites one set of two WindScanner systems cannot measure over the whole wind farm area. This is very important to realize at the campaign planning stage when there is still time to either give priority to one part of the site or consider using a second set of two WindScanner systems to cover the rest of the site.

Nevertheless, with a rather simplified approach in the assessment of the AEP uncertainty, we have shown that even when WindScanner systems cannot cover the entire site, still a reasonable reduction of the uncertainty should be expected. Specifically, based on the presented examples, using multilidars and optimizing measurement and lidar positions on average the horizontal extrapolation contribution to the AEP uncertainty can be reduced from 2 % to 5 % compared to a single mast campaign.

4.2 Improving workflow

The presented workflow can already solve many important challenges regarding the scanning lidar deployment. Nevertheless, we envisage a further development of the workflow and thus the Python package campaign-planning-tool.

In the current application of the workflow, we were predicting the lidar range based on our experience. We plan to develop a Python package that will be able to predict the lidar range using external databases of global atmospheric visibility for a given site. In the mean time, our suggestion when planning the lidar campaign is to generate campaign layouts considering a conservative approach in which the expected range of the lidar should be in the range from 75 % to 50 % of the claimed range by the lidar manufacturers. Directly connected to the range prediction is the development of a Python package which will be able to predict the lidar data availability at any desired range during the planned measurement period taking into account, for example, the cloud height, fog or mist occurrence from the Weather Research and Forecasting (WRF) model.

Furthermore, the proposed approach in optimizing measurement positions will be extended by considering other criteria for finding measurement positions apart from the representativeness radius. These are, for example, terrain elevation, speed-up factors, roughness changes, local obstacles, etc. In principle, we will strive to incorporate as many factors as possible that can cause local changes in the flow. In other words, the optimization of measurement positions will consider drivers of flow model uncertainty when finding measurement positions.

Finally, eye safety has not been considered in the presented workflow. In the next iteration of the workflow, we will incorporate these issues as yet another restriction zone (GIS) layer for the placement of lidars.

5 Conclusions

This paper provides an exhaustive description of a workflow for planning and configuring scanning lidar measurement campaigns. The purpose is to find the most suitable measurement positions (considering a preliminary wind farm layout), survey scanning lidar placements considering lidar and site constraints to secure accurate measurements, and optimize scanning lidar trajectory to boost the number of measurement samples. The presented workflow can help to avoid many pitfalls that can be predicted before the start of the campaign, limiting the risks to the campaign itself. The workflow, in its digitalized version, has been demonstrated for planning campaigns for resource assessment for three different sites. For a small wind farm layout, a dual-Doppler system could be positioned such that measurements could be made at all turbine positions. For the other larger sites, the number of measurement points had to be optimized and a set of two lidars could only cover some parts of the sites. Nevertheless, for all examples, we have demonstrated that using the proposed workflow a significant reduction of the trajectory timing and AEP uncertainty are achievable.

Code and data availability
Code and data availability.

Data described in Sect. 3 of the paper are available as a data collection at https://doi.org/10.11583/DTU.c.4559624.v5 . The code described in Sect. 2 of the paper is available at https://doi.org/10.5281/zenodo.3462049 .

Author contributions
Author contributions.

NV, AV and AB performed the conceptualization of the presented work. NV detailed the methodology from the concept, developed software with help from AV, provided background resources together with AB, made visualization of results, handled data curation for the presented study and performed the formal analysis of derived results. All authors contributed to writing the original draft and performed review and editing during the peer-review process. RW and AB acquired funding for the presented work.

Competing interests
Competing interests.

The authors declare that they have no conflict of interest.

Acknowledgements
Acknowledgements.

The authors would like to acknowledge Morten Thøgersen (EMD) for his support during the conceptualization phase of the study described in the paper

Financial support
Financial support.

This research has been supported by the Innovation Fund Denmark (grant no. 7046-00021B).

Review statement
Review statement.

This paper was edited by Joachim Peinke and reviewed by Ines Wuerth and two anonymous referees.

References

Al-Sharif, L.: Intermediate Elevator Kinematics and Preferred Numbers (METE III), Lift Report, 40, 20–31, available at: https://www.researchgate.net/publication/275408222_Intermediate_Elevator_Kinematics_and_Preferred_Numbers_METE_III (last access: 9 January 2020), 2014. a

Bingöl, F., Mann, J., and Foussekis, D.: Conically scanning lidar error in complex terrain, Meteorol. Z., 18, 189–195, 2009. a

Biniaz, A., Liu, P., Maheshwari, A., and Smid, M.: Approximation Algorithms for the Unit Disk Cover Problem in 2D and 3D, Comput. Geom. Theory Appl., 60, 8–18, https://doi.org/10.1016/j.comgeo.2016.04.002, 2017. a

Carta, J. A., Velázquez, S., and Cabrera, P.: A review of measure-correlate-predict (MCP) methods used to estimate long-term wind characteristics at a target site, Renewable and Sustainable Energy Reviews, 27, 362–400, https://doi.org/10.1016/j.rser.2013.07.004, 2013. a

Clerc, A., Anderson, M., Stuart, P., and Habenicht, G.: A systematic method for quantifying wind flow modelling uncertainty in wind resource assessment, J. Wind Eng. Ind. Aerod., 111, 84–94, https://doi.org/10.1016/j.jweia.2012.08.006, 2012. a

Davies-Jones, R. P.: Dual-Doppler Radar Coverage Area as a Function of Measurement Accuracy and Spatial Resolution, J. Appl. Meteorol., 18, 1229–1233, https://doi.org/10.1175/1520-0450-18.9.1229, 1979. a, b

Farr, T. G., Rosen, P. A., Caro, E., Crippen, R., Duren, R., Hensley, S., Kobrick, M., Paller, M., Rodriguez, E., Roth, L., Seal, D., Shaffer, S., Shimada, J., Umland, J., Werner, M., Oskin, M., Burbank, D., and Alsdorf, D.: The Shuttle Radar Topography Mission, Rev. Geophys., 45, https://doi.org/10.1029/2005RG000183, 2007. a

Fernando, H., Mann, J., Palma, J., Lundquist, J., Barthelmie, R., BeloPereira, M., Brown, W., Chow, F., Gerz, T., Hocut, C., Klein, P., Leo, L., Matos, J., Oncley, S., Pryor, S., Bariteau, L., Bell, T., Bodini, N., Carney, M., Courtney, M., Creegan, E., Dimitrova, R., Gomes, S., Hagen, M., Hyde, J., Kigle, S., Krishnamurthy, R., Lopes, J., Mazzaro, L., Neher, J., Menke, R., Murphy, P., Oswald, L., Otarola-Bustos, S., Pattantyus, A., Rodrigues, C. V., Schady, A., Sirin, N., Spuler, S., Svensson, E., Tomaszewski, J., Turner, D., van Veen, L., Vasiljević, N., Vassallo, D., Voss, S., Wildmann, N., and Wang, Y.: The Perdigão: Peering into Microscale Details of Mountain Winds, B. Am. Meteorol. Soc., 100, 799–819, https://doi.org/10.1175/BAMS-D-17-0227.1, 2019. a

Ghasemalizadeh, H. and Razzazi, M.: An Improved Approximation Algorithm for the Most Points Covering Problem, Theor. Comput. Syst., 50, 545–558, https://doi.org/10.1007/s00224-011-9353-4, 2012. a

Izraelevitz, D.: A Fast Algorithm for Approximate Viewshed Computation, Photogramm. Eng. Rem. S., 69, 767–774, https://doi.org/10.14358/PERS.69.7.767, 2003. a

Krishnamurthy, R., Choukulkar, A., Calhoun, R., Fine, J., Oliver, A., and Barr, K.: Coherent Doppler lidar for wind farm characterization, Wind Energy, 16, 189–206, https://doi.org/10.1002/we.539, 2013.  a

Langreder, W. and Mercan, B.: Roaming Remote Sensing – Quantification of Seasonal Bias, in: WindEurope Summit 2016, WindEurope, https://windeurope.org/summit2016/conference/proceedings-Pr0cghyDVy/statscounter2.php?id=2&IDABSTRACT=207 (last access: 9 January 2020), 2016. a

Mann, J., Angelou, N., Arnqvist, J., Callies, D., Cantero, E., Arroyo, R., Courtney, M., Cuxart, J., Dellwik, E., Gottschall, J., Ivanell, S., Kuhn, P., Lea, G., Matos, C., Palma, J., Pauscher, L., Peña, A., Rodrigo, J., Söderberg, S., Vasiljević, N., and Rodrigues, C.: Complex terrain experiments in the New European Wind Atlas, Philos. T. Roy. Soc. A, 375, 2091, https://doi.org/10.1098/rsta.2016.0101, 2017. a

MEASNET: MEASNET Procedure: Evaluation of Site-Specific Wind Conditions, Version 2, available at: http://www.measnet.com/wp-content/uploads/2016/05/Measnet_SiteAssessment_V2.0.pdf (last access: 9 January 2020), 2016. a, b, c, d

Mortensen, N., Heathfield, D., Rathmann, O., and Nielsen, M.: Wind Atlas Analysis and Application Program: WAsP 11 Help Facility, Department of Wind Energy, Technical University of Denmark, available at: https://orbit.dtu.dk/en/publications/wind-atlas-analysis-and-application-program-wasp-11-help-facility (last access: 9 January 2020), 2014. a

Reinelt, G.: The Traveling Salesman: Computational Solutions for TSP Applications, Springer-Verlag, Berlin, Heidelberg, Germany, 1994. a, b

Stawiarski, C., Träumner, K., Knigge, C., and Calhoun, R.: Scopes and Challenges of Dual-Doppler Lidar Wind Measurements — An Error Analysis, J. Atmos. Ocean. Tech., 30, 2044–2062, https://doi.org/10.1175/JTECH-D-12-00244.1, 2013. a

Vasiljević, N.: campaign-planning-tool v0.1.3, Zenodo, https://doi.org/10.5281/zenodo.3462049, 2019. a, b, c

Vasiljević, N. and Bechmann, A.: Campaign Planning Tool results for three sites in complex terrain, figshare, https://doi.org/10.11583/DTU.c.4559624.v5, 2019a. a, b

Vasiljević, N. and Bechmann, A.: Dual-Doppler measurement campaign design for complex terrain site in Scotland, DTU Data, https://doi.org/10.11583/DTU.8344028.v3, 2019b. a, b, c

Vasiljević, N. and Bechmann, A.: Dual-Doppler measurement campaign design for complex terrain site in Italy, DTU Data, https://doi.org/10.11583/DTU.8343989.v3, 2019c. a, b, c, d

Vasiljević, N. and Bechmann, A.: Dual-Doppler measurement campaign design for complex terrain site in Turkey, DTU Data, https://doi.org/10.11583/DTU.8344061.v3, 2019d. a, b, c, d

Vasiljević, N. and Courtney, M.: Accuracy of dual-Doppler lidar retrievals of near- shore winds, Zenodo, https://doi.org/10.5281/zenodo.1441178, 2017. a, b, c

Vasiljević, N., Lea, G., Courtney, M., Cariou, J.-P., Mann, J., and Mikkelsen, T.: Long-Range WindScanner System, Remote Sens., 8, 896, https://doi.org/10.3390/rs8110896, 2016. a, b

Vasiljević, N., L. M. Palma, J. M., Angelou, N., Carlos Matos, J., Menke, R., Lea, G., Mann, J., Courtney, M., Frölen Ribeiro, L., and M. G. C. Gomes, V. M.: Perdigão 2015: methodology for atmospheric multi-Doppler lidar experiments, Atmos. Meas. Tech., 10, 3463–3483, https://doi.org/10.5194/amt-10-3463-2017, 2017. a, b, c, d, e, f