So far we have only looked at how each child layer can influence the validity of its parent. However, each layer can have multiple child layers and each of those child layers can potentially be set up to determine the parent layer's validity. This presents a problem as each child layer can be seen as determining the parent layer's validity throughout its entire range. At every point in the parent layer, the Boolean logic defined in the child layer will either be true or false.
In practice, however, it is desirable to be able to combine the restrictions set up in the child layers. Openwind combines the influence of two or more child layers by either only taking true values or only taking false values and applying them to the parent layer's validity.
By default, SiteLayers are valid everywhere (and, by default, WRGLayers and RasterLayers are valid everywhere within their bounding rectangles). Figure 18 represents positive validity as a "+" sign.
In this scheme, a site boundary could be seen as switching all points outside of the site-bounding polygon to negative or false (see figure 19).
A site constraint consisting of a house on the side of a straight road might lead to the pattern shown in figure 20, with the area along either side of the road and the area around the house depicted as negative or false where, according to this constraint layer, everywhere else is positive or true
Clearly in the case of a SiteLayer in which we want to place turbines inside the site boundary and away from roads and houses, we need to combine the two constraint layers to produce something like figure 21.
Figure 18 represented the default state of the SiteLayer before any constraints were applied.
Figure 19 represented the pattern of valid and invalid (true and false, positive and negative) areas in terms of which parts of the SiteLayer fell inside (true) and outside of (false) the child layer describing the site boundary.
Figure 20 represented the pattern of valid and invalid areas in terms of which areas were too close to a road and too close to a house.
Both Figure 18 and Figure 19 (and indeed Figure 20) specified values at every point. In order to merge these influences, Openwind would take either the true values or the false values and paint those values on the parent layer. In this case, we would take the false (invalid, negative) values from Figure 19 and Figure 20 and override the values in the parent layer Figure 18). Because we only took the negative values and not the positive values, influences could build up to create something that looks like Figure 21.
In this example, Figure 20 would most likely be the result of two different vector layers—a road LineLayer and a house PointLayer. For the sake of brevity, we combined them here as might happen when data has been pre-processed by a GIS specialist.
An example of how this might look in the Child Logic tab of a layer with children is offered in Figure 22. The buildings, site boundary, wetlands and roads child layers all have a negative impact on the parent layer whereas the transln layer has no impact
In most cases, a constraint is combined by taking its negative values and painting these onto the validity of the parent layer.
On occasion, we might want to add a constraint by taking its positive values, or "Effect." One case would be where we have a site boundary in an area which another layer has already been defined as invalid by a previously applied constraint—constraints are applied in the order in which they appear in the tree-view, from bottom up—with upper layers overwriting lower layers in a manner similar to the way in which layers are drawn.
Figure 24 shows an additional site boundary we want to combine with the constraints shown in figure 23. Because the area outside of the already described site boundary is invalid (negative, false), we need to take the positive (valid, true) values and paint them onto the constraint layer as it is shown in figure 21. In order to do this, we must make sure that the layer order is correct. In this case, we can place the additional site boundary as the first child in the list, at the top of the list of child layers. This way, it gets applied last and overwrites the constraints as they are shown in figure 21 to become figure 24.
Other correct layer orders can achieve the same effect. However, in this case the layer order shown is the simplest. Figure 25 shows how all this might look in the Child Logic tab. It does so with the addition of a couple of other layers, but the principle is the same. The additional site boundary layer is first in the list, which means its logic gets applied last and it has a "+ve" effect rather than the "-ve" effect which we assigned to the other constraint layers. By a "+ve" (pronounced "positive") effect we mean that we take only the true (valid) values and paint them onto the parent layer's validity. In contrast, a "-ve" (pronounced "negative") effect means we only take the false (invalid) values and paint those onto the parent layer's validity.
Using Openwind is essential to gaining familiarity with this concept. Each Parent Logic tab contains a large button which, when pressed, creates a raster layer showing the effects of the parent logic. Each Child Logic tab contains a button which can show the combined effect of all the child layers. These rasters can be generated at relatively coarse resolution (e.g., 25 meters) to provide confirmation that what is really happening is what the user intended. They can also be generated at fine resolution (<5 meters) if one wants to use the raster layer to replace multiple vector constraints to increase speed during the optimisation process. (Checking a single raster value is far faster than checking the geometry of multiple vector layers).
Another way to think about layer validity is to think in terms of whether you are adding or removing valid areas from the valid area of the parent layer. If you are removing area from the valid area then the effect is -ve. If you are adding a valid area to the current valid area then you should use +ve. Generally, we are looking to restrict the valid area of a layer by removing areas from the current valid area. For this reason you almost always use -ve.