Wind
Introduction
Nova expresses wind as both ground/sea level wind and variable wind layers. This has an effect on several elements in the scene such as the sea state, the wind socks, effects like smoke columns and the movement of cloud layers.
Types of Wind
Sea State Wind
Sea State wind controls the look and movement of 3D water surfaces such as oceans and lakes.
Wind Layers
Wind Layers are used to control effects on the terrain such as windsocks and smoke markers. The wind layer definitions will also impact cloud layers. Nova allows for up to 4 points to be defined. The wind speed and direction for any given altitude is interpolated between these points. If wind_layer_hgt[0] is 0 feet and wind_veloc[0] is 20 knots and wind_layer_hgt[1] is 10000 feet and wind_veloc[1] is 30 knots, then the wind speed at 5000 feet altitude would be 25 knots. An important point to understand is that wind_veloc[x] has an off condition of 0, so if you want to achieve no wind, use .001, not 0.
Wind Parameters
| Field | Description | Values | Type |
|---|---|---|---|
| wind_dir[0-3] | Direction of the wind in degrees | 0.0 - 360.0 | float |
| wind_veloc[0-3] | Velocity of the wind in knots. 0 means off, so no wind should be set to .001 | 0.0 - 50.0 | float |
| wind_layer_hgt[0-3] | The wind speed at a given MSL height. The wind values for any height is interpolated between the 4 supplied values | 0.0 - 50000.0 | float |
| sea_state.sea_state_wind_dir | Direction of the wind in degrees. This wind value affects the direction of the sea state | 0.0 - 360.0 | float |
| sea_state.sea_wind_speed | .Speed of the wind in knots. This wind value affects the sea state | 0.0 - 200.0 | float |
Effects of the Wind
Wind Socks
The wind_veloc and wind_dir affect the wind sock for the lowest wind height (wind_layer_hgt). If you were to set multiple wind layers to the same height, lowest wind height would be the last one encountered. For example, if:
- wind_veloc[0] is 7 knots
- wind_dir[0] is 45 degrees
- wind_layer_hgt[0] is 0 feet
- wind_veloc[1] = 14 knots
- wind_dir[1] = 90 degrees
- wind_layer_hgt[1] = 0 feet
Your wind sock will be oriented to 90 and be perpendicular to the horizon because [0][1]both have the lowest value and [1] was encountered last.
Another important point is that wind_veloc has an off condition of 0. Wind of zero doesn't mean 0 knots wind it means wind off. This matters because if the lowest wind layer is 0 but wind_veloc[0] = 0, then it fails over to the next lowest layer of wind to grab the velocity and direction.
For this reason, you should set all the wind_layer_hgt[x] to unique values, make sure that their velocity is set to greater than 0 and know that only controlling the lowest one is impacting your wind sock.
CIGI Control for Wind
Wind Layers
Atmosphere Control Packet for Wind Layer
This packet is a simple way to control all of the wind layers at once and set the wind to one global value. The values passed in this packet will fill into all of the wind_dir, wind_veloc variables. The wind_layer_hgt will be set at 0, 2000, 4000, and 6000 feet for the layers.
| Atmosphere Control Packet - Wind | |
|---|---|
| Field | Description |
| Global Horizontal Wind Speed | Wind speed in meters per second. This is converted from meters per second to knots when filled into wind_veloc[0-3]. The entire array is filled with the same values so the wind is a constant value. |
| Global Wind Direction | Wind direction in degrees 0.0 - 360.0 |
Weather Control Packet for Wind Layers
If you want to control wind layers individually you must send the Weather Control Packet AFTER the Atmosphere Control Packet in the corresponding frame. If not, the values in the Atmosphere Control Packet will overwrite the wind layer values.
| Weather Control Packet - Wind Layers | |
|---|---|
| Field | Description |
| Weather Enable | Enable the corresponding weather layer |
| Layer ID | 19: Wind Layer 1 20: Wind Layer 2 21: Wind Layer 3 22: Wind Layer 4 |
| Wind Speed | Horizontal Wind Speed in meters per second. This is converted from meters per second to knots when filled into wind_veloc[0-3] |
| Wind Direction | Wind direction in degrees 0.0 - 360.0 |
| Base Elevation | The wind at a given altitude in feet. |
Sea Wind
Weather Control Packet for Sea Wind
The sea wind speed and direction can be controlled via the weather control packet with a Layer ID of 11. This packet will also control other variables related to the sea.
| Weather Control Packet - Sea Wind | |
|---|---|
| Field | Description |
| Weather Enable | Enable the corresponding weather layer |
| Layer ID | 11 |
| Wind Speed | Horizontal Wind Speed in meters per second. This is converted from meters per second to knots when filled into wind_veloc[0-3] |
| Wind Direction | Wind direction in degrees 0.0 - 360.0 |
Legacy User Defined Packet for Sea Wind
Aechelon supports a Sea State User Defined Packet to control all the variables in the internal nova sea_state structure including wind speed and direction.