Concurrency Requirement

In most situations, when calculating some property of a data column such as its average value, Windographer uses every valid data point in that data column. To calculate the overall mean of the 'Speed 80m' data column, for example, Windographer would consider every value of that data column except those that are missing or that fail to meet the filter criteria.

In such situations, the validity or invalidity of data in other data columns has no effect. If the following chart indicates the valid or invalid state of data in four data columns over a one-day period of record, and we intend to calculate the overall average of 'Data Column A', for example, then to do so we would use all valid data from 'Data Column A': one segment from 03:20 to 04:00, and another from 06:40 to 20:20. The presence or absence of data from data columns B, C, and D do not matter to this calculation.

But in some situations, Windographer restricts its calculations to only those time steps in which every relevant data column reports valid data. We call this restriction the concurrency requirement because it require valid concurrent values, meaning values measured at the same time in multiple data columns. If all four data columns in our diagram are relevant to a particular calculation and we enforce the concurrency requirement, then Windographer would use only those time steps in which all four data columns report valid data, meaning the following:

In some cases such as this example above, the concurrency requirement can drastically reduce the number of time steps used in a calculation. In other cases it has a lesser effect. But when a calculation is meant to illuminate differences between data columns, the concurrency requirement has an important benefit: it ensures that the reported differences are truly due to different behavior of the data columns, and not just a result of different measurement periods.

When calculating mean shear, veer, or temperature gradient, for example, we want the most accurate comparison possible between the mean values at different heights, so the concurrency requirement becomes important in such situations.

Example: Wind Shear

To calculate wind speed shear, we compare the mean wind speed at one height with the mean wind speed at one or more different heights. But we need to make that comparison carefully, to make sure the differences we observe are due to the height difference, and not to other factors. For example, imagine a simple case of two anemometers, an upper and a lower, where the upper anemometer recorded data throughout the windy season and the calm season, but the lower anemometer recorded data only during the calm season. In that case, the difference between the two overall mean wind speeds would result partly from wind shear, but partly from the difference in measurement period. If we ignored this and assumed that the difference was due entirely to wind shear, we would overestimate the wind shear.

We can avoid this error by enforcing the concurrency requirement, so that both mean wind speeds are calculated over only the time steps in which both anemometers report valid data. That way, the difference observed in the wind speeds is a legitimate effect of height. This is why Windographer enforces the concurrency requirement by default in the Wind Shear Analysis and Temperature Profile Analysis windows. A checkbox in each window allows you to relax the constraint if you choose.

How the Concurrency Requirement Works

If the concurrency requirement applies, then when Windographer calculates mean wind speeds for the purpose of calculating wind shear, it considers only those time steps that contain data from every wind speed sensor involved in the comparison. If even one of those sensors lacks a valid speed in some time step, either because of a gap or because the value was flagged to exclude, then Windographer will not use that time step to calculate the mean wind speeds. If five out of six anemometers contain valid data in some time step, for example, but the sixth anemometer reported a wind speed that was flagged as invalid, then Windographer will ignore those five valid wind speed values, and not use any values from that time step in its calculation of the mean wind speeds.

The concurrency requirement works in exactly the same way when determining vector mean wind directions for the purpose of calculating wind veer, and when determining mean temperatures for the purpose of calculating the temperature gradient. The only time steps that count in the calculation are those in which all relevant sensors report valid data.

Concurrency Across Datasets

The concept of concurrency across two or more columns is the same whether those data columns all come from the same dataset, or whether they span multiple datasets. If they span multiple datasets, and if those datasets do not all share the same time context, then Windographer will first resample the data columns so they all share the same time context, then proceed to enforce the concurrency requirement.

See also

Data point

Data column

Filter criteria

Time context

Resampling

Wind Shear window

Temperature Profile window


Written by: Tom Lambert
Contact: windographer.support@ul.com
Last modified: July 6, 2021