From 758f691a1c35e3fee760c9cd8036d58582ab5494 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Tue, 26 Oct 2010 21:40:33 +0200 Subject: [PATCH] Local Weather version 0.9 by Thorsten Renk --- Docs/README.local_weather.html | 120 +- Docs/clouds-detailed01.jpg | Bin 95293 -> 59101 bytes Docs/clouds-static.jpg | Bin 0 -> 47724 bytes Docs/detailed_clouds04.jpg | Bin 0 -> 73756 bytes Docs/detailed_clouds05.jpg | Bin 0 -> 94824 bytes Docs/high_pressure_border.jpg | Bin 0 -> 57042 bytes Docs/low_pressure.jpg | Bin 0 -> 32858 bytes Docs/menu2.jpg | Bin 25166 -> 26427 bytes Docs/thermal_lift.gif | Bin 0 -> 5632 bytes Docs/thermal_lift_time.gif | Bin 0 -> 6042 bytes Nasal/compat_layer.nas | 581 +++++----- Nasal/local_weather.nas | 1582 ++++++++++++++++++-------- Nasal/weather_dynamics.nas | 227 ++-- Nasal/weather_tile_management.nas | 254 ++++- Nasal/weather_tiles.nas | 333 ++++-- Shaders/clouds-thin.vert | 6 +- gui/dialogs/local_weather_config.xml | 2 +- gui/dialogs/local_weather_tiles.xml | 29 +- 18 files changed, 2145 insertions(+), 989 deletions(-) create mode 100644 Docs/clouds-static.jpg create mode 100644 Docs/detailed_clouds04.jpg create mode 100644 Docs/detailed_clouds05.jpg create mode 100644 Docs/high_pressure_border.jpg create mode 100644 Docs/low_pressure.jpg create mode 100644 Docs/thermal_lift.gif create mode 100644 Docs/thermal_lift_time.gif diff --git a/Docs/README.local_weather.html b/Docs/README.local_weather.html index 505308079..d7f0a25d3 100644 --- a/Docs/README.local_weather.html +++ b/Docs/README.local_weather.html @@ -7,7 +7,7 @@ -

Local Weather Package - v0.85

+

Local Weather Package - v0.9

1. Introduction

@@ -15,7 +15,7 @@ The aim of a local weather system is to simulate weather phenomena tied to speci This is in contrast to the current (v.2.0.0) weather system of Flightgear where weather changes affect the weather everywhere in the simulated world and are (with few exceptions) not tied to specific locations. In such a system, it is impossible to observe e.g. the approach of a rainfront while flying in sunshine.

-The local weather package ultimately aims to provide the functionality to simulate such local phenomena. In version 0.85, the package supplies various cloud placement algorithms, as well as local control over most major weather parameters (wind, visibility, pressure, temperature, rain, snow, thermal lift, turbulence...) through interpolation routines and event volumes. The dynamics of the different systems is tied together - clouds and weather effects drift in the specified wind field. The package also contains a fairly detailed algorithm to generate convective clouds and thermals with a realistic distribution. Unfortunately, as of v0.85, there is no interaction yet between the windfield and the cloud-generating algorithms, i.e. while the placement algorithms create a realistic configuration of thermals and convective clouds, the wind will simply move this configuration, not create, destroy or move clouds in altitude dynamically (which would be realistic).

+The local weather package ultimately aims to provide the functionality to simulate such local phenomena. In version 0.9, the package supplies various cloud placement algorithms, as well as local control over most major weather parameters (wind, visibility, pressure, temperature, rain, snow, thermal lift, turbulence...) through interpolation routines and effect volumes. The dynamics of the different systems is tied together - clouds and weather effects drift in the specified wind field. The package also contains a fairly detailed algorithm to generate convective clouds and thermals with a realistic distribution. In addition, there is a simulation of realistic interaction of the convective cloud system with the terrain as a function of time. Clouds drifting in the wind flow over obstacles, i.e. they change their altitude dynamically. Convection is implemented with a life cycle model of clouds - they are generated, evolve for a given lifetime dependent on the underlying terrain and decay at the end of their life cycle. Thermals associated with the clouds follow the same pattern. In particular, in the presence of wind favourable spots for convection generate 'alleys' of dense cloud cover downwind, or thermals and clouds generated over land decay rapidly once they reach open water.

For long-range flights, the system automatically provides transitions between different weather patterns like fronts and low and high pressure areas. However, basically all features currently present can and will eventually be improved.

@@ -24,13 +24,18 @@ For long-range flights, the system automatically provides transitions between di The package needs to be unpacked in the Flightgear root directory. It writes content into the Nasal/, gui/, gui/dialogs/, Shaders, Effects/, Docs/, and Models/Weather/ subdirectories. The installation does not overwrite any of the default Flightgear files, but to be accessible from the menu, one must copy gui/menubar.xml.alt to the default menubar.xml or copy the last two lines of the environemnt menu calling local_weather and local_weather_tiles into the default file.

-This adds the items Local Weather, Local Weather Tiles and Local Weather Settings to the Environment menu when Flightgear is up. Most of the basic functionality is contained in local_weather.nas which is loaded at startup and identifies itself with a message, but does not start any functions unless called from the GUI.

+This adds the items Local Weather, Local Weather Tiles and Local Weather Settings to the Environment menu when Flightgear is up. Most of the basic functionality is contained in local_weather.nas which is loaded at startup and identifies itself with a message.

+ +Unless asked to do so from the menu, local weather does not run any process in the background. Upon loading, the package does not set any properties already existing, but only generates properties necessary for the menu entries in its own subdirectory /local-weather/ in the tree. The package also does a features check on startup if particular functions are available in hard-coded form. If the features are not present, the package will still function properly using slower Nasal fallbacks.

+

3. Functionality

-The general rule is that the gui is not hardened against problematic user input, for example it will not reject meaningless input like negative windspeeds or unphysical windshear. It is recommended to watch the console, because some level of warnings and errors are passed to the console. Placement calls may sometimes take a significant time to execute especially for large numbers of clouds tied in a complicated way to the terrain. Placing 500 barrier clouds against a small barrier may take a minute to compute. During this time, a reduced framerate is to be expected

+The general rule is that the gui is not hardened against problematic user input, for example it will not reject meaningless input like negative windspeeds or unphysical windshear. It is recommended to watch the console, because some level of warnings and errors are passed to the console if the log options is on. Crucial warnings are also printed on-screen.

-The first menu contains the low level cloud placement functions. Its purpose is mainly for developing cloud patterns without having to resort to re-type the underlying Nasal code every time. Currently five options are supported: Place a single cloud, Place a cloud streak, Start the convective system, Create barrier clouds and Place a cloud layer.

+Placement calls may sometimes take a significant time to execute especially for large numbers of clouds tied in a complicated way to the terrain. Placing 500 barrier clouds against a small barrier may take a minute to compute. During this time, a reduced framerate is to be expected

+ +The first menu Local Weather contains the low level cloud placement functions. Its purpose is mainly for developing cloud patterns without having to resort to re-type the underlying Nasal code every time. Currently five options are supported: Place a single cloud, Place a cloud streak, Start the convective system, Create barrier clouds , Place a cloud layer and Make a cloudbox.

@@ -93,26 +98,45 @@ The second menu is used to place complete weather tiles based on low-level calls

-Weather is created in a series of 40x40 km squares, called tiles. Tiles are classified by airmass, such that the sequence of tiles can describe for example the transition from a high pressure area to a low pressure area. The dropdown menu is used to select the type of weather tile to build initially. The menu contains two groups of tiles - the first are classified by airmass, whereas the last two are scenarios intended for soaring.

+Weather is created in a series of 40x40 km squares, called tiles. Tiles are classified by airmass, such that the sequence of tiles can describe for example the transition from a high pressure area to a low pressure area. The dropdown menu is used to select the type of weather tile to build initially.

Below are entries for three parameters. The first two are the simplified version of wind direction and speed for the user who is not interested in specifying many different wind interpolation points. -The third parameter, the altitude offset, is to manually adjust the altitude level of clouds in the absence of terrain presampling. Cloud layer placement calls are then specified for absolute altitudes and calibrated at sea level. As a result, layers are placed too low in mountainous terrain, hence the need for an offset. The offset may at present also be useful for dynamical weather, as convective clouds with terrain presampling follow terrain altitude, which looks strange when the clouds are allowed to drift in the wind without altitude correction.

+The third parameter, the altitude offset, is to manually adjust the altitude level of clouds in the absence of terrain presampling. Cloud layer placement calls are then specified for absolute altitudes and calibrated at sea level. As a result, layers are placed too low in mountainous terrain, hence the need for an offset.

The dropdown menu for the wind contains various models for how the windfield is specified which require a different amount of user-specified input. The options are described further down when the windfield modelling is described in more detail.

-The dropdown menu for the tile selection mode controls the long-range behaviour of weather. It specifies according to what rules tiles are automatically generated once the aircraft reaches the border of the original tile. The option 'single tile' creates a single weather tile as specified without automatic generation of further tiles. The option 'repeat tile' creates new tiles of the same type as the originally selected tile. This does not mean that weather will be unchanged during flight, as both parameters like pressure, temperature and visibility as well as the positioning of cloud banks are randomized to some degree. In addition, each tile typically contains 2-5 different cloud scenarios, so five repeated generations of 'low-pressure-border' tiles may never result in the same arrangement of cloud layers. Necertheless, the option will keep weather conditions roughly the same. This is different with the (somewhat optimistically named) 'realistic weather'. This option allows transitions between different airmasses, thus one may select 'low-pressure-core' initially, but as the flight goes on, eventually a region of high pressure and clear skies may be reached. Currently this change between airmasses does not include transitions across fronts. Moreover, it does not cover transitions to arctic or tropical weather conditions - those will be covered in a future release. Note that 'realistic weather' does not work for the two soaring scenarios, 'repeat tile' does not work for any tile which is part of a front.

+The dropdown menu for the tile selection mode controls the long-range behaviour of weather. It specifies according to what rules tiles are automatically generated once the aircraft reaches the border of the original tile. The option 'single tile' creates a single weather tile as specified without automatic generation of further tiles. The option 'repeat tile' creates new tiles of the same type as the originally selected tile. This does not mean that weather will be unchanged during flight, as both parameters like pressure, temperature and visibility as well as the positioning of cloud banks are randomized to some degree. In addition, each tile typically contains 2-5 different cloud scenarios, so five repeated generations of 'low-pressure-border' tiles may never result in the same arrangement of cloud layers. Necertheless, the option will keep weather conditions roughly the same. This is different with the (somewhat optimistically named) 'realistic weather'. This option allows transitions between different airmasses, thus one may select 'low-pressure-core' initially, but as the flight goes on, eventually a region of high pressure and clear skies may be reached. Moreover, it does not cover transitions to arctic or tropical weather conditions - those will be covered in a future release. 'repeat tile' does not work for any tile which is part of a front.

-The final option, 'METAR', generates weather according to parsed METAR information. This information must be made available in the property tree. Currently this is not done automatically and the METAR system does not work with real-weather-fetch, this needs some work on the Flightgear core.

+The final option, 'METAR', generates weather according to parsed METAR information. This information must be made available in the property tree. Currently this is not done automatically and the METAR system does not work with real-weather-fetch, this needs some work on the Flightgear core. Future versions will be able to use parsed METAR to generate weather tiles.

-Below the menu are five tickboxes. 'Terrain presampling' finds the distribution of altitude in the terrain before placing a cloud layer. As a result, the layers or clouds are automatically placed at the correct altitude above ground in level terrain. In mountain regions, cloud placement is fairly tricky, and the algorithm analyzes quantities like the median altitude to determine what to do. The appendix contains a detailed description of the algorithm. If the box is ticked, the altitude offset specified above is not parsed.

+Below the menu are six tickboxes. 'Terrain presampling' finds the distribution of altitude in the terrain before placing a cloud layer. As a result, the layers or clouds are automatically placed at the correct altitude above ground in level terrain. In mountain regions, cloud placement is fairly tricky, and the algorithm analyzes quantities like the median altitude to determine what to do. The appendix contains a detailed description of the algorithm. If the box is ticked, the altitude offset specified above is not parsed.

+'generate thermals' is an option intended primarily for soaring. It determines if thermals will be placed whenever a convective clouds is generated. Since managing a large number of thermals costs some amount of resources, it is recommended to generate thermals only if they are needed, i.e. definitely for soaring, possibly for added realism in small aircraft.

-'Worker threads' is an option to distribute the work flow. Usually, the local weather package will compute a task till it is done before starting the next. Thus, creating a new weather tile may lead to a few seconds freeze, before Flightgear continues normally. With 'worker threads' selected, computations will be split across several frames. The advantage is that Flightgear stays responsive during loading and unloading of weather tiles, and in general the flight continues smoothly, albeit with reduced framerate. However, selecting this option does not guarantee that an operation is finished by the time another is beginning - thus there may be situations in which the loading of a new tile blocks unloading of an old one and so on, in essence leading to processes competing for access to the weather array, resulting in an extended period of very low framerates. Dependent on system performance, this may or may not be acceptable to the user. 'asymmetric range' is an experimental performance-improving option (see below). Finally, 'detailed clouds' will change the technique for generating Cumulus clouds from a multilayer model to multiple cloudlets filling a box. This improves the visual appearance of the clouds significantly, albeit at the expense of a (significant) loss of framerate. Rendering multiple tiles of dense Cumulus development with detailed clouds will quite possibly freeze even a powerful system.

+'debug output' determines if the system writes status messages to the console. Unselecting the option suppresses normal status messages (warnings and errors will still be written). However, in many cases the log of status messages is needed to trace bugs, so if you switch it off and experience a problem, it is likely that the problem cannot be traced.

-The option 'dynamical weather' ties all clouds and weather effects to the windfield. If that option is not chosen, the wind is still generated according to the chosen model, but only felt by the aircraft. This makes e.g. soaring unrealistic, as the aircraft continuously drifts out of a static thermal below a static cap cloud. When 'dynamical weather' is selected, aircraft, cloud and thermal are all displaced by the wind.

+'detailed clouds' will change the technique for generating Cumulus clouds from a multilayer model to multiple cloudlets filling a box. This improves the visual appearance of the clouds significantly, albeit at the expense of some loss of framerate. Rendering multiple tiles of dense Cumulus development with detailed clouds will quite possibly slow down even a powerful system.

+ +The option 'dynamical weather' ties all clouds and weather effects to the windfield. If that option is not chosen, the wind is still generated according to the chosen model, but only felt by the aircraft. This makes e.g. soaring unrealistic, as the aircraft continuously drifts out of a static thermal below a static cap cloud. When 'dynamical weather' is selected, aircraft, cloud and thermal are all displaced by the wind and follow elevation changes to some degree.

+ +The final option 'dynamical convection' requires both 'terrain presamling' and 'dynamical weather' to be on (if not, a warning is given and the system aborts). If this option is chosen, all convective clouds and thermals have a life cycle - clouds are continually spawned and decay after a while. This preserves realistic cloud configurations over islands even with wind drift on and improves the realism of the soaring experience as the thermals change over time, but again uses somewhat more performance - switch it on if you need it, for fast planes the visual gain is almost non-existent.

The slider 'Thermal properties' is mainly relevant for soaring scenarios. It governs the rato of maximum lift to radius of a thermal. A setting close to 'low convection' creates large thermals with relatively small lift and virtually no turbulence, a setting close to 'rough day' creates very narrow, turbulent thermals with large lift. However, it also affects the Cumulus textures to be used. 'low convection' creates well-formed, smooth Cumuli whereas 'rough day' biases the texture selection towards more rugged and diffuse clouds.

+The difference is apparent from the following pictures: Smooth and well-formed clouds characteristic of a calm day:

+ +

+ +

+ +Rough clouds characteristic of windshear and more turbulent conditions:

+ +

+ +

+ +As for the buttons, 'Ok' starts the local weather system with the selected options (note that all options in this menu are startup-time options, they are read once and changing them without restarting the system will not affect the behaviour of the system). 'Clear/End' clears all clouds and ends all local weather functionality - the button brings the system back into the state before it was started. No loops or other subroutines are executed after the button is pressed. 'Close' closes the dialog without starting the system.

+ The button 'Show winds' brings up the detailed wind menu which is needed for the wind models 'aloft interpolated' and 'aloft waypoints':

@@ -125,14 +149,14 @@ In principle, the waypoint information inserted so far can be seen using the pro -The following pictures show the results of tile setups 'Low-pressure-border' and 'High-pressure-border':

+The following pictures show possible results of tile setups 'High-pressure-border' and 'Low-pressure':

- +

- +

Performance settings

@@ -162,11 +186,20 @@ All performance setting menu-options work at runtime, but are processed over tim The package contains a number of different cloud models, both static ones for Cirrus and Cirrocumulus clouds as well as rotated ones for Altocumulus, Cirrostratus, Cumulus, Cumulonimbus, Stratus and Nimbostratus cloudlet models. Neither the cloud textures, nor the models nor the transformations are perfected, and any aspect can be improved.

+Static clouds project textures onto curved sheets into the sky. The advantage of the technique is that cloud layers consisting of thousands of cloudlets with different sizes can be modelled. However, the sheets do not look equally well from all perspectives and somewhat unrealistic from close up.

+ +

+ +

+ +Rotated cloud models have the advantage that they look much better from close up and hardly unrealistic from any perspective, but the size distribution of cloudlets is somewhat restricted and they use a lot more performance than static clouds.

+ +

-These are rendered by a different technique: While the default Cumulus models consist of multiple layers rotated around the center of the model, the detailed Cumulus clouds consist of multiple (up to 24) individual cloudlets, rotating each around its own center, randomly distributed into a box. This not only improves the visual appearance, but also leads to a more realistic distribution of cloud sizes and shapes in the sky. In addition, when circling below the cloud (as done when soaring) the effect of the cloudlet rotation is less pronounced. The price to pay is that rendering detailed clouds costs about a factor 4 more performance, so they may not be suitable for all systems.

+These are rendered by different techniques. While the default Cumulus models consist of multiple layers rotated around the center of the model, the detailed Cumulus clouds consist of multiple (up to 24) individual cloudlets, rotating each around its own center, randomly distributed into a box with different texture types used for the cloud bottom. This not only improves the visual appearance, but also leads to a more realistic distribution of cloud sizes and shapes in the sky. In addition, when circling below the cloud (as done when soaring) the effect of the cloudlet rotation is less pronounced. The price to pay is that rendering detailed clouds costs more performance, so they may not be suitable for all systems.

More complex clouds are rendered in sandwitched layers of several different textures. An example are Cumulonimbus towers, which use diffuse textures on the bottom, changing to more structured textures in the upper part of the cloud. With up to 2000 cloudlets, skies with multiple thunderstorms may not render with sufficient framerates on every system.

@@ -178,7 +211,7 @@ The general problem is finding a good balance between spending a lot of CPU time -Currently all clouds which need to be rotated are treated in the Shaders using a view-axis based rotation by two angles. This generally looks okay from a normal flight position, but rapid change of the view axis (looking around), especially straight up or down, causes unrealistic cloud movement. Any static picture of clouds however is (almost) guaranteed to look fine. This means that shader effects need to be 'on' in order to see most of the clouds.

+Currently all clouds which need to be rotated are treated in the shaders using a view-axis based rotation by two angles. This generally looks okay from a normal flight position, but rapid change of the view axis (looking around), especially straight up or down, causes unrealistic cloud movement. Any static picture of clouds however is (almost) guaranteed to look fine. This means that shader effects need to be 'on' in order to see most of the clouds.

5. Local weather parameters

@@ -208,11 +241,11 @@ Volumes 2 and 3 are nested inside volume 1, therefore all settings of 2 overwrit Effect volumes are always specified between a minimum and a maximum altitude, and they can have a circular, elliptical and rectangular share (the last two rotated by an angle phi). Since it is quite difficult to set up event volumes without visual reference and also not realistic to use them without the context of a cloud or precipitation model, there is no low-level setup call available in the menu. Effect volumes can be created with a Nasal call

-create_effect_volume(geometry, lat, lon, r1, r2, phi, alt_low, alt_high, vis, rain, snow, turb, lift, lift_flag);

+create_effect_volume(geometry, lat, lon, r1, r2, phi, alt_low, alt_high, vis, rain, snow, turb, lift, lift_flag, sat);

- where geometry is a flag (1: circular, 2: elliptical and 3: rectangular), lat and lon are the latitude and longitude, r1 and r2 are the two size parameters for the elliptic or rectangular shape (for the circular shape, only the first is used), phi is the rotation angle of the shape (not used for circular shape), alt_low and alt_high are the altitude boundaries, vis, rain, snow, turb and lift are weather parameters which are either set to the value they should assume, or to -1 if they are not to be used, or to -2 if a function instead of a parameter is to be used. Since thermal lift can be set to negative values in a sink, a separate flag is provided in this case.

+ where geometry is a flag (1: circular, 2: elliptical and 3: rectangular), lat and lon are the latitude and longitude, r1 and r2 are the two size parameters for the elliptic or rectangular shape (for the circular shape, only the first is used), phi is the rotation angle of the shape (not used for circular shape), alt_low and alt_high are the altitude boundaries, vis, rain, snow, turb and lift are weather parameters which are either set to the value they should assume, or to -1 if they are not to be used, or to -2 if a function instead of a parameter is to be used and -3 if a function for wave lift is used. Since thermal lift can be set to negative values in a sink, a separate flag is provided in this case. sat finally determines the light saturation - it can be used to dim the light beneath cloud layers (which is not done automatically as objects don't cast shades in Flightgear, and given that most cloud models are rotated, their shade would look rather odd on any case).

-In version 0.85, thermal lift is implemented by function. There is no easy way to implement any weather parameter by function in an effect volume, as this requires some amount of Nasal coding. +In version 0.9, thermal lift and wave lift are implemented by function (wave lift is not yet automatically placed, but can be easily from Nasal). There is no easy way to implement any weather parameter by function in an effect volume, as this requires some amount of Nasal coding.

6. Wind models and dynamical weather

@@ -245,9 +278,9 @@ The internal state of the local weather system is found in the property tree und The local-weather folder contains various subdirectories. clouds/ contains the record of all visible weather phenomena (clouds, precipitation layers, lightning...) in a subdirectory tile[j]/cloud[i]/. The total number of all models placed is accessible as local-weather/clouds/cloud-number. Inside each cloud/ subdirectory, there is a string type specifying the type of object and subdirectories position/ and orientation which contain the position and spatial orientation of the model inside the scenery. Note that the orientation property is obsolete for clouds which are rotated by the shader.

-The local-weather/effect-volumes/ subfolder contains the management of the effect volumes. It has the total count of specified effect volumes, along with the count of currently active volumes for each property. If volumes are defined, their properties are stored under local-weather/effect-volumes/effect-volume[i]/. In each folder, there are position/ and volume/ storing the spatial position and extent of the volume, as well as the active-flag which is set to 1 if the airplane is in the volume and the geometry flag which determines if the volume has circular, elliptical or rectangular shape. Finally, the effects/ subfolder holds flags determining of a property is to be set when the volume is active and the corresponding values. On entry, the effect volumes also create a subfolder restore/ in which the conditions as they were when the volume was entered are saved.

+The local-weather/effect-volumes/ subfolder contains the management of the effect volumes. It has the total count of specified effect volumes, along with the count of currently active volumes for each property.

-local-weather/interpolation/ holds all properties which are set by the interpolation system, as well as subfolders station[i]/ in which the weather station information for the interpolation are found and subfolders wind[i] where wind information in the case of 'aloft interpolated' or 'aloft waypoints' is stored. Basically, here is the state of the weather as it is outside of effect volumes. Since parameters may be set to different values in effect volumes, the folder local-weather/current/ contains the weather as the local weather system currently thinks it should be. Currently, weather is actually passed to the Flightgear environment system through several workarounds. In a clean C++ supported version, the parameters should be read from here.

+local-weather/interpolation/ holds all properties which are set by the interpolation system. Basically, here is the state of the weather as it is outside of effect volumes. Since parameters may be set to different values in effect volumes, the folder local-weather/current/ contains the weather as the local weather system currently thinks it should be. Currently, weather may be passed to the Flightgear environment system through several workarounds, dependent on the Flightgear core version.

local-weather/tiles stores the information of the 9 managed weather tiles (the one the airplane is currently in, and the 8 surrounding it). By default each directory contains the tile center coordinates and a flag if it has been generated. Tiles are not generated unless a minimum distance to the tile center has been reached. Once this happens, the tile type is written as a code, and the cloud, interpolation and effect volume information corresponding to the tile is generated.

@@ -261,7 +294,7 @@ The first important call sets up the conditions to be interpolated:

set_weather_station(latitude, longitude, visibility-m, temperature-degc, dewpoint-degc, pressure-sea-level-inhg);

-The cloud placement calls should be reasonably familiar, as they closely resemble the structure by which they are accessible from the menu. Note that for (rather stupid reasons) currently a randomize_pos call must follow a create_streak call.

+The cloud placement calls should be reasonably familiar, as they closely resemble the structure by which they are accessible from the 'Local Weather' menu.

If the cloud layer has an orientation, then all placement coordinates should be rotated accordingly. Similarly, each placement call should include the altitude offset. Take care to nest effect volumes properly where possible, otherwise undesired effects might occur...

@@ -281,7 +314,8 @@ With default settings, the local weather package generates a 40x40 km weather ti

  • if this does not help, try avoiding scenarios with large cloud count. As a rule, low pressure areas have high cloud count, high pressure areas have a low cloud count. Do not use 'detailed clouds', which tend to generate large cloud counts.

    -

  • a different issue is a characteristic small pause every second. This is caused by the interpolation loop resetting the weather parameters. Currently, a computationally expensive workaround is needed to do so, causing the problem. Work on a better environment controller is on the way, however until that modification to the core Flightgear code is implemented, the best solution is to set the loop time in Nasal/local-weather.nas to a larger value.

    +

  • a different issue is a characteristic small pause every second. This may be caused by the interpolation loop resetting the weather parameters or by the altitude correction of convective clouds when cloud count is high and wind drift is on. The first issue only occurs when the system did not find hard coded support. There is no easy fix for the second problem, except to avoid dynamical weather in situations with large cloud counts. +

  • dynamical weather uses a lot of performance. If framerate is low and you don't need it, don't use it! From fast planes, cloud drift is almost impossible to see against the relative motion of cloud and airplane anyway.

    @@ -297,7 +331,7 @@ With default settings, the local weather package generates a 40x40 km weather ti

  • Rain and snow may not start properly. For me, rain is only generated when I switch 'Shader effects' on and off in the menu on startup, otherwise neither moving the menu slider nor entering an effect volume generate rain. This seems to be a bug of some Flightgear versions, not of the local weather system.

    -

  • Especially with multiple overcast layers and weather fronts, loading and unloading weather tiles may take a long time / cause severe drops in framerate. Please refer to performance tuning to solve such problems. In general, overcast layers and tropical weather tiles do require a system on the high end of the performance scale to render properly.

    +

  • Especially with multiple overcast layers and weather fronts, loading and unloading weather tiles may take a long time / cause severe drops in framerate. The problem is much worse in GIT than in 2.0.0. Please refer to performance tuning to solve such problems. In general, overcast layers and tropical weather tiles do require a system on the high end of the performance scale to render properly.

  • The local weather package is able to occasionally trigger errors like 'Warning:: Picked up error in TriangleIntersect'. These seem to be a problem in the core Flightgear code - the package does nothing but placing normal (rather simple) AC3D models into the scenery.

    @@ -307,6 +341,8 @@ With default settings, the local weather package generates a 40x40 km weather ti

  • Large tile creation distances can cause problems in low visibility weather, because Flightgear loads terrain only if it is within visual range. Thus, trying to sample the terrain for a tile 55 km away in 8 km visibility doesn't work because the terrain elevation and altitude is not known. This may cause improper placement of clouds - chiefly convective clouds, but also layered clouds may not appear on the proper altitude. Currently, there is a limit which restricts tile loading range to 3 times the visibility, but presumably a better solution can be found.

    +

  • Using the 'aloft interpolated' wind option, it is possible to turn the wind direction sharply over a small distance (for example, one may turn the wind by 90 degrees from one tile to the next). Such sharp wind changes are (in most situations) unphysical, and they may cause problems for local weather because they rotate the coordinate system to a degree that the neighbouring tile may not be identified correctly. In essence, the system may not generate new tiles because the nearest tile is still the last generated one. There will be a future fix to address the problem, for the moment just avoid rotating the wind strongly.

    +

  • The thermals in the soaring scenarios need GIT to work.

    @@ -314,9 +350,9 @@ With default settings, the local weather package generates a 40x40 km weather ti This section describes the more complicated cloud placement algorithms in some detail. It is intended for readers who are interested in understanding (and possibly modifying) what creates the weather they get to see. -

    The convective algorithm and the properties of thermals

    +

    The convective startup algorithm and the properties of thermals

    -The convective algorithm is used to place Cumulus clouds as well as thermals. Thermals are by default not placed to save CPU time unless a tile designed for soaring is selected, but they can be generated for any weather tile by setting local-weather/tmp/generate-thermal-lift-flag to either 1 (constant-strength thermals) or 2 (detailed thermal model).

    +The convective startup algorithm is used to place Cumulus clouds as well as thermals. Thermals are by default not placed to save CPU time unless the flag is set in the menu.

    At the core of the convective algorithm is the concept of locally available thermal energy. The source of this energy is solar radiation. The flux of solar energy depends on the angle of incident sunlight with the terrain surface. It is possibly (though computationally very expensive) to compute this quantity, but the algorithm uses a proxy instead. The daily angle of the sun at the equator assuming flat terrain is modelled as 0.5 * (1.0-cos(t/24.0*2pi)) with t expressed in hours, a function that varies between zero at midnight and 1 at noon. There is a geographical correction to this formula which goes with cos(latitude), taking care of the fact that the sun does not reach the zenith at higher latitudes. Both the yearly summer/winter variation of the solar position in the sky and the terrain slope are neglected.

    @@ -368,6 +404,32 @@ At sunset around 19:00 pm, the number of clouds decreases quickly, but there is While not accurate in every respect, the model works fairly well to reproduce the actual time dependence of convective clouds and thermal lift during the day.

    +

    The convective dynamics algorithm

    + +The convective dynamics algorithm is responsible for modelling the life cycle of convective clouds, dependent on the terrain type underneath. It meshes well with the convective startup algorithm, and its long-term zero wind limit is just the situation set up by the initial convective placement.

    + +At its heart is the idea of fractional cloud lifetime. A cloud is born with fractional lifetime zero, and it decays once its fractional lifetime reaces 1. The translation of real time to fractional lifetime is given by sqrt(p) where p is the landcover dependent probability defined above. A cloud over landcover with maximum p of 0.35 has a lifetime of 30 minutes, so if a cloud spends 10 minutes over this terrain type, its fractional lifetime is increased by 1/3. If the landcover is different, the lifetime is reduced according to sqrt(p_1/p_max).

    + +A cloud field is initialized with fractional lifetimes randomly distributed between zero and 1. To compensate for the decay of clouds, clouds are periodically respawned as in the startup algorithm, but with placement probability sqrt(p) instead of p. In the limit of no wind, the cloud density over a terrain type is then given by placement probability times lifetime, i.e. sqrt(p) * sqrt(p) = p as it should be. The presence of a windfield distorts the cloud distribution, dense clouds are then found preferably downwind of suitable convection sources.

    + +

    The thermal lift model

    + +The model of the distribution of lift inside a thermal is quite complex.

    + +

    + +

    + +Vertically, is is characterized in addition to height and radius by two parameters, 'coning' and 'shaping', which make it cone-shaped and wasp-waisted. From zero to 200 m above ground, the lift is smoothly fading in, above the cloudbase it is smoothly faded out to zero at 10% above the nominal altitude. Horizontally, there is an outer ring where the air becomes turbulent, followed by a region of sink which in turn is followed by the inner core of lift.

    + +The distribution of lift and sink is time dependent. + +

    + +

    + +In a young thermal, lift starts to develop from the ground, sink is initially absent. When the lift reaches the cloudbase, sink starts to develop from the ground and rises up as well. Only in a mature thermal are sink and lift in equilibrium. When the thermal starts to decay, lift initially decays from the ground upward, till it reaches the cloudbase. At this time the cap cloud dissolves. For a time there is a residual distribution of sink decaying from bottom to top till the thermal evolution is over and the thermal (and the associate turbulence field) is removed.

    +

    The terrain presampling and cloud altitude determination algorithm

    While the meaning of a cloud layer altitude is rather obvious in level terrain, this quickly becomes a highly non-trivial question in mountaineous terrain where the elevation of the terrain is more difficult to define. Observation of weather patterns in mountain regions suggests that clouds follow changes in terrain elevation to some degree, but not all cloud types do to the same degree. While convective clouds follow a change in elevation more readily even on small distance scales, layered clouds don't do so. The purpose of the terrain presampling and cloud altitude determination algorithm is to capture this behaviour as closely as possible.

    @@ -434,10 +496,10 @@ Realistically, the boundary layer should also depend on terrain coverage. Due to

    Credits

    -The model of a thermal has been developed by Patrice Poly. The shader code used to transform clouds is heavily based on prior work by Stuart Buchanan.

    +The model of a thermal has been developed by Patrice Poly. The shader code used to transform clouds is heavily based on prior work by Stuart Buchanan. Hard-coding of some features by Torsten Dreyer is greatly appreciated.

    -Thorsten Renk, June 2010 +Thorsten Renk, October 2010 diff --git a/Docs/clouds-detailed01.jpg b/Docs/clouds-detailed01.jpg index e380880e3f3d4398d1cac6ef1ae49c352ca89c1b..4136b78b3d043d2709a8e0b73a1c8b29985798ad 100644 GIT binary patch literal 59101 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�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 IQr$oQ*)f*K`Tzg` literal 95293 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

    LdUS>6Z-6jB!ufV^aVM;EdynfQk|}#y-_H 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 Yg~$W-6sc5%RC+o~mUI43{{S=p*~O0yuK)l5 diff --git a/Docs/clouds-static.jpg b/Docs/clouds-static.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ac9c194dd8dfa87f01def62fa4a06621fe0e1cb GIT binary patch literal 47724 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 literal 0 HcmV?d00001 diff --git a/Docs/detailed_clouds04.jpg b/Docs/detailed_clouds04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ac837f4ef00421bc19d9e83af71ec48a40bb2d3 GIT binary patch literal 73756 zcmb@t1zeQf_Afq^7$6cO9Wo#Yh;+A7(hZW5(%mV|NFyoTISA5?bW0;39RkuI4fh$) z_w_yJ-1EEt|GoIxGwWG<@3mKa*IJulyqdV013h>tA}#_#KtKSA0slZ(Q=sP{6eMJ1 zWF!>e1qB7=7Ao3pRNx2W-n~0$m>5`Cm>8It*bj+tv2h5%n3#Bv@Cb;BNl8huamgvj zNhpX&NJ-#A5P+?yw@~ljzI~qr2NQ?n|MSmP6A1G*qAC&@5&}605fcFk6XB{AL<9mM zA_3YWfd2YHMnFPAyoGujm=$;cLPS79L_tJGLPbJGL^UynzQZKy}kU#*J4gdK|JO~hhjB*Q@qsF|R0K@`< zK}hf=2$+aikB|V-$k^nsahR+jLT^j1CP8SxBqAmfCWs%jTP7#$F-v+|P8g?2H&{-X z0WY^r3WpI#aZnC;SqPRD26JTKUNdPo>I@uR zuk>I!C?b?m7#&CM-v+KQj@)x#C=LqaD6#-2!3PSCoWNgiU_oH!ADrLw@TF2Xaw61s zsoSKf$)SmI(A()bII^vB3c_e2)NN8=m0Q$pII?&dIC7GJgg=K0f-sIOpwA0n{ML)r zPEHsM2owh9ew_$ETmk;r1f2C>$Bl#FC&ABDKmhFh<+Wxw$%vN$W|3{x4OSd{jtOP_ zrQl!A1en4%uDzL6y57WaEfi3Q;g2B;XaX1mcbWoRSymQ+@q7I86QC*B3J8l7j-sN9 zq8wu%coZ)!^bHW5R49$LFfy>?4`aZ8ivLaj^3Sig-!A%}-dP3#f2jbfNx?N5{s#e9 z_V@l@V&R8rTUW@zhWkGgKtFWdax{@7ZgZ7Jopq~LZY1Dbz)*d z0h6u=Z9b3)fWhh6!C!>I+;ZhWdX^LZYr6j7@4s{SpG+D?0U*8F5QG7*1MUu%1>*JJ zfpN3+pLGF{xhXON2lzGeuTuj^5-f#!P;NF#muN0e{2{SI#qiy^?^%?ASR`Y#cu&I68+)07kJBYm|F zz3)+`q6l{{kRb}fs4O=R05S)Lpc^>4J_)pia?txGCe|Ww?gGZkT|hg>e8U0rlYK{9HHy!%P@A z6%+*fd2`$Bg;6;&z@ujUVX=VaXPI&H_1Ihyl{tHxaw*#acfEA$f z{slUCulcihl>Z9+9}!RXg&QU#1W)0dv|m{UI2|6~|2$6RB;k;32HF|CZJ4lSU%vtw z+F6*$3|~x_~$!%r{H`1iz>9GQb>vExpSI7n2@G4%m1-u7eJA0EI8X ziVMFhlL!iqETLTabsvH|0H~e+7$XaR1`r-)XaY@OE-W_}o*KC;Pyn%SV7YCAec&-_ z0E^d;C2(y1i<-YXHmEGOY58V`40pCu@Y$Y0BZgkaAmKbe|zH}i}BKdhOGGI zuT0K`0{X#2kqb{tn(JbGou>KM#rY;<0hGc6jj9B%ZSV=WAwWps>2*`W0TkZkC6p1! z+J5S5fC5> zt>OQPQGeaz03gD0uVD?Zjx^pt4g0(Iz%OP0)A*k+ZE`pFpk{a(Vh|bm<8_n;xGw(h z?g&7UpUj5pgyg?Tj{_Rfp96*nrOy6iz;7qOvHAU*~LRvzCpue5Po#Hlsw8Z|qxbXOjn~obe>0MQM_j<+^hs;LN|L0ZNp1 zGU4^#BKb5$>5~9y*>Mtp;NO(OwH9mH*l-1AfK#u9|0k+G@7J`)h|R@6X_a!KViRB^ zF!LYOQoLar`#Nil*wp83DT&hjG7!+c_;0=cX8tD%7AFzC377;o7BJx#?JC#(^X3Wg z!oNQJwp6Y=5AdGiUVUD_k_=6<2o|ui=Vy*Hpcve%a=#q>hYL;sSN3bl{Glh{N$qkV zI??dxz@2&>oxkG*P%=Oi0r&deY=(RC#Ga?dGIkTbMH<**8LRMn8ZHZ%zdq*gmB2!x z-?&IF|8x59g}*2h_|f@}fCm$*eq#Xch#NHgPn0OIF8SJ#07X0bn}qxKH!Vv4ivqy% zpQvAPxQ5boME)BExET)P8;Ad&Qt)v8-U9&q*Y5vDVZsxk`sS4XwC;a*vJy|e$vlZB z0Ag3TLtm2sF!_zM|L9O4ec(3VWG)bMAbkMYoB;menFJ?+FctjQ0RAKT@QwZO+^3_ z?%$X%>`9rXQ9b{<@^=g#(J%TL%? zzYz1sli^Ooz3A3#GB$7~Pd=yOAFTS^W!GO!+R0E&7D`~DG$4OiNCQ~7P5+-*D&@bHLB&n4DVqPEc?`+@%ICJ>+-d_s<`Y#E9Q0|_L*gu8RT+6(+ z>knIFua%XJrT@oR0gGRY-GxbQmoK0N=r&3QbP5vi@MyN&@Y&Tkf*bhm#DdJ`^`#g`pJT zNop~Wdxf)oHx%t8a5BrF_I2k3_y|GGof325Gs>6Tb1MN&p}?74rSv$r2M9 z#6p#biguwUqmX!^hqRBjlL~Boc3zXA(}sM=U3V`C@a$d<+!$yXS4uM4IoNNaGF}Lh zF`OcOrM&8=(MIp96z42LI@aI^E-wYWutwyeo~*9&9urV`{~=^b`U=FgE3z^&00uz3Xw|X1&I=n2fB*te{3w613LX&vB1A zEZW4AyK$I*x7uxIQo3psxrLV*f2M$Ok#maJR%>e`z?en^?N$48vU?3RTx!Hc4c0flg#K6&U$_^Z;$IrJPEOah3S=iJ% z#Lq8>vJOkCM~Ijd*%Pc~(^G*7*3%b4bhF>t8-^$;H@bv)91J?-vy!qZx@5i=#VQMR zq4DlG$l-7g=^JU5D(??@C4Lvje|PmALz z9=HkP%=ozOj9co~m6H`!?saU+8w9U3o@1e%W>E3160X$MUxC=;uRv$(T|{Kwf3@6K$ngk`@{U9Q~XB8gr+iJo0J$?59vpugm9YdZ}g z2;~|@spv}OCib)2)5BdiK}yJsMAaUvV!~V+?rhN*FiFylURf*>i?y6DSbCjgk8+Xk z7fWTW08193AK%nO?R(ZsjILyB-Q)L7DU*gd%Vi;JOT1iv%6~>tL;vt+>dVZCY5Si= zvp$(63)7sNkV+c0mz`?7qL8klf^FZ;l>kY}K?Y<9F~u_vAL5N3{tx{Z+_Q_*PN6!x z3cWb9ICB~@0kq;Y6eZ8pAhRS(_K2lpl3TYS6XQ84G4^a6T4rZVLP*=dnxge7*3jC-z5>pvwKWgocmCgA%5P{yB6)|DdL)@j zFU|+{!Ukt=EA`8v>D_CT=^LsWM_bTf=ORTzx+NE^vr=ClhUL96HdJb0H%H`dy6SkI zoTJ|7%6XiXJmW$dP&~6N`=0IOP&y4zTbo63Nc(eBB$W!DalXc=J^K^Olz^aP=R6PMDs>~ql4ScU zkn!+T_WjwhkE`NEOUnaj5gfDkeMyrq3MRW+eQgUqKGMgVwoLfaAR!HDhH7#7wLd?S zbi6zqUcA(nzXHWp@?GBXNMRe_R480XpA(7VqVRs9;MG#EsDUAdZ_#AWdQewy+U5TU ztB>h9$)1>9?w;wZ0k3aTmJkUtZv!(Fj@QE+6r{^3MJDH*&Ar9n=9doVk zZ!Vwc#}20nY-nsR)K(})u5e`8Ks$2r`Dr%IqBNE!-zL3wq;o;2W@Rdj;EUIbWWE9= zfCqYbP2D_j{Q}!Eqwp!sxIGL93?|Eu8}Iu-)!Y49(K5rE)*!r&mr1l8p7B&_$;mt zXWhdR4%lOMwbjaGvLYHXUBg^UD-h)(UJ5C8`q(&AS(@@=67|$#&DX7C)X|XdTnO5HQGs>xU`uH! zM^gM{9b3Ec*aCBhu&nzO{Wj_(U$ax|k+(iKm|O1N%Kn@d$rvjiJ%&#AU@fy^0Hu z(J=DD@yMwcr=#k~OALhQK~((xdGqInoMKST#mi@&CgWj}`NW0uw`E)pm#T7`1qyEyJ$ z(ahuKD-eoh=#Rp~-ePPk=OJdi-Eq02wWBO1o|Ssi)+>;&gR#7wdN@Njf1v9bbnm3O zskmszv96Bv8K?4+TtWehQ8nyz^_{JP;yT|OG$|I%1ZE|ZnbgL57R@MygzbQ@nzP(b z%UsHWBc(y7W4`K_yr{gi z3mHdU7#l)9hrG-xDZpRKGELTI8fjlF)Vx9K-}yaNmJa%?S#E(S_)}!UtibbH8STWe%@!JAN~=cbH83V1#MBK6wmC3q3-Sb zGMV<KgAo>@Z=6rct(UmS;7AkK~D1#Dp*oat0Uw zkYqW+(lg*VQPJ4VfuYk7$J>Uy6BUSnmSSFvvypN7MmuSQWWJW70Z2> zn>=GWXw^Xcnz)h6@cf0ZokfbpXi&T4gI(2=JDp8E^bRM`WzPuS#mr;NLFe#FvAR*Z-jTG)tzmLI`&(TzIbr$8+p+URX0P|?;N@{s)Sxs zbrDIz?CnB_XY#J!S^w1&sBe;VnwvHimuV1<{G!wmiW!w z$}{K(mJ(YDSHA=IoNhyG6GwG@nTmlDnFXt117~MB9?!@7wjY~WF2WvEmmyEpw%+Og zT$i$2b5Tz^+q35Arabu^6914g41dINropuh1v*nw8lC)b*7`)+k(5TrG=uh&Sg!=} zQJ&7{`yPa`i6)y`#bH6amm1vL13N#A`vnPqvZ8(E#uzH-M%$pk9KnQ|3=Nq^j|9*V zqE6P#ES=dVP90=uh1=g9oU3E=pwVdB?YQgVtj;C+anHS!R^sgr{>=97UGivhzQ~h< zl-CV1d&LHNq%_+vwjXpX2`hNH_cO>$*3DAw?T^y~cl+jsjqZV+!}4N`_?eTHB+Pib zTu^e0^y*xs?XxFW>0=*(%}~I6CMKXQw7cg?FqR_%L3bMh?V~28O5;vutX4F2IOUAH*A$ zhe>*&JRRnB*j=c#KL6IZv^u_f;o>x7fY7z3RqTEK1d&|RnlMBkOY-Hd6udoCkMa3X z3<|;da-my}W=R`amzKb{bU`6jcozJp5*L*GtzDJzn>zO+aJfm2Pd?DlQ z!!H>jHEX3x|C&)8$G~n4PeaGmDeKaReMiP8@5HUTXk7M-5R5^Don^FWbo5hrRRp)C z_mdgco$UwnKL)VsTS38Guth%6!$QNA3>-Uy*Coh$;Kq$(5Al)|{-`jS=SI6YgYAP- z_cI}QecDF5QmuN=^K^Jiw6qmMGY)f^F~?107TrXT91f;c-o4V!=e8YE{0^GpJA6T8 zxJ9e>G)ACvUBxZf@FVBtfo=VU?eP_e=$zR@t9WU{JZk&Z?EPaitvt4 zJF)Id+~><9U%qUh9kc4^L@o*Lyze^RS#m(h-Rkt-A$-rmVq|FzjZN3O0kAWBfo&YK z3xfx29z<2HcW&-XH2!cNf-1%lN7A5jqLQNa6(g%e`}y1@-~MtjRnOk4s>5PzpZ(pt z{u~{WO3#TuKJjqoT~}Ttp`BXTH`yI7NhSG4lk9W_dXu}Fw{gDqo-wI1bK9~l4=p4s zz~!T4{H~HlR{iHUR#wt3+ZvbBE*l>p8fx^zZrlsE!7=()O+uH3ed(;y)JfO4m2yL>V&MvhD5^`J)?n1Jnh}Jl%&%)$xFwE{&{;l;Wb}y& zV~HiK5(_8RX_VsJ(0W=mI6vquZciiDJZs|UuVGF9SZ8IgOgzanktqy+EkPy>=04o7 zEf?hBxsfwZ96!IV62dd)4a{zQP&J)WF0+8!qx`IGV6B)h-rC9<4|Ct%nWJE7-dRM|D8gYa z!EyJ=+(jOY)Y@WPE=WfWVVzZHvA@G*b-b;Ec`a|&;iB{@hc@_5Z*XnL<(y~lm$C88 zr~$69=gH9r_X;+Yg+tL$r(Wi*nf@!TFBq)rn{B>hX>>6ZL(j#!5r~;gW&9>~ zswhGQZ{_KomvYhx?)!W!ro1$tm0L?`4}11{XZ0Zk{^op;SQl1<`VVHs-Fw0xt0VDs zp+XFTf)iIDnp4W==a`NpDXdEzN9YOr(4e36jC{V>bd+DEeXqK{QM9Ha-n`sp>8{X6RNEBrffl|c z8YZ3ccjT80RWP9Xm+GI{F3wGrx5c7XR{B0ij?5IWLq@x>PB2-R!JE7Iy6j~mrkChA z%j*0(XR?H29J}&OBbxc7;nTI-O%L3zK+UgqOxqtHZ7MXYD@1! z=yEgCqX%Zs!9gvMx{wl{nsDll#Ib2K#*hNSBE8yx8YeW9@Q>WYVKOnEMHD~#zw8+) zIh`J%E|D0dPxOOi03g9o+}(O(?Rn#|H6 zOje^)IAcn7GKW_od!!eWQfXW$z^Jq>!Hzql>B2psdvZ1+cPsE7Z5QB8CVV;;!JF@! z`VfS%OAD6U1C3W;Hap&Sel221m}qneBkANE8e$A1^s-B-f;H~($xNjj?4C+G#H{dS z3J{sELtL~}y?bBDink}JK_IJQR-sgVzNS@b42vMS-{m5ue*c5k%5 zPHJ0y{b3Qn^cWdYda)hdO>aR0^4Tdf#-O$HL+iKhl#P{!)N_$pt{019_fDI>}*FM5xf3&m)B5J`DU!RBmAc2qoA6mU;cDI4F&Q{PGa%-ZFp zn4x@@E!)Ga4}rqAG>M21UB%%PC>Fx{K)Fb=>4K$iO2{)-dY#IuclzPk&KVyq77w?} zor>Qz;MLFFj;byEx$UUyoqST8LUECd~^j|F5W8VGO_+U0Y`lkkSP^32F!>k6X|wGzY=RrDV7 z2As>k&Y~Kw;8V)k*+%D)-`(`YC9XvoV-->7-mVaq*wd$C8(K_or;*MWbiv-s6D0=W zqoP)W4@vIqj3YuBQr?C-D%6#tOS-6}9DkTgeq!C4Q#b$RRVEXg&>dd2wdA}=~l^u<}o%n<60UOY|^#Cp*hF4mz?VLEKpQvyj#u^qNnH?=gS^HvIF z4G(^J7lF0s?8lkiWu8Ye-@Q9}$)G`6ZsIONl=j2*qRpo(A)H(+Fwp0tf+h*4WtyJC zc?Pjg)YX@~3!hnn*fl`67OEZhUTq9u;lK0WIkUl^A6c3YYTlSWx&nQB^SmWpY$;j} zi;XfscO_~*)RLa_jkgGdgEt^b-Scf#6M`%~mkAl^P>D;?(qp`MkT6fl362g5-p`|g z0gmW6y0_vJUbg#fyhbfcLa)RXti8atZ}+c2P}hjZHWZ^*pb6!t#>u5FN=8-OXqFW= zt}C^wQ8BGdx!nF#CYC$Hl|cEu0-f`(TmwUbo9t#=%hO7V((e;) ze$J%Or_*#%>S{gDxR?qDgZ&_Bd~C&z<}LGg?}<$|LCln}TgXwB{YFJ51J0GJH`+IN zZ9kDdag~VM^u(mNkIlik&bzCWmDKw)%$i7AS2FT=%A)+>xXPezy^p0R%d4HSo;(J# zX#i0K_&v*?`Jhtt8b4n6=m-)X@o~G#k0oMVdXUA4<8CMF7v>JWC+Gd*Dk`mbCiS)Dc=>kx@SM~fpA5_y^P+8xL3K0razLIc;w0CdsTyq2v2Ma zKk-NQ6;VGg55FA|)uKwEV?E1sv0ghhGvyA{D*NaIDUe7CglQaoOP;LT=SyDsyxvaz zNU$44#CCRDxySR30aM_j5r12z(Y7`_k&ppl;zI2eNHH-Yh71F|x-qvkuC`|j`LcVv zFe^rNX^7M7yT+xw>*9&>(dS5EeSuCi6=IjWCqIr7XO*Q(z6>XFheTw)Y$aITx1K(; zJ3d{x;OiX93@ReB90q@TAN7*o5s8ltnZEV>RORhFku`A)oAb*`gXx5$>1V+$T}qIb zZ{JohY8kJM4m>b6S4vo5#`__T$GYJ0tU)~){HU2g)5;yl)tVzBc_;dXJGq?wBG$mI zK8()j0dtyc;JTVf(`N8^#@wgwSBra|V|B4?q2^W*xukV;>KCahI@D&!NLQeb#aSN4 zBs@g3E}Z4FoEcm~n4y=ZZy#rzIG&7o)?Pe=N>qCDMZZuOz{chO(8+4afN14;1v2rc zk;xN1Ds-IQGSG7T@bLd1`JUN^(`3xbf;_%=@ZQKmHiPh(l zXRG2mkxEUmAR_xV%Z0672gW_yWyXD!aDE}iO_f(XDsmt2Nd;B{kWWZ=6|LJ;If8$F zKlLGk%{X4xo67mzA3SLrjD~$tFtAJi ztxkgZL9clK;yKuiNDgsJ9jVbW z+QF*cgJ7KL`O|ki;@#0UB9Wr?ukU#+#Zx$NPABzg+p;ex`dY1vFs5vZ_mQ_CrpBTt zzP=^Ruc4e}yXHE*Zl$zDX0PdWfr4&Fc|cC~dgcu^-&zzG*F^dZFDF3NNykpcd z)>)eMK2T^e9zy(L5w>a>!xz1;MY}VO7Z#{ld4FETdo(G5jk?)xHOpw=RU>h5&mGI6 zTT(6G^)9!{>y0{kB_WdD4u;#(=eRpEI1B8cUBBe9en=8JKKi4n*U3I^Mn$fM$NckM zkJS<;pWr+RLAdv};o{b+#Yv(4BCO6?uU~c7ov~!atD8y0RK6oDLoaSUdAR`NXKYKA z<(-e-7Q_gZ(FV(*uTE7lXWJRa&&K_wpSd9@cw2u7`|*VH{YE2USebacZYZzF3J>PT z5%$c+aWj3-{;&c=k#*X|$IC{E@z#A;peF1q5ZINXe)099nIIK9V{85$dy3^SGezYuwqISww26;heRq>E z+>HpkeT}2=%tNh{7bnK3?j1u_QljW=AbBnNc93#Q${m~AZr(0VnPs1}DUW^LCX=?) zYYol5yo2wnO5!CWJY}txKCexY(#xe%a{S>P)r0zEIy!4_MGnF_^RWi^UGxGq<0@~X zgm3-Pk3P!Pk@BKjXxe@vWb7^Jyc>zzZfY|X_$HWWy{R8zrVbY)LCRoKgt~={l(pKx zO6jBR$1auv-g4#h+I5?LnX|B$Mt)XjGn9OB5z*pZHVm}nyv*Og0yUW+>i!e{oL8rg zD5U=LvaPbT`5*z}ji;T-=qcNh<5!t$da+?OKx4LCYV+@ZdsLDa+k++S=d z%gi#FyzftJi1q0XCdo=Fc}@tBnI9GLs=)|x@GN--qrj~NgnIerDOR3YDs&0$FT!Y6 z)6Ae>8sv+UP{s*^9ST4Eq(V16neY-l3+S0l&{11{d)ND}@#oE&Aq9S*;KtDP ztas)Q<JwG}9Gjj9jd#>el2D7}V z(6yn5HcD2FT*)uEYyauaN z4dnHEBR<*)Hubw%qCH><$yTgZde^nbdGrWmA4wRbWg1_OtR-?7kgYu(?*h90DxD(; zb9%E}?p`i(aLE;DEu~ma;Sn9en+fV!inY9z*KyyPhFC4XnNYZ+KC7&K;2BNR@g#1B zO!Nx01SXhh*`PuOey?b;gdNn=v;D9n_eKjLm$xmbI#Kou!&T&Xw$EqUi5doc`^j8D zDdG<4(+5eBg`{Xj(&Q1EH#RHES4cm_(khp&≈IvW>KQuIZc`Fr3v1;0LSI%DnB@{EY~b~ zXcWJkRr(ib&Q7FJp5K!zd0;v*X#-6qD8Qu1|!ki=`W+Uc1?E-gb2#7Rwm4KC6O? zgG&p*GQE9XPgFe+9%3>;_clvyfZJExG`QoaShQ(V@8i66(_2md-tN?gy!+c4NsB8) z3cF+HLSoxEg{e#4wv`DQT6((e4JjQ}N;%+wSlb7h_4Kt&7oJ&eVGE(S&P~OLlI>zd zms>gvgcHZC;4JW9Cs$tXw)#bTT_JmhrChfB!RqS>VVAh=2{Ux9XKDcoS~fFknF52Y z($cpsOg#hCn+o#R62(LYmmW|jlskEc^-kc7xJiNCA)Y1{_wEzly(5zSemhB(G|Tyt zLsG#Xi$0R;;Y?Pv-fO3XhSr5b|7E3elVWoEpXV8T5=y(@IFKOxm!m1>yhY^;NQuLF z4gsj;PEJlaPw(h90-q|ZaV&EF0PVO8QFioA;NW6ra#a66xtMWdZseefH#l(Q^nNWYVd=q3g-KD zH!N=D04q7nANAxSPu=u8E@rKs+n87NJF(`8VCb8@ zSsXWZTjwTN(eu`A_8hI?y$(&M{Yn{6lM{CEv7rV2=aA`2dCfWt=kCxNJ;9`ol#}8w zhH{w^Rp8}I_BrLmSKlIVK5qq=cHymOIwHZ2H3CAVqBvZ?_@I3EBXX<_`y&3c=*p1UR zpz@5%lYpt`m4};B5UoK@RhXrS%-`B%>T$g^KnDcxT5Tr$~;Tpb?V;fGod zPO`thg^K^UUMUP50qq=)4xjTb-={vjg#smVP?{+#s`AZOE#Ql+rH{ne&?u%qKQ943 zISY99P!$wuvqw_RlG5s^q1s1bg`#dRJ9(%>YB|&(-qJuU;@6yY1w5QtGY7>R7uN&hx;xeFl z?$1ubN*7|sKH(J=TSy>O8FbRPB1uif5@WQSvR!)}K7%vMubzXIwHSc%D&upvp&epDU zAA-;Gm*OYTh7|~j_96PCiGA&7V;Z)`gbC$F$cL#zYF5Hp6ofisx-T(Y$_+@2{Zq!! z?TW+dGT$1#p55YE_f_O89&k|%=?TbxHv!A~Ae!>Y6zL;OH4R$J! z^rAl$jFRhcd1FZEclS1h&*^9ZWnDjOxfD*)MSt_W z)qLTtZlcX#d$_CJ1#L?YYpa3@*}RP8LFU#aWf{A%sokV&iZbICM#AI8?@wFxOc^A5 zsz6cYPTTJuYdx}LtmGo#SP~B;TL&FXoDuY-EU1$<^T_qV6u-I)+`6!?ca~;vgH*Rh z+`+Q!d89mqr)PF{1xlvb>u`5547x-1>9y?-{v_2>^@w%D9aPJztQXmqVraNP$FE1n zPJj63;w}&NsUvJghK&%a`YBQcQo7t2jU|Rh^pNxWePP8{5B(YFLp@K!mX&(RQ6z0( z+~Ju-m*qUM4?nTI0KPdG6{T<-m_S~o^mHU#<}gdoT|QbxCRRn=G)j;T5;)>LJ1DkE z6n;o%Z-;-BZ?N!kbHMO3Lc^IdRnN$2vFM@giP4T0Zc78&{MMH{gldP}5Aw8PSuDj#9S2O*jxdf!$h=xR<){$YCC66@3v`gx2rDJTQ{d; zrFTJS8r>X=qRagl$Q^`{@K7zsGAkc04p{U1RiXd*?CfM;D^`tT3 zHqMeW@h+tk=@lqwMMw6$-{It>7&c%`0C`y|Ms�@A1AY#J{t{Y%E8a(J9Hjk&Okr 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 literal 0 HcmV?d00001 diff --git a/Docs/detailed_clouds05.jpg b/Docs/detailed_clouds05.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a06faed0107ae98d8c516153688d2958d532a77c GIT binary patch literal 94824 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%0Ab&!UrO&atYj+S4%H3>hXetiD%ZxW+Km}J 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≦r7;lE|Ezb1y)CL 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

    S4lbBt_M%~+L4=!S;DU2 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 RnkcEq1fC7cmQ$qJ|JeoR5>fyF literal 0 HcmV?d00001 diff --git a/Docs/high_pressure_border.jpg b/Docs/high_pressure_border.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9b77f63574c99fd13e6a36695a74bc7d024fae1 GIT binary patch literal 57042 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 JgeE3W|JnEZX1V|X literal 0 HcmV?d00001 diff --git a/Docs/low_pressure.jpg b/Docs/low_pressure.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5670c41232444fc450e41e3b8ddaaab0020016e9 GIT binary patch literal 32858 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Ν2YooAYJ4s`nAS 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 P$cLrwD2+j)e@p)Z%!siE literal 0 HcmV?d00001 diff --git a/Docs/menu2.jpg b/Docs/menu2.jpg index 226d0a4b9e4aaa047a8d5dc67c946202ecb2336f..97714ac0c01293e30a32b003dff8b01b224f613d 100644 GIT binary patch literal 26427 zcmb5VbyyqS6F(ZD^78T0>w3iAT16F?(P(KcPs8vidCTH z()azozk7dw-reWP&a-pQd}dD0&Ym+fd%t+U0U!Y@fs_DfXlMYHhZAuB2k= z%96>;*4>6l8KkCpzXFg4U}0clVq#!D{9s{WVdFf)#d$c02?+2WkrI=UkrI=VKBlC5 z@|c{4f|QhsnTm#v{76vvt21bUzLeL(%;$Y(t;o=f8kdu-#{Qo}gKLbc{ z(bUjHG0<25=%i>Eq-giO06G8w4ePH7|K~shU_R)GfsXsY)h7X{3;ZU*)2%C8%*G$i_2@1(Uv|U_-6RT@qC|bFP z!s|9I-9oz9<<0Yu-3lm+4?PcpX&(^LG5)`>|44oSeqhRz0?^UW(XlZJaL_Sv{!#1! zmK2j2i|o0qRwDLeh#3Xt6Bcb97kKW}Cb>Xxb=TIp`7{o@pd71^ylY5a&HXaq5yk@o zDF!LvB_LmXhm&#zLTXvpX3|)5G=HUuq9ASNxY1{JOZZY{F!1B~G0L0KWhqeA;s*_7 zjKXoDVBahEhI#b0ME0grWX7R-BRS$oR10rh1sq9*^MoHLk#$=%0CUKSlyYw^_#ZLv zFZPVRg011FQ$97CtV{?R7@iA5!esF=LvWd3HWhRTqopQbo0880wWDwNv5c(dfKyj* z;5{I6b~Sjy-GcFmfFn1-gyBHx0xM~9pd$aU*TB`X8hB$gzpC_MB2&gj7OF|~yWI-u zxcOTM{lsMrw?n4Jm+E@z@zziDp#zJBSJT6D^zTBxgz|DSHNnb?$ev~F#1{`?U^r~E zN~c+A@Z@4u$&q)oM#*$TbiCLeZ8%7PK2x*d6I35GKa=3`H2Xv1d+;5U&0^S2?t2`Q za_FdNr&{DlD8+~r)Hy;k@}HiU83)ZL6SDfFy99sw<`luQ>70O0>pvu5qRNx6Nt2R? zuB6`MDq-jGky1X<)p{`Hy&^-4)Re`)L_!|0tS^yy4O=qG`bz6KcP5`b5X#VE z4(w~8iwXU4&fGYf#6DXyEQD5U$HZoNBEs5`YCd>6!{UQIauAXVj@Y5)&yC(?p^F^t z^SQZVF;d(k%JE?0RpD?NuOSyX4~*X8!fR!~)4U6|x_YjP?7qNCo$M3J!@_H&caJoc zsrf~f$0mP4m^y_eL~f(Fc#Q11ph%y>B7MpMJNXj{ETWhSM_de(XySrX7Yt;&WjS1B z#<6?qGSJ{M#W;aUB=-QVrQal4htDM=tgmF%YnbKyl4{^=F=Le6gedMT{1;5^DHa8a5X-aw+dc`55ff0oe7IA zesWZ;;fY{TkX^E@^X05GVc}17l#T`#kt_1`!FE(0WNG9@Oa91Gtoy}TFe_6~ODUh_ zuE7coAcqhuTnH6TDT?H)z2%9ZTg+0b_vOqVjaaXJVCn;akP}1tTENZXDMREZszx9D ziG!$0a+#v1rwmssZDH0|3RAfMyNe!&H}9_^E%sdNtxAGJqY~r`Sf{~)ovRzVVG&Yfpqmw^|jlvS)P0ZQH;m5_V+T zr~^wbWM)D}JUfb3=`Iof`aLs!r{QIA(XWpnMUz&V2FD$nJL%sA>s;3~Gwg$xluh;y zJ?)Kv9M{xoBZX9Scmw3*Yfna1ATQ zK!^p|xTvUr)bp^DVz=KBk|yAmc+B3aev~q9qLD0xxqfHO8*}14ZrV({q;G4u?Ns-he{Yfn4}%%j|~bD{S`BmGauk zLfQ>=`B}R;cf1wFj{;Dm9_A@4Z@fBjWF z?P&LNC%A=A8NF&Yz4aaD`C;q~cUp2eQNiAFoy{B~OVc4P91H>CR9~RUK|I6u$Mziis+c{S|y@6(HOLW@Ver9%k%_{J#*AHho4{_@~&1RbwJ4 zjZ(rtbGd|tL}&^q9XW!j2U#UZyh?e7JP#-fSIphsjn#LXWF|L2AV--#eNC4EPPP8^ zgZ83#ZxPS*!w-HX{gnT{P;PUF{PTYdm=PV`w@YRYUrAYUrfY3D;aJaDz3Pj`zZ{89 z`Q6tBtT8miJdktG?YPG}Ni{@xn^~@?)-Ndia(eWU*#l2Nl zvG}%TkUxYo8pSHiRj*D+n zpU;g12UM#Cq~Fz>It`|J=(Z~OJU@#QJTlp5+8AY4A=t&bj!vFsZu>BYefVBSrE%d@ zo0Q0+miLh0EyTndq3pxg#DE8a4FA531aOuc6>|?4$@bp^L?32U+WJ1}AG`mi)T~1- zFR5tCQNw<&aH5}&Mt_W0T3K4K1r`YS)W}Y~ibnYjIEdkhOF(K+F~O!@Oq$Cu!Lph8 zs^QX3Lo%vZ1~ToO9~Q^T=2xKob=<~yzEd>e5}*0s%YPVct9#7;BJ9{3-KX{q3U-*X z>|DE}8mt*P{T{;k1xk7l^m_X7>XH|sZ&l1^daDha+)a}lmatW9#38o|NXsCU>(6}k zosb-~ajyC?`^%zxz_a}ST?YC##j0uI+#;3iL)hmpMa@OCe3l<>RF@gQ*k3>_6 z;{km>oED+&jEQ}t2XrKZ_2t-KR^ zrR4h0F!5gxzQ9g3csi0|RC-`P{jbUs7XNoA?m5@}>Yq3FfKkqf?LPsPm(d?m=Zyj3{V-A`rXA?wNMeo-IsOwwnhmIK1{YPFQj2f#Ny+v zcc`NSa@2DGHsWu38CR5$6n`Y{NEYtCUFm{T=>u`?|9Jo6LTOnDJ+T}RaojZg$4S@T z(zQR8`gGP*LvQw0K~raW7)0}Wg{4&Fbz9jwd-WY5v^{oewC)SeJz#?T9&j4iHt~vg zqxp60`(H{ok@|g=y(wxpF442O?_n10`G|uwcYZ@ODzUCv6%6`js?&-xlM0QT^7Pq8 z2sx503d{s#L&;k#<1)p6!_>uIBl;y3|HEYejB>7vyN+a-iI?w?e_&cHY)e3RXsUy# zM?&IN@?#R?v)Vj)ozg1RG4Y&Q=H?cQh79Ypa=OncDw=v3HhM6e@!kAG>ynwePfJ}Q zJxb{^5E?_c~R3cc+_>_33GE8I3B z_I<8>kK*{iGkuLpS{|8el$DyF!U#U)ESahG9nz34?vWId=g#lO@?cWf=~MUnQId*z zJ((YkXG-g>A8D>&MRwK?RY z77ssgu$5OQ6cD0-=VW~RytQ(pco6gHcG%1E*~&1;szTlOg#1ujyi1CmL;tz0eHE#J zb+DG&Zc4-1NbR3M)V8jKRnL|o=5ZyW-~sX=s_`{Y?ege)-u(Iq{KGJux<&QH=DFoQ z2YFMwnyMTtI%UP>ftIPP_)Mw49d$r|-o8UCt)Ga@a?(5bl*7jr6VDpo0tf05f-`nx zbFiVEZLli>#l%mM+7;*;Q@{4z*|YQbWJ~|_d9CN>w?A%z%)*De)L8+hEmu$1B=cWP zlrE?%ypL|jz3yL#zMRek^&>?tY+5aqx_*<$NRRs6WqSVwmji zqTS;_wb}cwQ?k-T>=7}R?@j`iz9}84l)>zOw|&Vfq+jw+a4)FKvvw&6N>b2FZ3vMp zf}4I^RX+6cC3BLN;{MAPv*=Pz{if@Y|2b2^naqhnihI0tK|!U-`=nC5(!^_bYU*F6 zjtdzdg9OI|(=;^d&p(8Tyu18+3dQZucKNVGi2=)>a}WPuqR78QL9}FNbl$fOp7;Qk zck!UhlItn5r$2TQL<2ldM3hstyw9l_Fr%_WSjRs}u~^4-?i2b=DTwH{c|S^^XL%j> za-Wd&;r7GDk8pbTPWMRyT4IJv&ophVf)RhqN^~j*1YU!8TcB)PM5*uY*kBxRSR_9< zKb=w!*zzDh0!igVbOaFvV=d6E9Xtc>0r?YmEveOi9Dbg?{QYVoqsbp$nyAH={sEb^eo_pMsUm70 zeQzUi53oz7SQZ?<2mEzfx1S%JmTA+*+xgGuLmE@MTy5rGx^)!^^V6$t<0mdG7(dUo zF4h&dI!=M3#Ad}W(eTY_E074(m^>#45NEsi!w%(jJ3sZe;jDLs(#NT+$K7qh4du&T z^*0jVl;(-a&*zejO#A2Q7??eORw&OFhnU!f*o zY~mCSFgYC>$1;x9Tfv5;4lj-?oIJ39_CGq7K_ZbY0OZ*>;X~{YKC^<|>Uc4~f$sItehl?QF`X+CNx$VNW)*_2m7hodB@Ob7^L;zXq4- zXpvv|F&YGZJ!5!2F?FX_TEN=twEmzdqQzWN>FcF&La{+Tsn*Vgbk*_coW20}hjbpBX zC=2vR@(VBG|AQ46J~os7jk|LU5;&fq{;t>QVSt8yCC5%tFsN@H6R-X5_3nER^@~hFr#WUY5|9480= zhdQPsx82!eco>JGZ_xn>36qPrc@t449d=1K?taLDsI@;2lt(;1llIW){~&J}8FQ<> zKnaikC+a`yn7&e%LEY@Z$X^Lmg^NFa6MkrMxl{l8kM?V#e>l8;mS`-^ODSck1Ap~= z56thU_I;T!S@q51cLjs*6tgSc2dQTDvDj1t{pSEx9~DEnq^eaCa*^NHNBbw6KCLT^ z4Qt-X&Cl6b<;(e&zu^9kvm|krr42!&jjotNZ@-D}`kg?C|D>bh*696~vkQgqQM_mU zU>1!>g?2^fv{hSiNtP zd_ezQJI_7f>GM0nXB4d7jBZfn8~c}^C&Qc$^8+#zv1s1{QZ)fxsO!d83`{c9RmNc`(L{dXi2+jo6+DcI-o!aq@v~?CSU2Rj;5E4E zbIWtAy9T6da-Q-t4%g%clyD}OsJ`YdaKg};pV;W^#mV>@>S8g|{gu+k-6GT)R^FB# z5{9(mL$U>x!Cf`6OVCTONcBp+utq=jfLf92-&HC{9Bo2%DR}Gji}|EVi#B)p@up>m zMQGx)_|IoO%U>{xylyr7Z0=UwA~ubbEO56m_3AbS>B%`elaUMLU`SIm^fnErJiUU? zdZRW{=)mMCH(F&oczIQgpTwN_I`JaKJs`=8aT|I|V{zi0sa;`vzA|ySRIK8tA*nd> z)^}Ghj2l%4l{1Wo!!;2wp;Qe`n2r)WPtHS_dryjaV5|6$rm9d+ORE8_#^2Ip)wtzb z{v;HoO-v02wte@?O6A8UVN-y$m4UCEvBO)Vf2L(yT~j;K*eF+OsSoM-&Bt8W$h)N&O1Qd$nJfn^wJ(yFa<;{Dk}h954n{ zPaMW{%t&fpB%3i`M5er+;{!^o-2-?$So6;(e#gM(=t#}d2d;i+k2RSfsY0>aR7udF((*}ozb(fHS3PS4+N~YvR|*Jxc%~4jA)~#>kj8i zfy(1U4GU{;!&AE^QDLs3WIlmba#@CXd5(LS9C~#kPqkl_tMun2^RR6*#cs@XSU-a1 z`0*%j{tUB?y;NG^FoyE6V(}&XaN_|9sLRM*Zv zrSew%vnas9`1Kq5_B*|_8Sk&U1PT3=xxaJ1|FTJ*JZMPiH+L@=_plq*x~y@m|89sv zox20gjB_!wUVqfdAEI}u z<4Y&SP8TM`bxrf4knK>WGB@K_j&^Ki7F^D;Z-OZEqz-V7BVb%CapHBdp8FmVj`2wL z!*{vivo&&ZDLF880hc80`7FlzS8ax5F|iB0sla}+6mwML^p=kgn)qxc$EWxP5WQ3J zXM8d}KpxjYx>fkDquJu43rk~b>25LuQ)YBD2%?=S9}R5nuqiZ_ z?4tU1@0P^G5mmrmuRertpoQj0!J(ds4{jO2|4b7+Cx_oh!ZpA(f{zvQ<70fezEQwj zku7gNFKI+bRbFm2ZxTEs4(~1>g;a4)uX^gf=99{wFIY#Yh!7?z)Gq`MS8bayWsn$; z6D7$g;0t+fala#yF~2hJhi2BTQH3t+EnjuO7#2n)zs!--Awq9^5Ao*9g({ds<~mM} zNoVVoA)0rtn^^vZB&oFc{mXU5V*N|w!a4Mx>sONPBc5uw>z#y(*1IBwLko#Tg8;mo zH%wl)SG$yc;+>RdFZ=3mg!+vVo_Bc`T2!WN$3GP{MdKuzFtU=Du*8B3;0{t_I%QZGxkH3Wl~r`NdsMDmw6 z&vn? zu)b*PG3QW{XZ8kq16B2O$^}eiIH;(nL*s&IJ+<-EwgNI^U$)%?$`UoNZ{l$DJeOzFnTV zaC>;&RIj}?+^x`IKXh^At!>6|scB#>OU5kcXscs4$!jx-$Xz*qF*i0~< ztr?A!i?>WM^iB}#NF07_@2IMGTPBRmVYq-gya`>1_&URI_$mF3d($HsH#`a92@VkL z?e?IO-%6=j14~hK2xw&B@v9c29R*)H$`&2uEBLV*$@WCh1~(*1`Zf)u(k)A`Q^+;6 zIsWvc`<-E{0UVy*Z;nI8e0 zOQvd~L`Uo(2uNb7?3z6@7^KNH$ci^3etq<$9u&u=^JI4{s8@iLx_20>kQ%s0VO15H zn-@Hy$vuoet?oV(lrKl{x;olp?F{dHW$tdzZpwOdcV)MD{@oKSW$m*Lb6%d5dQlXw zJafDEY@V`F*O#)3F<0Gcr>0d)@kX-8MQxXs9Ad1zC$G11qJaT%+JH$8fG1b@sR&@J}~ zBnQdEmBZH2sVG`!+fyHVOTzXNcsRX35`gRYZjdm{Mpg?9a0IHOLC0OPs)v{WFS`05 z{vd{Ik<)`)`{XU#tDl|kjG>vN)7Ot7egWAp`@Z?q`t>wfK;=Es{n#E!|LgV;pIwYQ zDHui7Zhg(XS|wa<3l^vga zKdg8fpEzCTBI>0s;mXk5r~l-gqsf=I+;GFDs~a%9OfYZLMJ>L;$I4n9Br3)f@~}SY zIabXuvv+xv8(Oi~4PV9s%J3DI2$4BUh_Kzg%`5JG@{6Ydc>zDPl?8!Q>aHWqhRKuB ziEz7Uqkj=e$CjGeO@}WjqJEUp;ge|=Q%gnV%Qu~m+9!>R?tFa3B9AWEu*^Bb4$}?g zhJaL#%dD`tj_GfxsvFk(3?sMnTPL*+XQaQh`@MbNJ9Bs`{iQ=+J9k+x4|MkR^@{~w ziEtxAt%hTX8+ob#i(A?Ct0`dQmX9=-v~&8+RsX4n>(-28$%|K^qKzQc_@@7cCc(lM zBkNnKl+Bj&S%&A1c%#eXDVD0?965LcjS->b*Jr#u zJVj0OWL5BFH#*G3B70HIZkPSm3;aFcVzmj`>8T7H9=E(jm!(kh!+6bup1v%1pb4qC)tblVo@;EshJg zs&N#y8Mm(FIUym_QC>%Q~xZ_FDKV0CcbaAqfB%ly?N zZzc5sZ4~Yv9h--RCU|{#{2^7?su8c+DCgD^DMR3mnLXb_E44SiIJOBLh_Pj zK*?Vu!g7dknYNvk=73hUjZThVy?j+CTE_yu*B!e+Autscuo4*}F6iWZ=aZ$;fO6~# zZfG2D?4wtRM7XOu*#QPyQWXZpW);{x)^n)_}}}WTGc}A+B5!PhwTRqRJZ;?W1(@j?g#DoOM3Lo?>SXDJtqn8>#A#H z5tu(vN1~v{?=VAyQU2YvUm?S_K_IHE8SzDVG}DqlF>0R#f1b&!L(|tp%KM7BK~A(T z4BFOKRv<$I&|DJ_Fa8j>ij`NxQdoz(cf%L?$+Af&Y-K4s?f4c}tU}B~!Ytq9SPDB@ zPL3ib@*^hQuhF>*!95~BG*4q+9=qg_}~6%9jC@O$dUN6-`3 zCSQq0T;jId@l|k^9mo;nB&fHJr@~aIrKgmKiw0iIWM|SYn(O!In6ozzn1n8-;J7ur zymtAb9l#~9ZYs#jEv^GY>?)V2d(a=bg`cF{YS0;NKYtgv(dkIsX!tk;`UWS;K9H}E)+*p(17|AwMVip4 zL8WBot3HDHGCR?I3Jxq$v00sGi93{J8ood70qRB~$NaM=*D#|_zK3lYkF9O?Q>e6~ z#gTqp)d2kTrEv8%7sKS$PyMC&pCarHuNAVQ4dl6P*c&l?KN<`XDAh%fU8oyNsh6k- z*`(5z=P#bkUbmQx8#SEKnQv^rs-+SRO_@cy&Fu)n-IZw?8||FRj8)qhnN4OLNlM$VS4+#L36+m{!e@i z&7Zi_Na?g<(|QZ70V%LLzH`|Tw>lZy4*`O57n~=>LzRQzioxj!vLMp$Y#xp%rW;NU zS5G;=U(xl2iv8*7@Wrg(znUFZk+Ib-u3B^Jj%)V-7PV(vK3p@G_KcABNX?0BwZgqU zX%v_}*aU;M%lNzT(vijIm{+)_Ds^|O1GAO3jWQRC4^0A5pzw&0cI;!?ilL+2&vBG1 z?*k`nel};9nugV^tk*6}zq3A?g*mlj`s*s28iS5DKgUzHS|^sj6sf(opR8ZLi?jLJ zo?QxIZn>f@X}Q=EV(y~82auMy36D7VNhnC4G%nhvP~&rr76X_$F?xakj3gCGV<#UN zB;aoi_+tg8@mF0&%%>4-kKhl*IT)QL-t`OHpBo2bFJq-g_g5YJXCX*VFib9(HiYOW zMXjHRONL)+H5N+imGeHyMTWMl;y9EvtO>mz8!1ZiA^W$HC0)RA{?~^%=JwCp{f8-X zO(tzqEqQ!qycWNT1jVVgRR;`ed9{?ki_Wf^*f&Q;PX#hAD{b= zL9+FQkTrY8Ql2w~VB#=Vxn~mCh#y!Y6h}FUv!%)XI_}Cz(nco@q0EF$7YGCjO%{Oe zj4n49{AJc<*?!~&d(AY|PWv=hatx>%iZ-eOK7V=5hMA2^CG=SfJtzSGn^zdmNQ8SP zjjSzCDil`7(*Oe~$&SOwU^vz~-rT*k$^Gb*kuP=?RiowRQ%oV~h%h@@Q3*t5*H`+7 zG7L@}HDf1UBa;RZX$VtWxl_ODFd?szlUBy#IrSf3iLqRK7P1YD&dTR7QD~}KZ0t#RAL20))}%C;}9jRqzGTE9GEFPGU0Y8?S5P^K#axC*2|+iR;}G zEt-@M@m+9X4Vg-18Jt*_)|g+v&HF~A(%S|!l25OQPuIcmRaQxq1Iw7t#Lrzc(vyxV z>8InU>8zmI9{Fm05~g}SE7q*ldEcBuEfI8;Yp$MVo7B^+pp4(~+EY&|UL^3Mijytr zax$k~6PwP7u{;I54UNa#c#ig3B34JruUC~axh2kWbE%~A!T#u_8ULZ=k8fuWZDosa z%$aKU4eP0%!bW~A3?6$!1H&$Os&~)peBe)?3y;ozg!;-4dQ>&m#d1J`hpU9CPYR0S zKHEAywtW{4k0js@hot~w^K$YE?g3260N3YDV{(^2w!8YI?KDav-^WYRY40I_6}5*R=*oXytdOYC1y>SK5? zF~9GXNcqh7)Islmx>a>7`ZxaVc0Ad!DB0+6Rp)z@I4!zx;hp~%?vT#@r=-@yfRspT z_xP^8^zn}fJNm^j*hX;rVI*ZjRk@;_;5+e8*QG<7>p3cw?bkzF2@hteB3%l1zA1l9 zIx706N_g!4d-sC1`#ONUneNB11Nm|;uNx~n(IC75VWL8y0eUC$4jaeZ4p~ywLGa}#LjA(3)P~j88*_L0fyAG6;{rx zlRv5M|5@;5{^P|f4dLitS&=zKZ#LCH;FWoMd&zz-CzLIy)HrGr#T+nWWCxxs{ea>E z4YE3r*g>26oVdAsC3OViwZn)|IRJvsgDVa<*5AEKn<%D*9ug~be;&pCvyCqLwy-g{ z{?A&f7P2@hAsDmdSOOdPm##+N;$BYQx@MPCDe;- zbMPG>0CGqLQZKt!({1_%VP9j(I1VVvC8O8vdSUW!0-yaMfnN-;&?6&z0h0;RR}}p~ zrm%n*)%zKvsxGc1b0i$bYyBP_qH(fZ;V{uibtiB-ZLEziIoLK>41H}=lNf=ZnJNEJ zwa2z2S^rR<#FAyq_lnEiax|$#j>)(?JK5K1;|RW^$X@qE69&tag=!ULs_OM<&SJZB zMt7_`J=5>Xh&`mc`Uv$nKww)5fHNSvRU=QqiA zYujRw%it+`UdSTosW>DPLw3@wu*BU%rfk*mqI{y20ZOtm+OgwBON0W0CuKC5$Xt@D zPeesIa0tU}7mg9uqKO0aEqwvICKbog=P42B1c@JCDTal}0W@X6QD|87#gi@!r)!Ij zuY5-GiAdfPF7B0!-{@c)>Lybjwdg{5 z9Hpt(_{wtxrQA`|4vkvZbL+4>4QTKAD7}~Z)F{*TFco2m-7>}=RP>odYSX>gmOk38 zyybh&3ublNC}wAqjFe0IRL$vy#F}|Z$n%vZxlXTst~Ix`u=5=R?FWMTiY3yf=a`7n zR9?w=*ALXQ%kdwn4OQ@Gy~O*AqZTB50#uufPp2I@BDYjxsDOOMt={|_js)R28&PFZPFNi;)HP4Sh?|DU z7YR?wNHk8bYYIO-Xg1s*Zmc?;N?{ckj!ySN#Ybvliy7E*<9Y$XWXdK?u|J`bG)%`?xE5G}jXBLR`8J<=w zxFvO!i4naBBXZsirJy?UXrz^|D83>`C&)*r7fie6l)sF9;eI35AVxXI51j0&8Q!i- zx62V+7PA2nR@DPl)a%MJp{^*P%$qQ7O1@Ceel-n?`tsGrKm2_ApX+JhMbj=T+52~Q z>L;MclR^u@Lds(Safw`Bo=~x2qD^Hg3^}+5eT~exIgKbAV^-7*EL)jH<}H)L-%2sU2Q8 zGprFm?Em9v(wnRL1N0^Wp%a3p-Xw8@KPFGpectW(`i8~AQjeF#`=I>9S`zog4 zpXT^vX6wD+FW`RNh29a1+L1p@yZFAlw=DJ=6yd+-T|l77kc{4w2P$X5nxX@IC(? zaB=iHVQ(VKmiYR`P1?&xgcYwj|7OwCisES(*KlrPI&X@7Pid^)$9G~Y{kh7{E72WU zqVKDHqgsvx+IRz*ZpcW=Af?@T@zXUZvEQ>G<3Il`Gx2@IY+bQ(dpUtz4K=bjOd&v& z?kP_Lemf)&OO^#aj!O_d4~V7|Bp1iUq=~CVUNngxNgnjDG!ra}Mnh9d_RT^6WOT?Q zQfTx+&V%QnfLA~rz)1ZN3fB)eNx2+~1sFwZj&(Eo?_bWP2P^1j%>*zMq6+cU_2x9Z zXuT?MAU~4*c%Fs{3uoEt)SE;~GWzLMz{B*(w}Hvf?-%ipXVp z!v?qkU^wV&`P%m>kCXgauKlE|KglEE<-y2bEd5OHBwzVSLz|BOCh=)e%(f}_J>Z1- zcfB=vNe9zrJL~Q>!`~(ddgvAF`)?pT%~ z_{IF~(JRf=53&#jh#Vq}{HVL@GY9>j8~eD|WbrFf>r6e_#LpN$Z5OK+O_y_EIzq0B^_F7GZrT0m88173aV0ZaCT20Husv!M zd0AAV8||ky%3Wh^(}~^Wwqw&Nm(^Q8mP|5YRp&~!&-36JgG;Fg4C1d}M4j75NGru$ zaSgp`s=&&vE3O-izKYOh5uebVJ$(0_beUWPyUK!Vz7T7cZRg9tiR1YMPi6AWVwc>r zq|3ELa^A<1&jWZX%Z)jD6S0jF+3TPIZCE)lmj=J}f{Gc(lk*vq87m@{fVt2yUvD)lU1d^3xW& zEBZ6-LM{lREqJa#)BEjUG0a>{T&G^Ov)SJ9pbyX1A=iP(S;}$H#enuh5#6EVw^PYy%Rb*B7Q&cfo5=9j8sJSSpTh>6X##B$Ys4fIwDY0Df%|c{@pHWKWWd%X< z$lKw!hyhhw$imF*psctbuJn&1;OQ}Ds3wK164E=IK<_r2MLfmOC7ex|QWgR^R&i&8 z0oa+n$FW^99&JDwHjP*_R7x#HDwxw2ZX6+W9xAg(CPp71GU_A{8deUyvM@7-o1pwD z^a^2V+L~2!7BhH*`CwX6T<6nGhUagX36mv}{J%6+KQ-GhAvx4hWE5IbqahVf&OUGl z`~)3K8o6NcTwfg+DOWrWNp=g@PDW9UZ-5AtDhZuqab7pFlI63Hl-c`-R#*^8<{awj z7%9E-ATm7S*BY+Q${qDzAuKX{B28Xg@>=#WEHzz)1~V&GwoA&2oBN!JP|VZ=4eJfQ zP+(loyq;)Z(PVGoa&WK9>DPj{VNd1swzH$LyO{Hm;N`xxp?=G;F}4kS)4fZ_$s=~7 zZ^{1~GeifDRyScXVLUdyogKMLmuD;itO25P$oO8 zQjHtJQ%9dn)^4TOOTrBw`YDEYo&*Kcfg~eBT;k3-v3Ud=v*dXTA@ezi*lo5G;DX!w z-HwK;{V}9A@JZP3%}yi`Wk0M-uS``}mNfR-@pb`&OG~Sjo)0rrun}Yik{Pa(4uc6` zJL5?qwSC<%zS`ac)&?$(3L7FdpV+6mG?i!o3zuRsU17-L-lmGTe}1qD`evFy+b>+& zrVuOe%o@L%)$Av|QAMRfZBhC9;XmXSKh8h{^?5_rkVY#$#~(<4i9#|$$J5+(S z3cuW3hqJOSIXbN{#aoVN3#>eKDl0@Ruxn&kQ0wK4OK2m%CR?kFTX5^hlq$|dyy>a> zhz|<|zf!q?qcp4(w+EK}FLP?qP3&wA`vhDT|A@sOIP`9zy)pR3^EFx z=D3a+-s8HJMA~XHV?IK_;V|8rka*uUy>oBhb>1CS`;4@hM(S>f8K|wF%E2#!V-=ZI z`yq`#8P?@8x{6#i8nsa7o>q{6>HB;!>ZU`py;Y^ck1keRE@JqT+9Al>Q#Ld4nvVpP z1WO+ih0@^r$pUvbG<&&JT+!=7U^a$sTnB)Nn5puWI~I?ANsX9UthepYL;2B8h8M2n zCWs+Eta7{oWrl;`v!F1zTo4Y1K~MT=!E$RMX$qvn-RAU|_9MwqLB3?CIJ+j&VinN#QoAS@h)Dc>)UeU3#21Sk9||X&F{;BANbTlzUF? zi|sr;ujKTyi&QaGh4qG}CpFR${4kajkGw9NH(Q(PaQ`;wu*Pndv$nq%vOVTnYp5t5mTVRkb=Iz!5VV zF0D5i?4^~43o+$t;WyR=QMlfUO;d@bi6fIJt|6}*E{>s$sEU@R${-c3u7g$%8*gf9 zTyxk9(j9j3`kZnEuNptV-Vu!1P@Xg|i&K*ME1yAe`n~Jz$BEnYTAIhD>g7if>HaNImAqM#;VoL1K=2Qz`Cf=Wz%<-8F>tE^(etv7|+DzPYXfLfg$R#iK zjoHzwwXMZ|*>1b8zQ(DHyGL{R(CF%n zN83_O1@1*eH{Z1x{JrM!RGm$4rCO&%Ww5bO}zpj>WA@c}kcCglGfMwD~q10%z zkM!%0`X%-Dc1phEzU8+sb-!4J*Xn6?zMQ;C?tUwXsJV)uJT?OWVKDJSJ-4Di8X;Nd zV|{7#%*1LRi9e!LJR(m!QJ`^LxncK*?{z2wA*!H}s3=zzAM03Cz!0)Dl zYhQdyCxQ9al~kS%DDhOJPpDJ?3e{@|%g!0yj7ac=uQ|6Jo_$SA#AaRIa z&m)@V@pp;2cdo2r6cu^C3WkNt~NlC^|`eI%T1~5Y~?Rfa2*`o%$ ze)Uj5rZV7hEDZ1!-%0@=U5@?BCM6)WXHb<{y$F36KiH!~J57rw2qMfXy2vm|$hi;` z>N>!?LtZsxM%Xk=8M0*P28QQAs>>Bk-Z(oySPRr7W;fmkJITN6EGDCK9C)0|WK~zp z2|$|zLr{RkAZ%=5D(BOiqvHzkW<#TR6%Xr_%sFN>qO6I26^yN~=J^jETvDF+BTLw9!hjd1=VRatHXQuv#=c#|qH#SY16xxC$o=pNw!P zKb{UP6qSe{o|>wzyh-2EcAE?I_!L)3mja%MH}zc0a&X%+7VrGwqjbxkb@%1n`DShV z(vxm2A2QzRg5290el16P?MQ7~t3I6Rwl}bXVOR#Yl?M?dv)#Q3n)T!w#Hh+3irySNVc#z>{z*DHD=A9F)l*}z z&&G)X3k}La5rP-Za75{(s->m_&%-8LL=+CB4~KT$#9BP;_uhjR#@qJa`OOt`ip;ns zJs*jUQP34n>%&bVd@I~w#G7lzixI{~4}%zqC&Qk>WMTq)kGzM*Y2ts;c^f~XTr&WI zlSe1XWri>$zTX2JC6tMK5h<2NXZ+2i^93Z0+t{l_$`%>OLjuidIT(7qHQQ;`h*ABf zx(i~QsiD}R_@QhxRu85VV$7|sw9V?+NHMcQFz73y5R6avR;<&tepK6jFGu(+uf90I z5|9-32o15ZGfC|2JK$(sWY?nNUo9}jXD9#ah||dIDq%p~WoTYxb(8JQ!-Fm&?QljhFU+HmSZpCXFlAE5g8n*$8YHEpk z$m_W}oN&TQ{Yx+$Q5eJr`%9iC(v%NykTto%7Oz zc+Ajl#X|wB_z^k^rFhbWrn!n8aOO3){M@){n2wXq$n(Ryd6t2cZ8eky7Bd&ChAkUL z728e_UY97t*{UMnF4m8V-p~aQJj#{cv4+lPgA#uh^uIc(@3~@nhU&xpU+t$jLN} zuM_zH@eE{0B^5qw7%_LFXn;2|LYR{e_v zgioZVKG$T*kjOn-uE{Nmt4g-EZlo4Ie8#4#lhRsngz=6&WtQZ-3D=$zjI5$~@I)$~ zHrmX-MFK4%jdUAiJI6dmoKp;RL6aruS5hI+*EIyqwW!Zk=ds#pw;7u@_^ue$w6-VD ztezy-)YPX)8nva^mO5>ErFvaDO;2{<8sDysmHN4nd~SV-&S}n-?U)z#$St*qaw@E_ zd|nh^bj7=9KHV~lp-wy%nde@7LFM(zd=H5tB+mtKmz5P^#&U2uhd{{iw!V_7!0rlB zD;pr~>9w>)4}7560xma1yA&S>EM9>XU$o+uC49USsYw+cIhB&~+UKD@*A8OhAbf0% zj{%0m1OS>}IrVjB+4zhFTkSZWKrZAQhth_v`nCCy)ST93aR%VpQfe+NHac|Q8r6;D ziT2gypw-@Id=p*KRMCYiHo5Y2yGK}cX12#3@#yiwU$FH_B(IdsMX>4K>eJ?-crS^0 zE9@Ai@l!OeqBuA>Dsq>Q9Qkd^EbYt)(W$bJbCm#vS1(kdz zcpG|RruD-65pb9~s<2+(A@f_v9x=&q6yEbBO4?Ed>%83WwCueC8>YyI@SY18zrQTQ zvJhC{S$rI{{bge`<@GznEwSC?mIu2G8JzqX5_zI*{edZp-Em%J0k`rw)|K>Ss;HL5 z|5L_yMm4!~ZHEq#E~qpC0U@D?N(bpB1f+z35V}$f5PB8x1f)rC0hB5ddI0Gi1!F8B3C4W+aQVkhIJQF9Z=n4gzfUs!v%aeV?;YLyS=652z=7%{_m*JvecL z3Qg@QT#;_XjaKL7J`z8T-F_WG$_m+bd%fzEVr(u-K)sB!{%~__@!rZ7_k104rKPKzf9sFv(cm+J+|4#FURq{{ILf?qh`~|Gg-a{;ylllZB3* zWApPREUU46M{Q`;V4`wi1@PIv_;%?5|0c%A6*d@DusZ3CC88j%P6#+KXub`($}P#E zcd0r~sBbnBz?`g}2&OtYV4SbuLbF~I4p%uZ8SI9msl3Zxy!-UbMci<77QrTE=<#_S z!OHAm4OW!u{-$lLZa~e2VwDqH{cg+Ez(}Z=gJm6a2N)uSN?|ej99Vfmt;cEePNt6y z!?H;f)ZG^`pk&xELl3IMoP^jt=ut5(b)x`I znwDCW1SB!Cx@75jVEd+lG{ALm$3h#?8X@v+M_1;po6ABsW2E@ERElr!DvWMmZ}!6Kheo znihJ+qyRxMf*HRcCy^syjX?#x1iVscEi6i2d7y}`C}iT*_Pw5ZRn2Fp!~1H9bB~oi zR7#GE*Z~BqtQZ0n86#ID4}2G9-?HblC-xL5^9{~e)FtbL8awezFe~~*BPn>z$R)UN zisV3f`1yi*lVr-%o{*)@_tO;Q&?G7TEpDD0JREF;O#{UqT9=V+KVk-~h2$iY!-W}g z^$VCf=K0I!m#wT=t>}dz2~l)f#dE><3NCN8K}M0qwK;m8iJWfbZ21HVntUYpQp&7$ zBloV{?IS0XZ8N#;5e93?7e`aI| z8LAH%NhS$Tx=)|@p~%*HwmALdeyM+qtk}3g6OVdMI$rioN{BHmF?qD*r!>9p#Fcop zux0gpGde4GG-$<}EyYDThG42ZRkUp|t@@z|G_+9Jmb-#I#ivNg&d_=3j#lg>W|V`j z+=EtrS~zxIw}1z6d%FF*or8GN5Yp#t2ZvW4!Qx}H-PfgY0CaYie(fCt_Gt;lH40aq z0$R3*!-ovau?+C)kQ(~9NvQEw!Z-m1_k#lYXZgcZN%X9UnPg^4n~6wlGZEH~j!gEOE z>RRmtSoC%Zto81J)(FEs>-dkJoRtM!x|!Zb+`dI`=IJ2(2OvmYcppm!oBYgYut8y< z81IZ>1mHfmmJy@q^zwpNk47zPgjiwP4vw=3FwM3+F~o z7%&)KFr&5>R@cJX{~d+{rmQ?$iA+C3;y&&`AOg8?s#N zGvwh>#-N2`{r9CQm$J%aLap2j`WHKGF{c`7t&`{Z{PqMO{w)qh$2hdGvuD;l5^%Yp zx5wLoB-4~W=+jXVhO*@7Tde$KH=qpZN84GDR=BfktfAVcu2+QIZy&~QMb>eqd;_ma z4T{k?#K94Y~-*wu0F_MieFhN}I(G%Tsdk-qZLyecNWOxy)Dlx`&1 zkp|A@1ICn(eIfhH5KobN{-xkA8n5G+!!c;#w@=3{^PSXwF}K%&70z3?PH~nKhekt8 zD@EDKgOhV$sPH35>#IEQ)zo{O@o!4!y{?1T=u!)V<_9$3{gKEtbH?tU+IBx2zyDCp z&fOj93BM0s#eQv)CV6P!+7>0-zitblq5#g^0WkbBVmTSx+kgs1AZZ?*p{l1=MQ{*Z z4J7fKIVOfhxf=%}AuO-usAp!Zhl8sZIVEy%+*Y*mUx>XnAD);-U&hTLQ8JU^tSBT1 z2FFWmcgde@j5Tk}3I>^eIUp&_xw>u#1O0o9yRlGp$mo)WqN!H(w|IGk zt6tm!lRDG>oB0piwatG33v7MsEh9}t=8u0r$g%H`+vwcsdsT1Z5GgptxmX%PfU6;X_Ha(E@TYrI+`)x9lA9`XH4x+^?1-XNX3 zx`|V;Kmw>v(WOJY`I)e`O{lRv1YsOb0qas!=LC^JrM=L^3A2C!pFAT&r5}P-3|I?6 zZu}(*Iq8>QX%+SY`ECegfbE`63QXua(!;*0E%3F-Nc@bF3XYlrn>q109CTHM6!$fQf7FvCj)r__!^o*9nmyDDE+9y&Yv7Pq*- zCPp!~8hoFra+afxV@1%u9&pgJLVC$65MRAAVwgU$IZ#~!V8=4tEoAgw(^nurJl?%f zd4Q++6Y*UHfi%b6>F7^)sR|pEfoqHV?8x`7uN}{-+;_^)izY9{oT>)JK+iUptSXk8 zZvIROvQV#mRQoBzr);Wh$_GsFs^3FA@Kq4er_;RFhnhRj?%!)o0GbFTwe^af$-CF= zMg<3La#($&<_9sWPXV>WBeVI1Xn_0uF0P|}@#X4Hj-!(^XNfp{eI)kz*vu7bPDl%z z`0mi$1hV4SURe{LBRxMDZ5+z`9Q&czic?;-v+1z@_H^BP^#<)GO@yg2xkz9 zg+qqY;+i|3)Ov+Kvl*=&$cX;L-GzL}1IiutY;z)H$U|tQ$HS=^nl2_7%lP^Ot|oo; zSb}=!MtgK7^!RQ#3##y}u`+Q`eRg9@U6QsXs_Iywc83>u9v|)ZXo4310P2Fo5QCVx!@+9_#Zpi9FwWq$Bqb7*VU0;3pg6Kgey=cz4(|EZ(`PIblR}( zcKhz`ua^cV+0lCYHg$q|J4f1B)vMBPOq0_snDEZ()RLn_V)y4y(sC*p}yfkh9E|X$|3_;m2IJT zhe$wf*2{2Ot#POC#;k}R4bOgaF}p#Khe6dwu-@o0U5?RV}v@mBFvl_Zuz9cv_7w}8FaaFEOe|24LG<$ z1%a90AEJj3Y727W6Bl^!*_)sj>f?NTJRG_zbn-|8U%{plu6kv-l^3X}XCRa6vnKX2 z8$Z!ZIwBx)HojOY<5OEuMz&pEyFkO;xwdWD!AXw>-!PY|94tiV9XGAQHpgipFf8kV z_!*yL$HjD2YYdfGm{3RTlseEAk-%;U>$v#FupqchNZKSR)#sa_CF!@QY*-wdmP)d1}4_$&J%VlD95u+3(z-~_Y6%~0(s_09Pu_A2!9Bq?8dsx*| zO$|#_?P%`W1I0x<4--sm8sj=oZ$E@R+ASkogrxhSr8MbPzucuFvKIk#nAE* zlYrqbiTMVx@?Z`aVHBW%0HS++0#pGY@gfue8VilO)&S>|D8m?Dl0blePf(NpP0+so zcY?mYv5((fG^0xb8;xcEv8$e|C4~k@PJrH z_y7tcY4K?sE)7Qa!eC>h%p*LVJ82gy~xu>GE@u5sBpD23p{cb^AGh`#bI`A{~%}*== zvt44oU-_cuuuW2wHg{s^XFG&STCf-}m>i{U$=NO$#I{c_QpCk0K^UqGtj`NYp=Q!8 z1qIJe8opO*^BdhTF^K!F==m88GfW6fbBat1e2?vqTQ=7JrfIWW!Bm3()Nki%OobuN z&q)JWEP=QxnoLQecNPztouf`Lj~!m5ww+*Ke98;`1K`LudaGM1r zdTO>hc5_&_|A?2odrqVVbMU<3G`sV>ReVx+muji~&e7Q%(g3b}R#bk^PrvxWHpk%X zvh*^tM`7Xe9HVQ|c$O-g$+E*gDdBlmg(XK%CVoT{uYXOL{~eDDdwZa_rD-b8SJ?TY zOYSoGdFIojM7`He^?v}hHE8FnU*EhcX9W&#&c=6+<>JO4Xo)4W1P%6Q0pafs!Z=Q7 zeK2l|wl=9=w81^Gxp)PHf(JsrwYoE~&Ux6``_*Kz=hv5btq&vJMhRx~czL0w{LH-4 zK#GQX#o-*IZJ#{H`*G;S6_&0odGCJSwPg7bp;gRzPkT>(!wADT-OT?<} z@6oe2-EW4tuCR|1=++BfHYZ}WNYXjw6BBEzySPz%vAz^{+U*ER!z*^V@0eI#tzB7# z?;Y9aoXzk=!tL#*>Wtm?Y^BxL>+c|>_M5s26)}kI0YgmN$uLCiVReqlGJ_SmeAvK* zLSl|MhbWMm;tScU3#PSj9Ju0CcJASLK>o|!qn)W5TdQB7`k8YLE_raGHbUzxb7#9z+hh36~%&&ZR z8C`gLPwJe~O(#ANZJ^$z18v$(L-O(_Q?;;(w?l8K8lkq}?WBn{8qhZC708y|mqC~- z)~S@36-kK0>q)1%TEp5-Z-2;keQz^4h=||95~b4Opx@w(vBm((c|uib;e%TmBEG4& zu&pM+ke04$veCo9RBNy`r#vs9Ry3YsbJrDvLW4xmIeh(bFs!l;BaQWS5URtklCTrg z>&TReUpke*-8am?II^AJ74K&p2Cmtk3AVLxbzBhE564TzIM+TDtt-|_9L^o24ej5I zujJ;HCy-wTWR%FTcIQ=Qs;w~^H&sXC3Sc!?@pqWf%Jv~tdNEm z(cL~btu)|?(AE2Pv7u?uz@a_`viGr{@-48Y)*dy?mT^KbpI26m8OBiSJI=>CI7F-r zh15vgxCc8$$-O9oNy<7M>w9p}1C`jwb&q7=t+Ys1y4vwL(}fwwvK1y>A-xw}f}{~R z*_={&0P!;G1_21*=^(@K9VkL{G{g3^S=j~W)D30wIb{X&1ij=#ahw2j64HC=@q1#N zCP+6+@YfUPD)F|_6DyMiku9XR;0=Ee%ztL^5yjMVnwFpO6i!&R1$0G_wGb_2V zL(hD6s)K^Cp!hO+G7BPU;K_rrIYE;q(Chm1X08v6TL$SWx;{UeE@#f}#wVpmN$_oM zt9%hRru|)8^9uUJV?f;ZA5&xZ_-D^EcBpwtSc|z|mCF(KVv8(H|LWe^ugK*=8S`r45ba!D}?}YqY{Y zfVPW1UR}S}%Cd24<#J62SJ4hPQYqVOd0Z!b_`s+;Bo+Y~HJy5m;$G!dZKI@mM0{QW1$U`G?stg9#xmB6 zC3(QN?A&o;19Cj}!LQ5*Z{h0|h|QfcjPMHiEBA&5-)od-TR3yxswOagTp7ZhpTuv-bSSvHU_WX=4UUVkG%uiQsX>hxHtd*Y8m0fP)% z!B#Y++P-e4O#}l{_52J)-;kvrO>W;*W5*hRlX7v zj7w@m`j;XQ2(6ITM2MoR78%+q;X=KX5Cb^WA6x_5>sd|P$br&aGhB{AFTZrPzU}%l z=Xk~GUU#Zd??3QvsL?j9#K|VpKkWoHHBlwP@RH2MFiep&^#=mva8=%BMBiPEC&CJ}iv>wmrPibFA zlY97R!X+qGtIzctuL1s9z`ZG$|0LPi5??g;dt@C^G2vRn{s+)XJR?Y z+a1(V;-2(T5G9^tXMiOLKr2XYGj8O^+?V18B@^)@Vncyi7!U^|z?XtRy=%|zE;GGP zec4Q1$c(4eGs$Rd4ks4FSDD@-dj$ zAR5tJ-EW~aUT%+)ZF3L%Rka>DHNdKvVIV(Zbws}YBhFn#`-JgvON;2 zPJkT7r%0INKg7)udli~F0T0-k@2&JLToyxqEE)H;xsYo?h`?M#u4Fq|EMDT5iewph zjrEaW=E1(q>7^dLn!iQW=ivb7Q-McS1?0{-8?bl+9kQ}mhP3DtwGebvD9<|wvZW$p zC@fGvP!s^^y_{caG5wrhLVqU5^1CJ14iQ8hN9pc4=V=AmaFZe`+2AE3jScJGuAlPf z(9_~lEz&PqT=VBNVOhBBbGfXT_6>EDar^inZm;t47xHw<^JGU+U4g3PxOZl)osNX8 ze97s0xVkq&jyyuGTC>Lxi_d^id7!SDxplDg_XtSpyK3bqYGSwI z1_Kx4>Q%EKOnYgRzvqTxUOHyu+E~@S*$-s{J`m@BgkmUIMehiSLtHg&SjIj+kj&#{ z%Dxk|V(gRyM7`1~VS@YtM6t^czw&-{JngvSb$4O9k9ECg*>?wDRKe_jGSk$cbJHa3 zH@x~nKAY>)inLcIqlqWWz%*5JPn5t1ehLIs9U9Moahe5jyqP0r2H7uW3HUQ*f{cHi zeH=g>Vp{sb(HiEA?)V>p#J#GOJ9oWx*Q3rAX)^L_InP*@yh@uDa@);>SE@6(tYlB$l zt_9S_!ScRT_IIj4seuf6E>^`1X;JRf!RZTH&|O`*?Q-h!C|@L z1)rmfb<##(pfbsqC{Po1_I$5Ar+gp)rwrW@W~<6w=-)-nEqb7Ls0h65}P6ZS%42_te?SHy4FCUTxH zUu;b}iuLie{oFY2f1_#|RkhC$Tt_Jgsj2)W&NUgI1mDdaUVZl}B1R&qryUiCB@wa! z47!kPhclh*c}Fo*LUb2@_=gxp_A4sFHfx?7s&~&-SO~`^hIiE=eqm|)^2W^Cdq-CI z%94g~AWhb$ZWq?f?J+&E3`VBddP^a+7&YE}lqkj(Bbf-4wg@ z)$WNN3J~IlPE$yL$LCM0q^>2TG3xumi=~y*D0b>TJx{)x zFqxxn!C^O+#XQy~wke38A9l-?(``9tj2wDQW z)QdO7`OOnQoF83m6*^v1cKxQARd(l4wr?b(6#X^t(CITBI9gXLV@M-vlS@+$%gsoN z*?6S^v#J{8FW&Ac{Z{KQaGyclg}>P#KOTP4G-|$R+*2$yg)52+{-B`#L}`wJ7)uKR zig0f@Yn8C!qgVvKNY?Iqs(!0!MV?mRB|(vP?E$f9ZOSf(O6!Y8NIw=y5f#K>siI)g z_NiDqfiZ%a?!JZqrkjVelMq^#evmmR=dY6MU-6Aj22Te^e{IlXF~$!5GRpw6P(fFO zhak0!clOO!iEGUrp$zGOAP4Gn(-(8$OXBt$kDpniQ~FC$UX+p)e2!L}y}V!mlVEJh zIU+ooL2AY=ZP^5sp&PoEuvPke#r`l-PBzn&;G@^wc1OR%9(qJ&)4g@c?M=OdG$nru zp<~s`0!!S>DT;V$n#ak;^Jm3B>hSmSCyf>bd2~iY6%ghVnn5?qp=nTBxaVM%O^HkKe&J<(`hO{Q;RJ!^f za`VyU7jveOTGk;ejWMV>RdswBjfIcY&e$h+BN|gb`E(XL0HCQV21ZP4FXZqQO8PiS52^Cb`Q%Yn) zLSEhc(fa(RqZ^SXDQqgt0SVgTRC!QUM;^DA#_7{bq8B_mumZWB^}e_5)i4$picj2$ z)kuCZzx@L+AJTsc44E%|^HA>kzwn+geY<5}vTy8KLSWW|ufk8ea>EM?3d@;zY|r@H z=D1Za2qOl#WXozkKH5Zg7@)P}P?kFfEwuNf>Ase_MSo**AmIZ9ar1By$a~UU4xAi( zy({9kl!?e)o}ThecRIM!jFc@j?X5YBG#AO#e{MGG{iY)(&20;I^7Fr*$+yLhcsWAi$>r+PMrn4|!em~acgj{haFS72QtOpGE^u-4Ax!m>np>pv`{u77dg-&s z&iw4ZP_iPW5^JN__8)C^)qeoA5vzKeAE&3h!c=~Ojt$uGV17t5mp+`v)EMpAWFx+R z$+yMtu1+;7K6r<(6tDiTQ8wpfqO@f9Guq!ycD6ROV`Po>Vz{=h&P#0O?}x%0QXLP- zo2_LF+x(kcXrhX)yXE_8@d3-<{a9RG!#^`&(I@eu0N-T!EaTeqNt4U%|KIbh=V|#k zDz|@<>^V%BY`fG0?d$sw&dKRlGqL}UXJMQ+!@2fIVprg#;3=W@PP@;pbxrqy44#3Y zOMDAf^S>Fuw~%Q04+B$mNprkk@#EIrHT}o)8k^NT{hIdEudgLqr2gh=?jO%*-UBaG zM+TP4dyDN>vUuh47}0oaxxZWJo}B;NqAzO$c>Z&0jqYsm*A||`nqIDhk@GRxDj^}K za!#e#vO2muKJpeIR4}Wzc!_^cwT~2gigsa{lT(`7Qqj*6e><}|iI~o3YbMvUHhF<3 zme*ff;^)V|p5{(z>i>Es{OcK^U(wzFtJNRwi?Kg+kQ2_-w|G70ozQ9WAIyI&6O%b< zjKhB%?yewyrP6%o9WlIJGs}H2Ci8cP@z&bk)@||Ge;kw%sMk+JS8r|>lTGc>d;iSv z=)|cK-{tpHfk*@#% literal 25166 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%0D(!BWTd5ZgOzkFsZp)NaX>){-du#t$p6sP#+0u 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 a{Nye9&oBLCnf%jl{nwBE*?+4A0028g3qjfd literal 0 HcmV?d00001 diff --git a/Docs/thermal_lift_time.gif b/Docs/thermal_lift_time.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1b273f54b07b7a0173e49ed2f67374016be293e GIT binary patch literal 6042 zcmV;L7iH*2Nk%v~Vb20d0g(Uz00000{{a600RR90EC2ui0M7zR0RRI2oR6u??GK}z zwAzca-n{z{hT=$;=82~2%C_zc$MQ_q_KoKZ!0Y}`>H&EGpz*j7-iXMiQzB$Or__V= zcdcrX*;;oC)?Jn1GVYrro7XdRyU32q#%j4eRTt;){L%gm*C!YhIN&yjm~puDm*_~b z7!&zO>CiPO6+*%JEsc-cs*IVyRITB*A7+RBHz-pFk|kF=db6_64`VPePDE?(4$ICrdi6=L#U)t z6;PE5wdzZ!XR>NlM9%A13s*mg9SiBK3bkli$}3wHZcVmrEzxCmx9$Q}a*y`q@b_n6 zo_Y0dx;I#6Vz68dYgjx1^2u0|MHWtY*>Gl}o9kxmjJ7h)#*Rmm_5pfqFVPWM6Fyx! za%vH-5w4ycwRT$Au_xjVp_?DF;PZ$>`90M54&;J+DhK!6H}Brdr=z3Z6f1VK%q?!m zYF*Fwx#0~&m)6~4`R(bmkAJ-0Pkb(4hk@7IY$GTfE2s zjWDigMU2qt2pEqD*ytjO>-hLu6+kv{WEuOUcngjaO_AgSQ9k43bxur)q>yZ|#UwUW z8c~~;8DROOhbM}O0hu##NhC2{T6JcIAfQR*mtEQE0i7D?S*LpMxrJvufpQ?{2!#eU zs11-E8Umw;;+5!5Z>ng7qm5cxrk6ip`T?Jrmh`7xk)kFbr*oQ0>Zo4ahiaa!rs`0r z)uEEutF8vHQYrP>+JUFxBswXKtqjKNtxmKF{-3H46x%Da7{LO7viL=NAhkC*+bpi# zSnCS6Ghj<7xb}=1t+f1k8w|QKh#Ri9f~KM_i|)4ID@wk|T422J+Q4qM@1{#bzwK_T zY`OU6Xs(qp)T@HPoF(j&yz?$R@lyrs`<=nNXiV|76-Nv*@v7!>94gAyid-@b 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 Uh7~)OY+18s(WX_qmS6z@J1yW;WdHyG literal 0 HcmV?d00001 diff --git a/Nasal/compat_layer.nas b/Nasal/compat_layer.nas index a91a0ccd7..dd90543f9 100644 --- a/Nasal/compat_layer.nas +++ b/Nasal/compat_layer.nas @@ -7,21 +7,19 @@ # function purpose # # setVisibility to set the visibility to a given value +# setLift to set lift to given value # setRain to set rain to a given value # setSnow to set snow to a given value # setTurbulence to set turbulence to a given value # setTemperature to set temperature to a given value # setPressure to set pressure to a given value # setDewpoint to set the dewpoint to a given value +# setLight to set light saturation to given value # setWind to set wind # setWindSmoothly to set the wind gradually across a second -# smooth_wind_loop helper function for setWindSmoothly +# smooth_wind_loop (helper function for setWindSmoothly) # create_cloud to place a single cloud into the scenery # create_cloud_array to place clouds from storage arrays into the scenery -# move_cloud to move the cloud position -# remove_clouds to remove clouds by tile index -# waiting_loop to ensure tile removal calls do not overlap -# remove_tile_loop to remove a fixed number of clouds per frame # get_elevation to get the terrain elevation at given coordinates # get_elevation_vector to get terrain elevation at given coordinate vector @@ -68,72 +66,35 @@ # The compatibility layer is currently work in progress and will be extended as new Nasal # APIs are being added to FlightGear. -########################################### -# header checking availability of functions -########################################### - - -var has_symbol = func(s) contains(globals,s); -var is_function = func(s) typeof(globals[s])=='func'; -var has_function = func(f) has_symbol(f) and is_function(f); - -# try to call a function with given parameters -# save exceptions to err vector -# returns 0 for no exceptions (exceptions vector is empty) -# returns >=1 for exception occurred (i.e. unsupported API call) - - -var try_call = func(f, params) { -var err=[]; -call(globals[f], params, nil,nil,err); # see http://plausible.org/nasal/lib.html -return size(err); -}; - - -var query = func(api,params) { - if ( has_function(api) ) { - return try_call(api, params ); - } - return 1; # fail -} - -var patches = { geodinfo: "http://flightgear.org/forums/viewtopic.php?f=5&t=7358&st=0&sk=t&sd=a&start=90#p82805", }; - -# query fgfs binary for required APIs and set values in this hash -var features = {}; - - -#fixme: compare results from new and old API -var check_geodinfo_vec = func { - var err=[]; - - if ( query('geodinfo',[ [37.618,-122.374],1000])==0 ) { - printf("geodinfo found"); # now try to use it - var ksfo=[37.618, -122.374]; - var alt=10000; - # see if it returns a vector or not - call( func { print (alt); (typeof(geodinfo(ksfo,alt))=='vector')?return:die(); }, [], caller()[0],nil,err); - print('-','geodinfo:', (size(err) >=1) ? "Vector support unavailable" : "Vector support available"); - if(size(err) and contains(patches,'geodinfo')) print('---> A patch is available at ', patches['geodinfo']); - - return size(err)?0:1; - } - return 0; -} _setlistener("/sim/signals/nasal-dir-initialized", func { - print ("Compatibility layer: Checking available Nasal APIs:"); - print ("(this may cause harmless error messages when hard-coded support is lacking)"); - print ("##########################################"); - features.geodinfo_supports_vectors= check_geodinfo_vec (); - print("features.geodinfo_supports_vectors=", features.geodinfo_supports_vectors); - print ("##########################################"); - print("Compatibility checks done."); + +var result = "yes"; + +print("Compatibility layer: testing for hard coded support"); + +if (props.globals.getNode("/rendering/scene/saturation", 0) == nil) + {result = "no"; features.can_set_light = 0;} +else + {result = "yes"; features.can_set_light = 1;} +print("* can set light saturation: "~result); + + +if (props.globals.getNode("/environment/terrain", 0) == nil) + {result = "no"; features.terrain_presampling = 0;} +else + {result = "yes"; features.terrain_presampling = 1;} +print("* hard coded terrain presampling: "~result); + +if (props.globals.getNode("/environment/config/enabled", 0) == nil) + {result = "no"; features.can_disable_environment = 0;} +else + {result = "yes"; features.can_disable_environment = 1;} +print("* can disable global weather: "~result); + +print("Compatibility layer: tests done."); }); -# this is now where we can simply refer to features.geodinfo_supports_vectors -# for checking if vector support is available or not - to use the most appropriate -# APIs @@ -143,20 +104,38 @@ _setlistener("/sim/signals/nasal-dir-initialized", func { var setVisibility = func (vis) { -# this is a rather dirty workaround till a better solution becomes available -# essentially we update all entries in config and reinit environment +if (features.can_disable_environment == 1) + { + setprop("/environment/visibility-m",vis); + } +else + { + # this is a workaround for systems which lack hard-coded support + # essentially we update all entries in config and reinit environment -var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); -foreach (var e; entries_aloft) { - e.getNode("visibility-m",1).setValue(vis); - } + var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); + foreach (var e; entries_aloft) { + e.getNode("visibility-m",1).setValue(vis); + } -var entries_boundary = props.globals.getNode("environment/config/boundary", 1).getChildren("entry"); -foreach (var e; entries_boundary) { - e.getNode("visibility-m",1).setValue(vis); - } -fgcommand("reinit", props.Node.new({subsystem:"environment"})); + var entries_boundary = props.globals.getNode("environment/config/boundary", 1).getChildren("entry"); + foreach (var e; entries_boundary) { + e.getNode("visibility-m",1).setValue(vis); + } + fgcommand("reinit", props.Node.new({subsystem:"environment"})); + } +} +#################################### +# set thermal lift to given value +#################################### + +var setLift = func (lift) { + +if (features.can_disable_environment == 1) + { + setprop("/environment/wind-from-down-fps",lift); + } } #################################### @@ -193,24 +172,36 @@ setprop("environment/metar/snow-norm",snow); var setTurbulence = func (turbulence) { -# this is a rather dirty workaround till a better solution becomes available -# essentially we update all entries in config and reinit environment +if (features.can_disable_environment == 1) + { + setprop("/environment/turbulence/magnitude-norm",turbulence); + setprop("/environment/turbulence/rate-hz",3.0); + } -var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); -foreach (var e; entries_aloft) { - e.getNode("turbulence/magnitude-norm",1).setValue(turbulence); - } +else + { + # this is a workaround for systems which lack hard-coded support + # essentially we update all entries in config and reinit environment -# turbulence is slightly reduced in boundary layers + var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); + foreach (var e; entries_aloft) { + e.getNode("turbulence/magnitude-norm",1).setValue(turbulence); + e.getNode("turbulence/rate-hz",1).setValue(3.0); + e.getNode("turbulence/factor",1).setValue(1.0); + } -var entries_boundary = props.globals.getNode("environment/config/boundary", 1).getChildren("entry"); -var i = 1; -foreach (var e; entries_boundary) { - e.getNode("turbulence/magnitude-norm",1).setValue(turbulence * 0.25*i); - i = i + 1; - } -fgcommand("reinit", props.Node.new({subsystem:"environment"})); + # turbulence is slightly reduced in boundary layers + var entries_boundary = props.globals.getNode("environment/config/boundary", 1).getChildren("entry"); + var i = 1; + foreach (var e; entries_boundary) { + e.getNode("turbulence/magnitude-norm",1).setValue(turbulence * 0.25*i); + e.getNode("turbulence/rate-hz",1).setValue(5.0); + e.getNode("turbulence/factor",1).setValue(1.0); + i = i + 1; + } + fgcommand("reinit", props.Node.new({subsystem:"environment"})); + } } @@ -220,11 +211,18 @@ fgcommand("reinit", props.Node.new({subsystem:"environment"})); var setTemperature = func (T) { -# this is a rather dirty workaround till a better solution becomes available -# essentially we update the entry in config and reinit environment - -setprop(ec~"boundary/entry[0]/temperature-degc",T); -fgcommand("reinit", props.Node.new({subsystem:"environment"})); +if (features.can_disable_environment == 1) + { + setprop("/environment/temperature-sea-level-degc",T); + } +else + { + # this is a workaround for systems which lack hard-coded support + # essentially we update the entry in config and reinit environment + + setprop(ec~"boundary/entry[0]/temperature-degc",T); + fgcommand("reinit", props.Node.new({subsystem:"environment"})); + } } #################################### @@ -233,12 +231,19 @@ fgcommand("reinit", props.Node.new({subsystem:"environment"})); var setPressure = func (p) { -# this is a rather dirty workaround till a better solution becomes available -# essentially we update the entry in config and reinit environment +if (features.can_disable_environment == 1) + { + setprop("/environment/pressure-sea-level-inhg",p); + } +else + { + # this is a workaround for systems which lack hard-coded support + # essentially we update the entry in config and reinit environment -setprop(ec~"boundary/entry[0]/pressure-sea-level-inhg",p); -setprop(ec~"aloft/entry[0]/pressure-sea-level-inhg",p); -fgcommand("reinit", props.Node.new({subsystem:"environment"})); + setprop(ec~"boundary/entry[0]/pressure-sea-level-inhg",p); + setprop(ec~"aloft/entry[0]/pressure-sea-level-inhg",p); + fgcommand("reinit", props.Node.new({subsystem:"environment"})); + } } #################################### @@ -247,11 +252,30 @@ fgcommand("reinit", props.Node.new({subsystem:"environment"})); var setDewpoint = func (D) { -# this is a rather dirty workaround till a better solution becomes available -# essentially we update the entry in config and reinit environment +if (features.can_disable_environment == 1) + { + setprop("/environment/dewpoint-sea-level-degc",D); + } +else + { + # this is a workaround for systems which lack hard-coded support + # essentially we update the entry in config and reinit environment -setprop(ec~"boundary/entry[0]/dewpoint-degc",D); -fgcommand("reinit", props.Node.new({subsystem:"environment"})); + setprop(ec~"boundary/entry[0]/dewpoint-degc",D); + fgcommand("reinit", props.Node.new({subsystem:"environment"})); + } +} + +#################################### +# set light saturation to given value +#################################### + +var setLight = func (s) { + +if (features.can_set_light == 1) + { + setprop("/rendering/scene/saturation",s); + } } ########################################################### @@ -261,23 +285,30 @@ fgcommand("reinit", props.Node.new({subsystem:"environment"})); var setWind = func (dir, speed) { -# this is a rather dirty workaround till a better solution becomes available -# essentially we update all entries in config and reinit environment +if (features.can_disable_environment == 1) + { + setprop("/environment/wind-from-heading-deg",dir); + setprop("/environment/wind-speed-kt",speed); + } +else + { + # this is a workaround for systems which lack hard-coded support + # essentially we update all entries in config and reinit environment + + var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); + foreach (var e; entries_aloft) { + e.getNode("wind-from-heading-deg",1).setValue(dir); + e.getNode("wind-speed-kt",1).setValue(speed); + } -var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); -foreach (var e; entries_aloft) { - e.getNode("wind-from-heading-deg",1).setValue(dir); - e.getNode("wind-speed-kt",1).setValue(speed); - } - -var entries_boundary = props.globals.getNode("environment/config/boundary", 1).getChildren("entry"); -foreach (var e; entries_boundary) { - e.getNode("wind-from-heading-deg",1).setValue(dir); - e.getNode("wind-speed-kt",1).setValue(speed); - } - -fgcommand("reinit", props.Node.new({subsystem:"environment"})); + var entries_boundary = props.globals.getNode("environment/config/boundary", 1).getChildren("entry"); + foreach (var e; entries_boundary) { + e.getNode("wind-from-heading-deg",1).setValue(dir); + e.getNode("wind-speed-kt",1).setValue(speed); + } + fgcommand("reinit", props.Node.new({subsystem:"environment"})); + } } ########################################################### @@ -288,21 +319,29 @@ fgcommand("reinit", props.Node.new({subsystem:"environment"})); var setWindSmoothly = func (dir, speed) { -var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); +if (features.can_disable_environment == 1) + { + setWind(dir, speed); + } +else + { -var dir_old = entries_aloft[0].getNode("wind-from-heading-deg",1).getValue(); -var speed_old = entries_aloft[0].getNode("wind-speed-kt",1).getValue(); + var entries_aloft = props.globals.getNode("environment/config/aloft", 1).getChildren("entry"); -var dir = dir * math.pi/180.0; -var dir_old = dir_old * math.pi/180.0; + var dir_old = entries_aloft[0].getNode("wind-from-heading-deg",1).getValue(); + var speed_old = entries_aloft[0].getNode("wind-speed-kt",1).getValue(); -var vx = speed * math.sin(dir); -var vx_old = speed_old * math.sin(dir_old); + var dir = dir * math.pi/180.0; + var dir_old = dir_old * math.pi/180.0; -var vy = speed * math.cos(dir); -var vy_old = speed_old * math.cos(dir_old); + var vx = speed * math.sin(dir); + var vx_old = speed_old * math.sin(dir_old); -smooth_wind_loop(vx,vy,vx_old, vy_old, 4, 4); + var vy = speed * math.cos(dir); + var vy_old = speed_old * math.cos(dir_old); + + smooth_wind_loop(vx,vy,vx_old, vy_old, 4, 4); + } } @@ -335,10 +374,35 @@ var create_cloud = func(path, lat, long, alt, heading) { var tile_counter = getprop(lw~"tiles/tile-counter"); var buffer_flag = getprop(lw~"config/buffer-flag"); -var dynamics_flag = getprop(lw~"config/dynamics-flag"); var d_max = weather_tile_management.cloud_view_distance + 1000.0; +# check if we deal with a convective cloud + +var convective_flag = 0; + +if (find("cumulus",path) != -1) + { + if ((find("alto",path) != -1) or (find("cirro", path) != -1) or (find("strato", path) != -1)) + {convective_flag = 0;} + else if ((find("small",path) != -1) or (find("whisp",path) != -1)) + {convective_flag = 1;} + else if (find("bottom",path) != -1) + {convective_flag = 4;} + else + {convective_flag = 2;} + + } +else if (find("congestus",path) != -1) + { + if (find("bottom",path) != -1) + {convective_flag = 5;} + else + {convective_flag = 3;} + } + +#print("path: ", path, " flag: ", convective_flag); + # first check if the cloud should be stored in the buffer # we keep it if it is in visual range or at high altitude (where visual range is different) @@ -352,8 +416,17 @@ if (buffer_flag == 1) if ((d > d_max) and (alt < 20000.0)) # we buffer the cloud { - var b = weather_tile_management.cloudBuffer.new(lat, long, alt, path, heading, tile_counter); - if (dynamics_flag ==1) {b.timestamp = weather_dynamics.time_lw;} + var b = weather_tile_management.cloudBuffer.new(lat, long, alt, path, heading, tile_counter, convective_flag); + if (local_weather.dynamics_flag ==1) + { + b.timestamp = weather_dynamics.time_lw; + if (convective_flag !=0) # Cumulus clouds get some extra info + { + b.evolution_timestamp = cloud_evolution_timestamp; + b.flt = cloud_flt; + b.rel_alt = alt - cloud_mean_altitude; + } + } append(weather_tile_management.cloudBufferArray,b); return; } @@ -364,10 +437,12 @@ if (buffer_flag == 1) if (getprop(lw~"tmp/buffer-status") == "placing") { - tile_counter = getprop(lw~"tmp/buffer-tile-index"); + #tile_counter = getprop(lw~"tmp/buffer-tile-index"); + tile_counter = buffered_tile_index; } + # if the cloud is not buffered, get property tree nodes and write it # into the scenery @@ -382,6 +457,7 @@ var cloud_number = n.getNode("placement-index").getValue(); cl = c.getChild("cloud", i, 1); n.getNode("placement-index").setValue(i); + var placement_index = i; var model_number = n.getNode("model-placement-index").getValue(); var m = props.globals.getNode("models", 1); @@ -397,8 +473,6 @@ var latN = cl.getNode("position/latitude-deg", 1); latN.setValue(lat); var lonN = cl.getNode("position/longitude-deg", 1); lonN.setValue(long); var altN = cl.getNode("position/altitude-ft", 1); altN.setValue(alt); var hdgN = cl.getNode("orientation/true-heading-deg", 1); hdgN.setValue(heading); -#var pitchN = cl.getNode("orientation/pitch-deg", 1); pitchN.setValue(0.0); -#var rollN = cl.getNode("orientation/roll-deg", 1);rollN.setValue(0.0); cl.getNode("tile-index",1).setValue(tile_counter); @@ -407,35 +481,57 @@ model.getNode("latitude-deg-prop", 1).setValue(latN.getPath()); model.getNode("longitude-deg-prop", 1).setValue(lonN.getPath()); model.getNode("elevation-ft-prop", 1).setValue(altN.getPath()); model.getNode("heading-deg-prop", 1).setValue(hdgN.getPath()); -#model.getNode("pitch-deg-prop", 1).setValue(pitchN.getPath()); -#model.getNode("roll-deg-prop", 1).setValue(rollN.getPath()); model.getNode("tile-index",1).setValue(tile_counter); model.getNode("load", 1).remove(); -n.getNode("cloud-number").setValue(n.getNode("cloud-number").getValue()+1); # sort the model node into a vector for easy deletion - # append(weather_tile_management.modelArrays[tile_counter-1],model); # sort the cloud into the cloud hash array -if ((buffer_flag == 1) and (getprop(lw~"tmp/tile-management") != "single tile")) +if (buffer_flag == 1) { - var cs = weather_tile_management.cloudScenery.new(tile_counter, cl, model); + var cs = weather_tile_management.cloudScenery.new(tile_counter, convective_flag, cl, model); append(weather_tile_management.cloudSceneryArray,cs); } -# if weather dynamics is on, also create a timestamp property and sort the cloud node into quadtree +# if weather dynamics is on, also create a timestamp property and sort the cloud hash into quadtree -#if (getprop(lw~"config/dynamics-flag") == 1) -if (dynamics_flag == 1) +if (local_weather.dynamics_flag == 1) { - cl.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); - var blat = getprop(lw~"tiles/tmp/latitude-deg"); - var blon = getprop(lw~"tiles/tmp/longitude-deg"); - var alpha = getprop(lw~"tmp/tile-orientation-deg"); - weather_dynamics.sort_into_quadtree(blat, blon, alpha, lat, long, weather_dynamics.cloudQuadtrees[tile_counter-1], cl); + cs.timestamp = weather_dynamics.time_lw; + cs.write_index = placement_index; + + if (convective_flag !=0) # Cumulus clouds get some extra info + { + cs.evolution_timestamp = cloud_evolution_timestamp; + cs.flt = cloud_flt; + cs.rel_alt = alt - cloud_mean_altitude; + cs.target_alt = alt; + } + + if (getprop(lw~"tmp/buffer-status") == "placing") + { + var blat = buffered_tile_latitude; + var blon = buffered_tile_longitude; + var alpha = buffered_tile_alpha; + #var blat1 = getprop(lw~"tiles/tmp/latitude-deg"); + #var blon1 = getprop(lw~"tiles/tmp/longitude-deg"); + #var alpha1 = getprop(lw~"tmp/tile-orientation-deg"); + + #print("Lat: ", blat1, " ", blat); + #print("Lon: ", blon1, " ", blon); + #print("Alp: ", alpha1, " ", alpha); + + } + else + { + var blat = getprop(lw~"tiles/tmp/latitude-deg"); + var blon = getprop(lw~"tiles/tmp/longitude-deg"); + var alpha = getprop(lw~"tmp/tile-orientation-deg"); + } + weather_dynamics.sort_into_quadtree(blat, blon, alpha, lat, long, weather_dynamics.cloudQuadtrees[tile_counter-1], cs); } } @@ -451,12 +547,13 @@ if (getprop(lw~"tmp/thread-status") != "placing") {return;} if (getprop(lw~"tmp/convective-status") != "idle") {return;} if ((i < 0) or (i==0)) { - print("Cloud placement from array finished!"); + if (local_weather.debug_output_flag == 1) + {print("Cloud placement from array finished!"); } setprop(lw~"tmp/thread-status", "idle"); # now set flag that tile has been completely processed var dir_index = props.globals.getNode(lw~"tiles/tmp/dir-index").getValue(); - # print("dir_index: ",dir_index); + props.globals.getNode(lw~"tiles").getChild("tile",dir_index).getNode("generated-flag").setValue(2); return; @@ -470,6 +567,12 @@ if (s < k_max) {k_max = s;} for (var k = 0; k < k_max; k = k+1) { + if (getprop(lw~"config/dynamics-flag") ==1) + { + cloud_mean_altitude = local_weather.clouds_mean_alt[s-k-1]; + cloud_flt = local_weather.clouds_flt[s-k-1]; + cloud_evolution_timestamp = local_weather.clouds_evolution_timestamp[s-k-1]; + } create_cloud(clouds_path[s-k-1], clouds_lat[s-k-1], clouds_lon[s-k-1], clouds_alt[s-k-1], clouds_orientation[s-k-1]); } @@ -479,144 +582,19 @@ setsize(clouds_lon,s-k_max); setsize(clouds_alt,s-k_max); setsize(clouds_orientation,s-k_max); +if (getprop(lw~"config/dynamics-flag") ==1) + { + setsize(local_weather.clouds_mean_alt,s-k_max); + setsize(local_weather.clouds_flt,s-k_max); + setsize(local_weather.clouds_evolution_timestamp,s-k_max); + } + settimer( func {create_cloud_array(i - k, clouds_path, clouds_lat, clouds_lon, clouds_alt, clouds_orientation ) }, 0 ); }; -#################################################### -# move a cloud -#################################################### - -var move_cloud = func (c, tile_index) { - -# get the old spacetime position of the cloud - -var lat_old = c.getNode("position/latitude-deg").getValue(); -var lon_old = c.getNode("position/longitude-deg").getValue(); -var alt = c.getNode("position/altitude-ft").getValue(); -var timestamp = c.getNode("timestamp-sec").getValue(); - -# get windfield and time since last update - -var windfield = weather_dynamics.get_windfield(tile_index); -var dt = weather_dynamics.time_lw - timestamp; - -#print(dt * windfield[1]); - -# update the spacetime position of the cloud - -c.getNode("position/latitude-deg",1).setValue(lat_old + windfield[1] * dt * local_weather.m_to_lat); -c.getNode("position/longitude-deg",1).setValue(lon_old + windfield[0] * dt * local_weather.m_to_lon); -c.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); - -} -#################################################### -# remove clouds by tile index -#################################################### - -var remove_clouds = func (index) { - -var n = size(props.globals.getNode("local-weather/clouds").getChild("tile",index,1).getChildren("cloud")); -props.globals.getNode("local-weather/clouds", 1).removeChild("tile",index); -setprop(lw~"clouds/cloud-number",getprop(lw~"clouds/cloud-number")-n); - -if (getprop(lw~"tmp/thread-flag") == 1) - {settimer( func {waiting_loop(index); },0);} -else - { - var modelNode = props.globals.getNode("models", 1).getChildren("model"); - foreach (var m; modelNode) - { - if (m.getNode("tile-index",1).getValue() == index) {m.remove();} - } - } - - -} - - - -# this is to avoid two tile removal loops starting at the same time - -var waiting_loop = func (index) { - -var status = getprop(lw~"tmp/thread-status"); - -if (status == "idle") {remove_tile_loop(index);} - -else { - print("Removal of ",index, " waiting for idle thread..."); - settimer( func {waiting_loop(index); },1.0); - } -} - - -var remove_tile_loop = func (index) { - -var n = 100; - -var flag_mod = 0; - - -var status = getprop(lw~"tmp/thread-status"); - -if ((status == "computing") or (status == "placing")) # the array is blocked - { - settimer( func {remove_tile_loop(index); },0); # try again next frame - return; - } -else if (status == "idle") # we initialize the loop - { - mvec = weather_tile_management.modelArrays[index-1]; - msize = size(mvec); - if (msize == 0) - { - print("Tile deletion loop finished!"); - setprop(lw~"tmp/thread-status", "idle"); - setprop(lw~"clouds/placement-index",0); - setprop(lw~"clouds/model-placement-index",0); - setsize(weather_tile_management.modelArrays[index-1],0); - return; - } - setprop(lw~"tmp/last-reading-pos-mod", msize); - setprop(lw~"tmp/thread-status", "removing"); - } - -var lastpos = getprop(lw~"tmp/last-reading-pos-mod"); - - -if (lastpos < (msize-1)) {var istart = lastpos;} else {var istart = (msize-1);} - -if (istart<0) {istart=0;} - -var i_min = istart - n; -if (i_min < -1) {i_min =-1;} - -for (var i = istart; i > i_min; i = i- 1) - { - m = mvec[i]; - m.remove(); - } - -if (i<0) {flag_mod = 1;} - - -if (flag_mod == 0) {setprop(lw~"tmp/last-reading-pos-mod",i); } - -if (flag_mod == 0) # we still have work to do - {settimer( func {remove_tile_loop(index); },0);} -else - { - print("Tile deletion loop finished!"); - setprop(lw~"tmp/thread-status", "idle"); - setprop(lw~"clouds/placement-index",0); - setprop(lw~"clouds/model-placement-index",0); - setsize(weather_tile_management.modelArrays[index-1],0); - } - -} @@ -629,7 +607,8 @@ var get_elevation = func (lat, lon) { var info = geodinfo(lat, lon); if (info != nil) {var elevation = info[0] * local_weather.m_to_ft;} - else {var elevation = -1.0;} + else {var elevation = -1.0; } + return elevation; } @@ -643,17 +622,12 @@ var get_elevation_array = func (lat, lon) { var elevation = []; var n = size(lat); -if (features.geodinfo_supports_vectors == 0) + +for(var i = 0; i < n; i=i+1) { - for(var i = 0; i < n; i=i+1) - { - append(elevation, get_elevation(lat[i], lon[i])); - } - } -else - { - elevation = geodinfo(lat,10000); + append(elevation, get_elevation(lat[i], lon[i])); } + return elevation; } @@ -673,3 +647,20 @@ var ec = "/environment/config/"; var mvec = []; var msize = 0; + +# available hard-coded support + +var features = {}; + +# globals to transmit info if clouds are written from buffer + +var buffered_tile_latitude = 0.0; +var buffered_tile_longitude = 0.0; +var buffered_tile_alpha = 0.0; +var buffered_tile_index = 0; + +# globals to handle additional info for Cumulus cloud dynamics + +var cloud_mean_altitude = 0.0; +var cloud_flt = 0.0; +var cloud_evolution_timestamp = 0.0; diff --git a/Nasal/local_weather.nas b/Nasal/local_weather.nas index 21badfc29..0b0240b2c 100644 --- a/Nasal/local_weather.nas +++ b/Nasal/local_weather.nas @@ -1,7 +1,7 @@ ######################################################## # routines to set up, transform and manage local weather -# Thorsten Renk, July 2010 +# Thorsten Renk, October 2010 # thermal model by Patrice Poly, April 2010 ######################################################## @@ -10,19 +10,24 @@ # calc_geo to compute the latitude to meter conversion # calc_d_sq to compute a distance square in local Cartesian approximation # effect_volume_loop to check if the aircraft has entered an effect volume -# assemble_effect_array to create a Nasal internal array with pointers to all effect volumes +# assemble_effect_array to store the size of the effect volume array # add_vectors to add two vectors in polar coordinates # wind_altitude_interpolation to interpolate aloft winds in altitude # wind_interpolation to interpolate aloft winds in altitude and position # interpolation_loop to continuously interpolate weather parameters between stations -# thermal_lift _loop to manage the detailed thermal lift model # thermal_lift_start to start the detailed thermal model +# thermal_lift_loop to manage the detailed thermal lift model +# thermal_lift_stop to end the detailed thermal lift model +# wave_lift_start to start the detailed wave lift model +# wave_lift_loop to manage the detailed wave lift model +# wave_lift_stop to end the detailed wave lift model # effect_volume_start to manage parameters when an effect volume is entered # effect_volume_stop to manage parameters when an effect volume is left # ts_factor (helper function for thermal lift model) # tl_factor (helper function for thermal lift model) # calcLift_max to calculate the maximal available thermal lift for given altitude # calcLift to calculate the thermal lift at aircraft position +# calcWaveLift to calculate wave lift at aircraft position # select_cloud_model to select a path to the cloud model, given the cloud type and subtype # create_cloud_vec to place a single cloud into an array to be written later # clear_all to remove all clouds, effect volumes and weather stations and stop loops @@ -31,6 +36,7 @@ # create_cumosys wrapper to place a convective cloud system based on terrain coverage # cumulus_loop to place 25 Cumulus clouds each frame # create_cumulus to place a convective cloud system based on terrain coverage +# recreate_cumulus to respawn convective clouds as part of the convective dynamics algorithm # cumulus_exclusion_layer to create a layer with 'holes' left for thunderstorm placement # create_rise_clouds to create a barrier cloud system # create_streak to create a cloud streak @@ -41,22 +47,33 @@ # terrain_presampling_loop to sample 25 terrain points per frame # terrain_presampling to sample terrain elevation at a random point within specified area # terrain_presampling_analysis to analyze terrain presampling results +# wave_detection_loop to detect if and where wave lift should be placed (currently unfinished) # get_convective_altitude to determine the altitude at which a Cumulus cloud is placed # manage presampling to take proper action when a presampling call has been finished # set_wind_model_flag to convert the wind model string into an integer flag +# set_texture_mix to determine the texture mix between smooth and rough cloud appearance # create_effect_volume to create an effect volume # set_weather_station to specify a weather station for interpolation # set_wind_ipoint to set an aloft wind interpolation point # showDialog to pop up a dialog window +# readFlags to read configuration flags from the property tree into Nasal variables at startup # streak_wrapper wrapper to execute streak from menu # convection wrapper wrapper to execute convective clouds from menu # barrier wrapper wrapper to execute barrier clouds from menu # single_cloud_wrapper wrapper to create single cloud from menu # layer wrapper wrapper to create layer from menu # box wrapper wrapper to create a cloudbox (experimental) -# set aloft wrapper wrapper to create aloft winds from menu +# set_aloft wrapper wrapper to create aloft winds from menu # set_tile to call a weather tile creation from menu # startup to prepare the package at startup +# test to serve as a testbed for new functions + +# object purpose + +# weatherStation to store info about weather conditions +# effectVolume to store effect volume info and provide methods to move and time-evolve effect volumes +# thermalLift to store thermal info and provide methods to move and time-evolve a thermal +# waveLift to store wave info ################################### # geospatial helper functions @@ -89,8 +106,7 @@ return (x*x + y*y); var effect_volume_loop = func (index, n_active) { var n = 25; -#var evNode = props.globals.getNode("local-weather/effect-volumes", 1).getChildren("effect-volume"); -#var esize = size(evNode); + var esize = n_effectVolumeArray; @@ -102,21 +118,22 @@ if (i_max > esize) {i_max = esize;} for (var i = index; i < i_max; i = i+1) { - #e = evNode[i]; - e = effectVolumeArray[i]; + var e = effectVolumeArray[i]; - var flag = 0; #default assumption is that we're not in the volume - var ealt_min = e.getNode("position/min-altitude-ft").getValue() * ft_to_m; - var ealt_max = e.getNode("position/max-altitude-ft").getValue() * ft_to_m; + var flag = 0; # default assumption is that we're not in the volume + + var ealt_min = e.alt_low * ft_to_m; + var ealt_max = e.alt_high * ft_to_m; + if ((viewpos.alt() > ealt_min) and (viewpos.alt() < ealt_max)) # we are in the correct alt range { # so we load geometry next - var geometry = e.getNode("geometry").getValue(); - var elat = e.getNode("position/latitude-deg").getValue(); - var elon = e.getNode("position/longitude-deg").getValue(); - var rx = e.getNode("volume/size-x").getValue(); - + + var geometry = e.geometry; + var elat = e.lat; + var elon = e.lon; + var rx = e.r1; if (geometry == 1) # we have a cylinder { @@ -126,23 +143,31 @@ for (var i = index; i < i_max; i = i+1) else if (geometry == 2) # we have an elliptic shape { # get orientation - var ry = e.getNode("volume/size-y").getValue(); - var phi = e.getNode("volume/orientation-deg").getValue(); + + var ry = e.r2; + var phi = e.phi; + phi = phi * math.pi/180.0; + + # first get unrotated coordinates var xx = (viewpos.lon() - elon) * lon_to_m; var yy = (viewpos.lat() - elat) * lat_to_m; + # then rotate to align with the shape var x = xx * math.cos(phi) - yy * math.sin(phi); var y = yy * math.cos(phi) + xx * math.sin(phi); + # then check elliptic condition if ((x*x)/(rx*rx) + (y*y)/(ry*ry) <1) {flag = 1;} } else if (geometry == 3) # we have a rectangular shape { # get orientation - var ry = e.getNode("volume/size-y").getValue(); - var phi = e.getNode("volume/orientation-deg").getValue(); + + var ry = e.r2; + var phi = e.phi; + phi = phi * math.pi/180.0; # first get unrotated coordinates var xx = (viewpos.lon() - elon) * lon_to_m; @@ -159,20 +184,20 @@ for (var i = index; i < i_max; i = i+1) # if flag ==1 at this point, we are inside the effect volume # but we only need to take action on entering and leaving, so we check also active_flag - #if (flag==1) {print("Inside volume");} + # if (flag==1) {print("Inside volume");} - var active_flag = e.getNode("active-flag").getValue(); # see if the node was active previously + var active_flag = e.active_flag; if ((flag==1) and (active_flag ==0)) # we just entered the node { - #print("Entered volume"); - e.getNode("active-flag").setValue(1); + #print("Entered volume"); + e.active_flag = 1; effect_volume_start(e); } else if ((flag==0) and (active_flag ==1)) # we left an active node { #print("Left volume!"); - e.getNode("active-flag").setValue(0); + e.active_flag = 0; effect_volume_stop(e); } if (flag==1) {active_counter = active_counter + 1;} # we still count the active volumes @@ -184,7 +209,6 @@ for (var i = index; i < i_max; i = i+1) # therefore we zero them for redundancy here so that the interpolation loop can take over # and set the properties correctly for outside -#print(i); if (i == esize) # we check the number of actives and reset all counters { @@ -196,6 +220,7 @@ if (i == esize) # we check the number of actives and reset all counters vNode.getChild("number-active-rain").setValue(0); vNode.getChild("number-active-lift").setValue(0); vNode.getChild("number-active-turb").setValue(0); + vNode.getChild("number-active-sat").setValue(0); } #print("n_active: ", active_counter); active_counter = 0; i = 0; @@ -215,10 +240,7 @@ if (getprop(lw~"effect-loop-flag") ==1) {settimer( func {effect_volume_loop(i, a var assemble_effect_array = func { -setsize(effectVolumeArray,0); -effectVolumeArray = props.globals.getNode("local-weather/effect-volumes", 1).getChildren("effect-volume"); n_effectVolumeArray = size(effectVolumeArray); -#print("Effect vector size: ",n_effectVolumeArray); } @@ -326,7 +348,6 @@ var interpolation_loop = func { var iNode = props.globals.getNode(lw~"interpolation", 1); var cNode = props.globals.getNode(lw~"current", 1); -var stNode = iNode.getChildren("station"); var viewpos = geo.aircraft_position(); var sum_vis = 0.0; @@ -338,33 +359,53 @@ var sum_norm = 0.0; # get an inverse distance weighted average from all defined weather stations -foreach (var s; stNode) { + +var n_stations = size(weatherStationArray); + +for (var i = 0; i < n_stations; i=i+1) { - var slat = s.getNode("latitude-deg").getValue(); - var slon = s.getNode("longitude-deg").getValue(); + s = weatherStationArray[i]; var stpos = geo.Coord.new(); - stpos.set_latlon(slat,slon,1000.0); + stpos.set_latlon(s.lat,s.lon,0.0); var d = viewpos.distance_to(stpos); if (d <100.0) {d = 100.0;} # to prevent singularity at zero - sum_norm = sum_norm + 1./d; - sum_vis = sum_vis + (s.getNode("visibility-m").getValue()/d); - sum_T = sum_T + (s.getNode("temperature-degc").getValue()/d); - sum_D = sum_D + (s.getNode("dewpoint-degc").getValue()/d); - sum_p = sum_p + (s.getNode("pressure-sea-level-inhg").getValue()/d); + sum_norm = sum_norm + 1./d * s.weight; + + + sum_vis = sum_vis + (s.vis/d) * s.weight; + sum_T = sum_T + (s.T/d) * s.weight; + sum_D = sum_D + (s.D/d) * s.weight; + sum_p = sum_p + (s.p/d) * s.weight; + + # gradually fade in the interpolation weight of newly added stations to + # avoid sudden jumps + + if (s.weight < 1.0) {s.weight = s.weight + 0.1;} # automatically delete stations out of range # take care not to unload if weird values appear for a moment - if ((d > 80000.0) and (d<100000.0)) {s.remove();} + if ((d > 80000.0) and (d<100000.0)) + { + if (debug_output_flag == 1) + {print("Distance to weather station ", d, " m, unloading ...", i);} + weatherStationArray = weather_tile_management.delete_from_vector(weatherStationArray,i); + i = i-1; n_stations = n_stations -1; + } } +setprop(lwi~"station-number", i); + + + var vis = sum_vis/sum_norm; var p = sum_p/sum_norm; var D = sum_D/sum_norm; var T = sum_T/sum_norm; + # a simple altitude model for visibility - increase it with increasing altitude var altitude = getprop("position/altitude-ft"); @@ -446,7 +487,7 @@ else if (wind_model_flag == 5) # aloft waypoint interpolated var altitude_agl = getprop("/position/altitude-agl-ft"); -if (getprop(lw~"tmp/presampling-flag") == 0) +if (presampling_flag == 0) { var boundary_alt = 600.0; var windspeed_ground = windspeed/3.0; @@ -502,64 +543,40 @@ if (getprop(lw~"interpolation-loop-flag") ==1) {settimer(interpolation_loop, 1.0 } -################################### -# thermal lift loop -################################### - -var thermal_lift_loop = func { - -var cNode = props.globals.getNode(lw~"current", 1); -var lNode = props.globals.getNode(lw~"lift",1); - -var apos = geo.aircraft_position(); - -var tlat = lNode.getNode("latitude-deg").getValue(); -var tlon = lNode.getNode("longitude-deg").getValue(); -var tpos = geo.Coord.new(); -tpos.set_latlon(tlat,tlon,0.0); - -var d = apos.distance_to(tpos); -var alt = getprop("position/altitude-ft"); - - -var R = lNode.getNode("radius").getValue(); -var height = lNode.getNode("height").getValue(); -var cn = lNode.getNode("cn").getValue(); -var sh = lNode.getNode("sh").getValue(); -var max_lift = lNode.getNode("max_lift").getValue(); -var f_lift_radius = lNode.getNode("f_lift_radius").getValue(); - -# print(d," ", alt, " ", R, " ", height, " ", cn, " ", sh," ", max_lift," ", f_lift_radius, " ",0.0); - -var lift = calcLift(d, alt, R, height, cn, sh, max_lift, f_lift_radius, 0.0); -# print(lift); - -cNode.getChild("thermal-lift").setValue(lift); - -if (getprop(lw~"lift-loop-flag") ==1) {settimer(thermal_lift_loop, 0);} -} - ################################### # thermal lift loop startup ################################### var thermal_lift_start = func (ev) { -# copy the properties from effect volume to the lift folder +# copy the properties from effect volume to the lift object -var lNode = props.globals.getNode(lw~"lift",1); -lNode.getNode("radius",1).setValue(ev.getNode("effects/radius").getValue()); -lNode.getNode("height",1).setValue(ev.getNode("effects/height").getValue()); -lNode.getNode("cn",1).setValue(ev.getNode("effects/cn").getValue()); -lNode.getNode("sh",1).setValue(ev.getNode("effects/sh").getValue()); -lNode.getNode("max_lift",1).setValue(ev.getNode("effects/max_lift").getValue()); -lNode.getNode("f_lift_radius",1).setValue(ev.getNode("effects/f_lift_radius").getValue()); +l = thermalLift.new(ev.lat, ev.lon, ev.radius, ev.height, ev.cn, ev.sh, ev.max_lift, ev.f_lift_radius); -#lNode.getNode("latitude-deg",1).setValue(ev.getNode("position/latitude-deg").getValue()); -#lNode.getNode("longitude-deg",1).setValue(ev.getNode("position/longitude-deg").getValue()); +l.index = ev.index; -lNode.getNode("latitude-deg",1).alias(ev.getNode("position/latitude-deg")); -lNode.getNode("longitude-deg",1).alias(ev.getNode("position/longitude-deg")); +if (dynamics_flag == 1) + { + l.timestamp = weather_dynamics.time_lw; + if (dynamical_convection_flag == 1) + { + l.flt = ev.flt; + l.evolution_timestamp = ev.evolution_timestamp; + } + } + + + +thermal = l; + +if (debug_output_flag == 1) + { + print("Entering thermal lift..."); + print("strength: ", thermal.max_lift, " radius: ", thermal.radius); + if (dynamical_convection_flag ==1) + {print("fractional lifetime: ", thermal.flt);} + + } # and start the lift loop, unless another one is already running # so we block overlapping calls @@ -569,23 +586,157 @@ if (getprop(lw~"lift-loop-flag") == 0) } +################################### +# thermal lift loop +################################### + +var thermal_lift_loop = func { + +var apos = geo.aircraft_position(); + +var tlat = thermal.lat; +var tlon = thermal.lon; + +var tpos = geo.Coord.new(); +tpos.set_latlon(tlat,tlon,0.0); + +var d = apos.distance_to(tpos); +var alt = getprop("position/altitude-ft"); + +if (dynamical_convection_flag == 1) + {var flt = thermal.flt;} +else + {var flt = 0.5;} + +var lift = calcLift(d, alt, thermal.radius, thermal.height, thermal.cn, thermal.sh, thermal.max_lift, thermal.f_lift_radius, flt); + +if (getprop(lw~"wave-loop-flag") ==1) + { + lift = lift + getprop(lw~"current/wave-lift"); + } + + +setprop(lw~"current/thermal-lift",lift); +compat_layer.setLift(lift); + +# if dynamics is on, move the thermal and occasionally compute altitude and age + +if (dynamics_flag == 1) + { + thermal.move(); + + if ((rand() < 0.01) and (presampling_flag == 1)) # check every 100 frames + { + if (dynamical_convection_flag == 1) + { + thermal.correct_altitude_and_age(); + if (thermal.flt > 1.1) + {thermal_lift_stop();} + } + else + { + thermal.correct_altitude(); + } + } + } + + +if (getprop(lw~"lift-loop-flag") ==1) {settimer(thermal_lift_loop, 0);} +} + + + + + ################################### # thermal lift loop stop ################################### var thermal_lift_stop = func { -# unalias later to avoid an error being generated - -settimer( func { -var lNode = props.globals.getNode(lw~"lift",1); -lNode.getNode("latitude-deg",1).unalias(); -lNode.getNode("longitude-deg",1).unalias(); },0.1); - setprop(lw~"lift-loop-flag",0); setprop(lw~"current/thermal-lift",0.0); +compat_layer.setLift(0.0); + +if (debug_output_flag == 1) + { + print("Leaving thermal lift..."); + } + } + +################################### +# wave lift loop startup +################################### + +var wave_lift_start = func (ev) { + +# copy the properties from effect volume to the wave object + + +w = waveLift.new (ev.lat, ev.lon, ev.r1, ev.r2, ev.phi, ev.height, ev.max_lift); +w.index = ev.index; +wave = w; + +# and start the lift loop, unless another one is already running +# so we block overlapping calls + +if (getprop(lw~"wave-loop-flag") == 0) +{setprop(lw~"wave-loop-flag",1); settimer(wave_lift_loop,0);} + +} + +################################### +# wave lift loop +################################### + +var wave_lift_loop = func { + +var lat = getprop("position/latitude-deg"); +var lon = getprop("position/longitude-deg"); +var alt = getprop("position/altitude-ft"); + + +var phi = wave.phi * math.pi/180.0; + +var xx = (lon - wave.lon) * lon_to_m; +var yy = (lat - wave.lat) * lat_to_m; + +var x = xx * math.cos(phi) - yy * math.sin(phi); +var y = yy * math.cos(phi) + xx * math.sin(phi); + +var lift = calcWaveLift(x,y,alt); + +# check if we are in a thermal, if so set wave lift and let the thermal lift loop add that + +if (getprop(lw~"lift-loop-flag") ==1) + { + setprop(lw~"current/wave-lift",lift); + } +else + { + setprop(lw~"current/thermal-lift",lift); + } + +if (getprop(lw~"wave-loop-flag") ==1) {settimer(wave_lift_loop, 0);} +} + + + + +################################### +# wave lift loop stop +################################### + +var wave_lift_stop = func { + +setprop(lw~"wave-loop-flag",0); +setprop(lw~"current/thermal-lift",0.0); +} + + + #################################### # action taken when in effect volume #################################### @@ -594,70 +745,86 @@ var effect_volume_start = func (ev) { var cNode = props.globals.getNode(lw~"current"); -if (ev.getNode("effects/visibility-flag", 1).getValue()==1) + +if (ev.vis_flag ==1) { # first store the current setting in case we need to restore on leaving - var vis = ev.getNode("effects/visibility-m").getValue(); - ev.getNode("restore/visibility-m",1).setValue(cNode.getNode("visibility-m").getValue()); + var vis = ev.vis; + ev.vis_r = cNode.getNode("visibility-m").getValue(); + # then set the new value in current and execute change cNode.getNode("visibility-m").setValue(vis); compat_layer.setVisibility(vis); # then count the number of active volumes on entry (we need that to determine # what to do on exit) - ev.getNode("restore/number-entry-vis",1).setValue(getprop(lw~"effect-volumes/number-active-vis")); - + ev.n_entry_vis = getprop(lw~"effect-volumes/number-active-vis"); + # and add to the counter setprop(lw~"effect-volumes/number-active-vis",getprop(lw~"effect-volumes/number-active-vis")+1); } -if (ev.getNode("effects/rain-flag", 1).getValue()==1) +#if (ev.getNode("effects/rain-flag", 1).getValue()==1) +if (ev.rain_flag == 1) { - var rain = ev.getNode("effects/rain-norm").getValue(); - ev.getNode("restore/rain-norm",1).setValue(cNode.getNode("rain-norm").getValue()); + var rain = ev.rain; + ev.rain_r = cNode.getNode("rain-norm").getValue(); cNode.getNode("rain-norm").setValue(rain); compat_layer.setRain(rain); - ev.getNode("restore/number-entry-rain",1).setValue(getprop(lw~"effect-volumes/number-active-rain")); + ev.n_entry_rain = getprop(lw~"effect-volumes/number-active-rain"); setprop(lw~"effect-volumes/number-active-rain",getprop(lw~"effect-volumes/number-active-rain")+1); } - -if (ev.getNode("effects/snow-flag", 1).getValue()==1) +if (ev.snow_flag == 1) { - var snow = ev.getNode("effects/snow-norm").getValue(); - ev.getNode("restore/snow-norm",1).setValue(cNode.getNode("snow-norm").getValue()); + var snow = ev.snow; + ev.snow_r = cNode.getNode("snow-norm").getValue(); cNode.getNode("snow-norm").setValue(snow); compat_layer.setSnow(snow); - ev.getNode("restore/number-entry-snow",1).setValue(getprop(lw~"effect-volumes/number-active-snow")); + ev.n_entry_snow = getprop(lw~"effect-volumes/number-active-snow"); setprop(lw~"effect-volumes/number-active-snow",getprop(lw~"effect-volumes/number-active-snow")+1); } - -if (ev.getNode("effects/turbulence-flag", 1).getValue()==1) +if (ev.turb_flag == 1) { - var turbulence = ev.getNode("effects/turbulence").getValue(); - ev.getNode("restore/turbulence",1).setValue(cNode.getNode("turbulence").getValue()); + var turbulence = ev.turb; + ev.turb_r = cNode.getNode("turbulence").getValue(); cNode.getNode("turbulence").setValue(turbulence); compat_layer.setTurbulence(turbulence); - ev.getNode("restore/number-entry-turb",1).setValue(getprop(lw~"effect-volumes/number-active-turb")); + ev.n_entry_turb = getprop(lw~"effect-volumes/number-active-turb"); setprop(lw~"effect-volumes/number-active-turb",getprop(lw~"effect-volumes/number-active-turb")+1); } - -if (ev.getNode("effects/thermal-lift-flag", 1).getValue()==1) +if (ev.sat_flag == 1) { - var lift = ev.getNode("effects/thermal-lift").getValue(); - ev.getNode("restore/thermal-lift",1).setValue(cNode.getNode("thermal-lift").getValue()); + var saturation = ev.sat; + ev.sat_r = getprop("/rendering/scene/saturation"); + compat_layer.setLight(saturation); + ev.n_entry_sat = getprop(lw~"effect-volumes/number-active-sat"); + setprop(lw~"effect-volumes/number-active-sat",getprop(lw~"effect-volumes/number-active-sat")+1); + } + +if (ev.lift_flag == 1) + { + var lift = ev.lift; + ev.lift_r = cNode.getNode("thermal-lift").getValue(); cNode.getNode("thermal-lift").setValue(lift); - #setLift(ev.getNode("position/latitude-deg").getValue(),ev.getNode("position/longitude-deg").getValue(),1); - ev.getNode("restore/number-entry-lift",1).setValue(getprop(lw~"effect-volumes/number-active-lift")); + compat_layer.setLift(lift); + ev.n_entry_lift = getprop(lw~"effect-volumes/number-active-lift"); setprop(lw~"effect-volumes/number-active-lift",getprop(lw~"effect-volumes/number-active-lift")+1); } -else if (ev.getNode("effects/thermal-lift-flag", 1).getValue()==2) # thermal by function +else if (ev.lift_flag == 2) { - ev.getNode("restore/thermal-lift",1).setValue(cNode.getNode("thermal-lift").getValue()); - ev.getNode("restore/number-entry-lift",1).setValue(getprop(lw~"effect-volumes/number-active-lift")); + ev.lift_r = cNode.getNode("thermal-lift").getValue(); + ev.n_entry_lift = getprop(lw~"effect-volumes/number-active-lift"); setprop(lw~"effect-volumes/number-active-lift",getprop(lw~"effect-volumes/number-active-lift")+1); thermal_lift_start(ev); } +else if (ev.lift_flag == 3) + { + ev.lift_r = cNode.getNode("thermal-lift").getValue(); + ev.n_entry_lift = getprop(lw~"effect-volumes/number-active-lift"); + setprop(lw~"effect-volumes/number-active-lift",getprop(lw~"effect-volumes/number-active-lift")+1); + wave_lift_start(ev); + } } @@ -668,12 +835,14 @@ var effect_volume_stop = func (ev) { var cNode = props.globals.getNode(lw~"current"); -if (ev.getNode("effects/visibility-flag", 1).getValue()==1) +if (ev.vis_flag == 1) { var n_active = getprop(lw~"effect-volumes/number-active-vis"); - var n_entry = ev.getNode("restore/number-entry-vis").getValue(); + + var n_entry = ev.n_entry_vis; + # if no other nodes affecting property are active, restore to outside # else restore settings as they have been when entering the volume when the number # of active volumes is the same as on entry (i.e. volumes are nested), otherwise @@ -681,7 +850,8 @@ if (ev.getNode("effects/visibility-flag", 1).getValue()==1) # be cancelled if (n_active ==1){var vis = props.globals.getNode(lw~"interpolation/visibility-m").getValue();} - else if ((n_active -1) == n_entry) {var vis = ev.getNode("restore/visibility-m").getValue();} + else if ((n_active -1) == n_entry) #{var vis = ev.getNode("restore/visibility-m").getValue();} + {var vis = ev.vis_r;} else {var vis = cNode.getNode("visibility-m").getValue();} cNode.getNode("visibility-m").setValue(vis); compat_layer.setVisibility(vis); @@ -689,142 +859,145 @@ if (ev.getNode("effects/visibility-flag", 1).getValue()==1) # and subtract from the counter setprop(lw~"effect-volumes/number-active-vis",getprop(lw~"effect-volumes/number-active-vis")-1); } - -if (ev.getNode("effects/rain-flag", 1).getValue()==1) +if (ev.rain_flag == 1) { var n_active = getprop(lw~"effect-volumes/number-active-rain"); - var n_entry = ev.getNode("restore/number-entry-rain").getValue(); + var n_entry = ev.n_entry_rain; + if (n_active ==1){var rain = props.globals.getNode(lw~"interpolation/rain-norm").getValue();} - else if ((n_active -1) == n_entry) {var rain = ev.getNode("restore/rain-norm").getValue();} + else if ((n_active -1) == n_entry)# {var rain = ev.getNode("restore/rain-norm").getValue();} + {var rain = ev.rain_r;} else {var rain = cNode.getNode("rain-norm").getValue();} cNode.getNode("rain-norm").setValue(rain); compat_layer.setRain(rain); setprop(lw~"effect-volumes/number-active-rain",getprop(lw~"effect-volumes/number-active-rain")-1); } -if (ev.getNode("effects/snow-flag", 1).getValue()==1) +if (ev.snow_flag == 1) { var n_active = getprop(lw~"effect-volumes/number-active-snow"); - var n_entry = ev.getNode("restore/number-entry-snow").getValue(); + var n_entry = ev.n_entry_snow; + if (n_active ==1){var snow = props.globals.getNode(lw~"interpolation/snow-norm").getValue();} - else if ((n_active -1) == n_entry) {var snow = ev.getNode("restore/snow-norm").getValue();} + else if ((n_active -1) == n_entry) + {var snow = ev.snow_r;} else {var snow = cNode.getNode("snow-norm").getValue();} cNode.getNode("snow-norm").setValue(snow); compat_layer.setSnow(snow); setprop(lw~"effect-volumes/number-active-snow",getprop(lw~"effect-volumes/number-active-snow")-1); } -if (ev.getNode("effects/turbulence-flag", 1).getValue()==1) +if (ev.turb_flag == 1) { var n_active = getprop(lw~"effect-volumes/number-active-turb"); - var n_entry = ev.getNode("restore/number-entry-turb").getValue(); + var n_entry = ev.n_entry_turb; if (n_active ==1){var turbulence = props.globals.getNode(lw~"interpolation/turbulence").getValue();} - else if ((n_active -1) == n_entry) {var turbulence = ev.getNode("restore/turbulence").getValue();} + else if ((n_active -1) == n_entry) + {var turbulence = ev.turb_r;} else {var turbulence = cNode.getNode("turbulence").getValue();} cNode.getNode("turbulence").setValue(turbulence); compat_layer.setTurbulence(turbulence); setprop(lw~"effect-volumes/number-active-turb",getprop(lw~"effect-volumes/number-active-turb")-1); } -if (ev.getNode("effects/thermal-lift-flag", 1).getValue()==1) +if (ev.sat_flag == 1) + { + var n_active = getprop(lw~"effect-volumes/number-active-sat"); + var n_entry = ev.n_entry_sat; + if (n_active ==1){var saturation = 1.0;} + else if ((n_active -1) == n_entry) + {var saturation = ev.sat_r;} + else {var saturation = getprop("/rendering/scene/saturation");} + compat_layer.setLight(saturation); + setprop(lw~"effect-volumes/number-active-sat",getprop(lw~"effect-volumes/number-active-sat")-1); + } + +if (ev.lift_flag == 1) { var n_active = getprop(lw~"effect-volumes/number-active-lift"); - var n_entry = ev.getNode("restore/number-entry-lift").getValue(); + var n_entry = ev.n_entry_lift; if (n_active ==1){var lift = props.globals.getNode(lw~"interpolation/thermal-lift").getValue();} - else if ((n_active -1) == n_entry) {var lift = ev.getNode("restore/thermal-lift").getValue();} + else if ((n_active -1) == n_entry) + {var lift = ev.lift_r;} else {var lift = cNode.getNode("thermal-lift").getValue();} cNode.getNode("thermal-lift").setValue(lift); - # some cheat code - # setLift(ev.getNode("position/latitude-deg").getValue(),ev.getNode("position/longitude-deg").getValue(),0); - + compat_layer.setLift(lift); setprop(lw~"effect-volumes/number-active-lift",getprop(lw~"effect-volumes/number-active-lift")-1); } -else if (ev.getNode("effects/thermal-lift-flag", 1).getValue()==2) # thermal by function +else if (ev.lift_flag == 2) { thermal_lift_stop(); setprop(lw~"effect-volumes/number-active-lift",getprop(lw~"effect-volumes/number-active-lift")-1); } - -} - - - - - - - -#################################### -# set thermal lift to given value -#################################### - -var setLift = func (lat, lon, flag) { - -# this is a cheat - if you have an AI thermal present, this sets its coordinates to the -# current position - -if (flag==1) - { - setprop("ai/models/thermal/position/latitude-deg",lat); - setprop("ai/models/thermal/position/longitude-deg",lon); - } -else +else if (ev.lift_flag == 3) { - setprop("ai/models/thermal/position/latitude-deg",0.1); - setprop("ai/models/thermal/position/longitude-deg",0.1); - + wave_lift_stop(); + setprop(lw~"effect-volumes/number-active-lift",getprop(lw~"effect-volumes/number-active-lift")-1); } -#setprop("environment/thermal-lift",L); } + + ######################################### # compute thermal lift in detailed model ######################################### var ts_factor = func (t, alt, height) { +var t1 = 0.1; # fractional time at which lift is fully developed +var t2 = 0.9; # fractional time at which lift starts to decay +var t3 = 1.0; # fractional time at which lift is gone + # no time dependence modelled yet -return 1.0; +# return 1.0; -var t_a = t - (alt/height) * t1 -t1; + +var t_a = t - (alt/height) * t1 - t1; if (t_a<0) {return 0.0;} else if (t_a= t1) and (t < t2)) {return 1.0;} -else if (t_a >= t2) {return 0.5 - 0.5 * math.cos((1.0-(t2-t_a)/(t3-t2))*math.pi);} +else if (t_a < t2) {return 1.0;} +else {return 0.5 - 0.5 * math.cos((1.0-(t2-t_a)/(t3-t2))*math.pi);} } var tl_factor = func (t, alt, height) { +var t1 = 0.1; # fractional time at which lift is fully developed +var t2 = 0.9; # fractional time at which lift starts to decay +var t3 = 1.0; # fractional time at which lift is gone + # no time dependence modelled yet -return 1.0; +# return 1.0; var t_a = t - (alt/height) * t1; if (t_a<0) {return 0.0;} else if (t_a= t1) and (t < t2)) {return 1.0;} -else if (t_a >= t2) {return 0.5 - 0.5 * math.cos((1.0-(t2-t_a)/(t3-t2))*math.pi);} +else if (t_a < t2) {return 1.0;} +else {return 0.5 - 0.5 * math.cos((1.0-(t2-t_a)/(t3-t2))*math.pi);} } var calcLift_max = func (alt, max_lift, height) { +alt_agl = getprop("/position/altitude-agl-ft"); + # no lift below ground -if (alt < 0.0) {return 0.0;} +if (alt_agl < 0.0) {return 0.0;} # lift ramps up to full within 200 m -else if (alt < 200.0*m_to_ft) - {return max_lift * 0.5 * (1.0 + math.cos((1.0-alt/(200.0*m_to_ft))*math.pi));} +else if (alt_agl < 200.0*m_to_ft) + {return max_lift * 0.5 * (1.0 + math.cos((1.0-alt_agl/(200.0*m_to_ft))*math.pi));} # constant max. lift in main body -else if ((alt > 200.0*m_to_ft) and (alt < height)) +else if ((alt_agl > 200.0*m_to_ft) and (alt < height)) {return max_lift;} # decreasing lift from cloudbase to 10% above base else if ((alt > height ) and (alt < height*1.1)) - {return max_lift * 0.5 * (1.0 - math.cos((1.0-10.0*alt/height)*math.pi));} + {return max_lift * 0.5 * (1.0 - math.cos((1.0-10.0*(alt-height)/height)*math.pi));} # no lift available above else {return 0.0;} @@ -865,7 +1038,33 @@ else } } +######################################### +# compute wave lift in detailed model +######################################### +var calcWaveLift = func (x,y, alt) { + +var lift = wave.max_lift * math.cos((y/wave.y) * 1.5 * math.pi); + +if (abs(x)/wave.x > 0.9) + { + lift = lift * (abs(x) - 0.9 * wave.x)/(0.1 * wave.x); + } + + + +lift = lift * 2.71828 * math.exp(-alt/wave.height) * alt/wave.height; + +var alt_agl = getprop("/position/altitude-agl-ft"); + +if (alt_agl < 1000.0) + { + lift = lift * (alt_agl/1000.0) * (alt_agl/1000.0); + } + +return lift; +} + ########################################################### # select a cloud model @@ -939,6 +1138,40 @@ else if (type == "Congestus"){ else {path = "Models/Weather/congestus_sl5.xml";} } + } +else if (type == "Stratocumulus"){ + if (subtype == "small") { + if (rn > 0.8) {path = "Models/Weather/stratocumulus_small1.xml";} + else if (rn > 0.6) {path = "Models/Weather/stratocumulus_small2.xml";} + else if (rn > 0.4) {path = "Models/Weather/stratocumulus_small3.xml";} + else if (rn > 0.2) {path = "Models/Weather/stratocumulus_small4.xml";} + else {path = "Models/Weather/stratocumulus_small5.xml";} + } + else if (subtype == "large") { + if (rn > 0.8) {path = "Models/Weather/stratocumulus_sl1.xml";} + else if (rn > 0.6) {path = "Models/Weather/stratocumulus_sl2.xml";} + else if (rn > 0.4) {path = "Models/Weather/stratocumulus_sl3.xml";} + else if (rn > 0.2) {path = "Models/Weather/stratocumulus_sl4.xml";} + else {path = "Models/Weather/stratocumulus_sl5.xml";} + } + + } +else if (type == "Cumulus (whisp)"){ + if (subtype == "small") { + if (rn > 0.8) {path = "Models/Weather/cumulus_whisp1.xml";} + else if (rn > 0.6) {path = "Models/Weather/cumulus_whisp2.xml";} + else if (rn > 0.4) {path = "Models/Weather/cumulus_whisp3.xml";} + else if (rn > 0.2) {path = "Models/Weather/cumulus_whisp4.xml";} + else {path = "Models/Weather/cumulus_whisp5.xml";} + } + else if (subtype == "large") { + if (rn > 0.8) {path = "Models/Weather/cumulus_whisp1.xml";} + else if (rn > 0.6) {path = "Models/Weather/cumulus_whisp2.xml";} + else if (rn > 0.4) {path = "Models/Weather/cumulus_whisp3.xml";} + else if (rn > 0.2) {path = "Models/Weather/cumulus_whisp4.xml";} + else {path = "Models/Weather/cumulus_whisp5.xml";} + } + } else if (type == "Cumulus bottom"){ if (subtype == "small") { @@ -958,7 +1191,15 @@ else if (type == "Congestus bottom"){ } } - +else if (type == "Stratocumulus bottom"){ + if (subtype == "small") { + if (rn > 0.0) {path = "Models/Weather/stratocumulus_bottom1.xml";} + } + else if (subtype == "large") { + if (rn > 0.0) {path = "Models/Weather/stratocumulus_bottom1.xml";} + } + + } else if (type == "Cumulonimbus (cloudlet)"){ if (subtype == "small") { if (rn > 0.8) {path = "Models/Weather/cumulonimbus_sl1.xml";} @@ -1010,6 +1251,22 @@ else if (type == "Stratus (structured)"){ else {path = "Models/Weather/altocumulus_layer5.xml";} } } +else if (type == "Altocumulus perlucidus"){ + if (subtype == "small") { + if (rn > 0.8) {path = "Models/Weather/altocumulus_thinlayer6.xml";} + else if (rn > 0.6) {path = "Models/Weather/altocumulus_thinlayer7.xml";} + else if (rn > 0.4) {path = "Models/Weather/altocumulus_thinlayer8.xml";} + else if (rn > 0.2) {path = "Models/Weather/altocumulus_thinlayer9.xml";} + else {path = "Models/Weather/altocumulus_thinlayer10.xml";} + } + else if (subtype == "large") { + if (rn > 0.8) {path = "Models/Weather/altocumulus_thinlayer1.xml";} + else if (rn > 0.6) {path = "Models/Weather/altocumulus_thinlayer2.xml";} + else if (rn > 0.4) {path = "Models/Weather/altocumulus_thinlayer3.xml";} + else if (rn > 0.2) {path = "Models/Weather/altocumulus_thinlayer4.xml";} + else {path = "Models/Weather/altocumulus_thinlayer5.xml";} + } + } else if ((type == "Cumulonimbus") or (type == "Cumulonimbus (rain)")) { if (subtype == "small") { if (rn > 0.5) {path = "Models/Weather/cumulonimbus_small1.xml";} @@ -1162,26 +1419,26 @@ else if (type == "Fog (thick)") { else {path = "Models/Weather/stratus_thick5.xml";} } } -else if (type == "Test") {path="Models/Weather/test.xml";} +else if (type == "Test") {path="Models/Weather/single_cloud.xml";} else if (type == "Box_test") { if (subtype == "standard") { - if (rn > 0.8) {path = "Models/Weather/test1.xml";} - else if (rn > 0.6) {path = "Models/Weather/test2.xml";} - else if (rn > 0.4) {path = "Models/Weather/test3.xml";} - else if (rn > 0.2) {path = "Models/Weather/test4.xml";} - else {path = "Models/Weather/test5.xml";} + if (rn > 0.8) {path = "Models/Weather/cloudbox1.xml";} + else if (rn > 0.6) {path = "Models/Weather/cloudbox2.xml";} + else if (rn > 0.4) {path = "Models/Weather/cloudbox3.xml";} + else if (rn > 0.2) {path = "Models/Weather/cloudbox4.xml";} + else {path = "Models/Weather/cloudbox5.xml";} } else if (subtype == "core") { - if (rn > 0.8) {path = "Models/Weather/test_core1.xml";} - else if (rn > 0.6) {path = "Models/Weather/test_core2.xml";} - else if (rn > 0.4) {path = "Models/Weather/test_core3.xml";} - else if (rn > 0.2) {path = "Models/Weather/test_core4.xml";} - else {path = "Models/Weather/test_core5.xml";} + if (rn > 0.8) {path = "Models/Weather/cloudbox_core1.xml";} + else if (rn > 0.6) {path = "Models/Weather/cloudbox_core2.xml";} + else if (rn > 0.4) {path = "Models/Weather/cloudbox_core3.xml";} + else if (rn > 0.2) {path = "Models/Weather/cloudbox_core4.xml";} + else {path = "Models/Weather/cloudbox_core5.xml";} } else if (subtype == "bottom") { - if (rn > 0.66) {path = "Models/Weather/test_bottom1.xml";} - else if (rn > 0.33) {path = "Models/Weather/test_bottom2.xml";} - else if (rn > 0.0) {path = "Models/Weather/test_bottom3.xml";} + if (rn > 0.66) {path = "Models/Weather/cloudbox_bottom1.xml";} + else if (rn > 0.33) {path = "Models/Weather/cloudbox_bottom2.xml";} + else if (rn > 0.0) {path = "Models/Weather/cloudbox_bottom3.xml";} } } @@ -1207,6 +1464,15 @@ append(clouds_lon,long); append(clouds_alt,alt); append(clouds_orientation,heading); +# globals (needed for Cumulus clouds) should be set if needed by the main cloud generating call + +if (dynamics_flag ==1) + { + append(clouds_mean_alt, cloud_mean_altitude); + append(clouds_flt, cloud_fractional_lifetime); + append(clouds_evolution_timestamp,cloud_evolution_timestamp); + } + } ########################################################### # clear all clouds and effects @@ -1230,36 +1496,32 @@ foreach (var m; modelNode) } } -cloudNode.getNode("cloud-number",1).setValue(0); + # clear effect volumes -props.globals.getNode("local-weather/effect-volumes", 1).removeChildren("effect-volume"); +#props.globals.getNode("local-weather/effect-volumes", 1).removeChildren("effect-volume"); -# clear weather stations -props.globals.getNode("local-weather/interpolation", 1).removeChildren("station"); - -# clear winds - -props.globals.getNode("local-weather/interpolation", 1).removeChildren("wind"); -setprop(lwi~"ipoint-number",0); # reset pressure continuity weather_tiles.last_pressure = 0.0; -# stop all loops make sure thermal generation is off +# stop all loops setprop(lw~"effect-loop-flag",0); setprop(lw~"interpolation-loop-flag",0); setprop(lw~"tile-loop-flag",0); setprop(lw~"lift-loop-flag",0); +setprop(lw~"wave-loop-flag",0); setprop(lw~"dynamics-loop-flag",0); setprop(lw~"timing-loop-flag",0); setprop(lw~"buffer-loop-flag",0); setprop(lw~"housekeeping-loop-flag",0); -setprop(lw~"tmp/generate-thermal-lift-flag",0); +setprop(lw~"convective-loop-flag",0); + +weather_dynamics.convective_loop_kill_flag = 1; # long-running loop needs a different scheme to end # also remove rain and snow effects @@ -1281,31 +1543,40 @@ settimer ( func { setsize(weather_dynamics.cloudQuadtrees,0);},0.1); # to avoid setsize(effectVolumeArray,0); n_effectVolumeArray = 0; + settimer ( func { setsize(weather_tile_management.modelArrays,0); setsize(weather_dynamics.tile_wind_direction,0); setsize(weather_dynamics.tile_wind_speed,0); setsize(weather_tile_management.cloudBufferArray,0); setsize(weather_tile_management.cloudSceneryArray,0); + setsize(alt_20_array,0); + setsize(alt_50_array,0); + setsize(weather_dynamics.tile_convective_altitude,0); + setsize(weather_dynamics.tile_convective_strength,0); + setsize(weatherStationArray,0); setprop(lw~"clouds/buffer-count",0); setprop(lw~"clouds/cloud-scenery-count",0); + weather_tile_management.n_cloudSceneryArray = 0; + props.globals.getNode("local-weather/interpolation", 1).removeChildren("wind"); + setprop(lwi~"ipoint-number",0); },1.1); +setprop(lw~"tmp/presampling-status", "idle"); + } + ########################################################### # detailed Cumulus clouds created from multiple cloudlets ########################################################### var create_detailed_cumulus_cloud = func (lat, lon, alt, size) { -#print(size); var edge_bias = convective_texture_mix; -#print("edge_bias: ",edge_bias); - var size_bias = 0.0; if (size > 2.0) @@ -1343,7 +1614,7 @@ else if (size>0.8) var y = 200.0; var edge = 0.3; } -else +else if (size>0.4) { var type = "Cumulus (cloudlet)"; var btype = "Cumulus bottom"; @@ -1353,6 +1624,16 @@ else var y = 200.0; var edge = 1.0; } +else + { + var type = "Cumulus (whisp)"; + var btype = "Cumulus bottom"; + var height = 100; + var n = 1; + var x = 100.0; + var y = 100.0; + var edge = 1.0; + } var alpha = rand() * 180.0; @@ -1390,16 +1671,18 @@ create_streak("Cumulonimbus",lat,lon, alt+ 0.5* height, height,8,0.0,0.0,1600.0, var create_cumosys = func (blat, blon, balt, nc, size) { # realistic Cumulus has somewhat larger models, so compensate to get the same coverage -if (getprop(lw~"config/detailed-clouds-flag") == 1) +if (detailed_clouds_flag == 1) {nc = int(0.7 * nc);} -if (getprop(lw~"tmp/thread-flag") == 1) +if (thread_flag == 1) {setprop(lw~"tmp/convective-status", "computing"); cumulus_loop(blat, blon, balt, nc, size);} else {create_cumulus(blat, blon, balt, nc, size); - print("Convective system done!");} + if (debug_output_flag == 1) + {print("Convective system done!");} + } } @@ -1410,7 +1693,8 @@ var n = 25; if (nc < 0) { - print("Convective system done!"); + if (debug_output_flag == 1) + {print("Convective system done!");} setprop(lw~"tmp/convective-status", "idle"); assemble_effect_array(); return; @@ -1436,7 +1720,7 @@ var p = 0.0; var rn = 0.0; var place_lift_flag = 0; var strength = 0.0; -var detail_flag = getprop(lw~"config/detailed-clouds-flag"); +var detail_flag = detailed_clouds_flag; var alpha = getprop(lw~"tmp/tile-orientation-deg") * math.pi/180.0; # the tile orientation @@ -1459,7 +1743,6 @@ var t_factor1 = 0.5 * (1.0-math.cos((t * sec_to_rad))); # daily variation in strength of thermals, peaks around 15:30 var t_factor2 = 0.5 * (1.0-math.cos((t * sec_to_rad)-0.9)); -#print("t-factor1 is now: ",t_factor1, " ",t_factor2); # number of possible thermals equals overall strength times daily variation times geographic variation # this is a proxy for solar thermal energy @@ -1492,6 +1775,7 @@ while (i < nc) { if (contains(landcover_map,landcover)) {p = p + landcover_map[landcover];} else {print(p, " ", info[1].names[0]);} }} + else {continue;} # then decide if the thermal energy at the spot generates an updraft and a cloud @@ -1508,16 +1792,19 @@ while (i < nc) { # check if we have a terrain elevation analysis available and can use a # detailed placement altitude correction - if (getprop(lw~"tmp/presampling-flag") == 1) + if (presampling_flag == 1) { - var place_alt = get_convective_altitude(balt, elevation); + var place_alt = get_convective_altitude(balt, elevation, getprop(lw~"tiles/tile-counter")); } else {var place_alt = balt;} + + cloud_mean_altitude = place_alt; + cloud_fractional_lifetime = rand(); + cloud_evolution_timestamp = weather_dynamics.time_lw; - - if (getprop(lw~"tmp/generate-thermal-lift-flag") != 3) # no clouds if we produce blue thermals + if (generate_thermal_lift_flag != 3) # no clouds if we produce blue thermals { - if (getprop(lw~"tmp/thread-flag") == 1) + if (thread_flag == 1) { if (detail_flag == 0){create_cloud_vec(path,lat,lon, place_alt, 0.0);} else {create_detailed_cumulus_cloud(lat, lon, place_alt, strength);} @@ -1530,7 +1817,7 @@ while (i < nc) { } # now see if we need to create a thermal - first check the flag - if (getprop(lw~"tmp/generate-thermal-lift-flag") == 1) # thermal by constant + if (generate_thermal_lift_flag == 1) # thermal by constant { # now check if convection is strong if (place_lift_flag == 1) @@ -1538,21 +1825,18 @@ while (i < nc) { var lift = 3.0 + 10.0 * (strength -1.0); var radius = 500 + 500 * rand(); #print("Lift: ", lift * ft_to_m - 1.0); - create_effect_volume(1, lat, lon, radius, radius, 0.0, 0.0, place_alt+500.0, -1, -1, -1, -1, lift, 1); + create_effect_volume(1, lat, lon, radius, radius, 0.0, 0.0, place_alt+500.0, -1, -1, -1, -1, lift, 1,-1); } # end if place_lift_flag } # end if generate-thermal-lift-flag - else if ((getprop(lw~"tmp/generate-thermal-lift-flag") == 2) or (getprop(lw~"tmp/generate-thermal-lift-flag") == 3)) # thermal by function + else if ((generate_thermal_lift_flag == 2) or (generate_thermal_lift_flag == 3)) # thermal by function { if (place_lift_flag == 1) { - #var lift = 3.0 + 20.0 * p * rand(); - #var radius = 500 + 500 * rand(); var lift = (3.0 + 10.0 * (strength -1.0))/thermal_conditions; var radius = (500 + 500 * rand())*thermal_conditions; - #print("Lift: ", lift * ft_to_m - 1.0, " strength: ",strength); - create_effect_volume(1, lat, lon, 1.1*radius, 1.1*radius, 0.0, 0.0, place_alt+500.0, -1, -1, -1, lift*0.02, lift, -2); + create_effect_volume(1, lat, lon, 1.1*radius, 1.1*radius, 0.0, 0.0, place_alt*1.15, -1, -1, -1, lift*0.04, lift, -2,-1); } # end if place_lift_flag } # end if generate-thermal-lift-flag @@ -1564,6 +1848,165 @@ while (i < nc) { } + + + + +################################################################# +# respawn convective clouds to compensate for decay +# the difference being that new clouds get zero fractional +# lifetime and are placed based on terrain with a different weight +################################################################## + +var recreate_cumulus = func (blat, blon, balt, alpha, nc, size, tile_index) { + +var path = "Models/Weather/blank.ac"; +var i = 0; +var p = 0.0; +var rn = 0.0; +var place_lift_flag = 0; +var strength = 0.0; +var detail_flag = detailed_clouds_flag; + +alpha = alpha * math.pi/180.0; # the tile orientation + +var sec_to_rad = 2.0 * math.pi/86400; # conversion factor for sinusoidal dependence on daytime + +# current aircraft position + +var alat = getprop("position/latitude-deg"); +var alon = getprop("position/longitude-deg"); + +# get the local time of the day in seconds + +var t = getprop("sim/time/utc/day-seconds"); +t = t + getprop("sim/time/local-offset"); + + +# and make a simple sinusoidal model of thermal strength + +# daily variation in number of thermals, peaks at noon +var t_factor1 = 0.5 * (1.0-math.cos((t * sec_to_rad))); + +# daily variation in strength of thermals, peaks around 15:30 +var t_factor2 = 0.5 * (1.0-math.cos((t * sec_to_rad)-0.9)); + + +# number of possible thermals equals overall strength times daily variation times geographic variation +# this is a proxy for solar thermal energy + +nc = t_factor1 * nc * math.cos(blat/180.0*math.pi); + +var thermal_conditions = getprop(lw~"config/thermal-properties"); + + +while (i < nc) { + + p = 0.0; + place_lift_flag = 0; + strength = 0.0; + + # pick a trial position inside the tile and rotate by tile orientation angle + var x = (2.0 * rand() - 1.0) * size; + var y = (2.0 * rand() - 1.0) * size; + + var lat = blat + (y * math.cos(alpha) - x * math.sin(alpha)) * m_to_lat; + var lon = blon + (x * math.cos(alpha) + y * math.sin(alpha)) * m_to_lon; + + # check if the cloud would be spawned in visual range, if not don't bother + var d_sq = calc_d_sq(alat, alon, lat, lon); + + if (math.sqrt(d_sq) > weather_tile_management.cloud_view_distance) + {i = i+1; continue;} + + # now check ground cover type on chosen spot + var info = geodinfo(lat, lon); + + if (info != nil) { + var elevation = info[0] * m_to_ft; + if (info[1] != nil){ + var landcover = info[1].names[0]; + if (contains(landcover_map,landcover)) {p = p + landcover_map[landcover];} + else {print(p, " ", info[1].names[0]);} + }} + else {continue;} + + # check if to place a cloud with weight sqrt(p), the lifetime gets another sqrt(p) factor + + if (rand() > math.sqrt(p)) + {i=i+1; continue;} + + + # then calculate the strength of the updraft + + strength = (1.5 * rand() + (2.0 * p)) * t_factor2; # the strength of thermal activity at the spot + if (strength > 1.0) + { + path = select_cloud_model("Cumulus","large"); place_lift_flag = 1; + } + else {path = select_cloud_model("Cumulus","small");} + + if (presampling_flag == 1) + { + var place_alt = get_convective_altitude(balt, elevation, tile_index); + } + else {var place_alt = balt;} + + cloud_mean_altitude = place_alt; + cloud_fractional_lifetime = 0.0; + cloud_evolution_timestamp = weather_dynamics.time_lw; + + compat_layer.cloud_mean_altitude = place_alt; + compat_layer.cloud_flt = cloud_fractional_lifetime; + compat_layer.cloud_evolution_timestamp = cloud_evolution_timestamp; + + if (generate_thermal_lift_flag != 3) # no clouds if we produce blue thermals + { + if (thread_flag == 1) + { + thread_flag = 0; # create clouds immediately + if (detail_flag == 0){compat_layer.create_cloud(path,lat,lon, place_alt, 0.0);} + else {create_detailed_cumulus_cloud(lat, lon, place_alt, strength);} + thread_flag = 1; # and restore threading + } + else + { + if (detail_flag == 0){compat_layer.create_cloud(path, lat, lon, place_alt, 0.0);} + else {create_detailed_cumulus_cloud(lat, lon, place_alt, strength);} + } + } + + if (generate_thermal_lift_flag == 1) # thermal by constant + { + if (place_lift_flag == 1) + { + var lift = 3.0 + 10.0 * (strength -1.0); + var radius = 500 + 500 * rand(); + create_effect_volume(1, lat, lon, radius, radius, 0.0, 0.0, place_alt+500.0, -1, -1, -1, -1, lift, 1,-1); + } # end if place_lift_flag + } # end if generate-thermal-lift-flag + else if ((generate_thermal_lift_flag == 2) or (generate_thermal_lift_flag == 3)) # thermal by function + { + if (place_lift_flag == 1) + { + var lift = (3.0 + 10.0 * (strength -1.0))/thermal_conditions; + var radius = (500 + 500 * rand())*thermal_conditions; + + create_effect_volume(1, lat, lon, 1.1*radius, 1.1*radius, 0.0, 0.0, place_alt*1.15, -1, -1, -1, lift*0.04, lift, -2,-1); + } # end if place_lift_flag + + } # end if generate-thermal-lift-flag + + + i = i + 1; + } # end while + +} + + + + + ########################################################### # place a Cumulus layer with excluded regions # to avoid placing cumulus underneath a thunderstorm @@ -1576,7 +2019,7 @@ var strength = 0; var flag = 1; var phi = alpha * math.pi/180.0; -var detail_flag = getprop(lw~"config/detailed-clouds-flag"); +var detail_flag = detailed_clouds_flag; if (detail_flag == 1) {var i_max = int(0.25*n);} else {var i_max = int(1.0*n);} @@ -1604,7 +2047,7 @@ for (var i =0; i< i_max; i=i+1) if (strength > 1.0) {var path = select_cloud_model("Cumulus","large"); } else {var path = select_cloud_model("Cumulus","small");} - if (getprop(lw~"tmp/thread-flag") == 1) + if (thread_flag == 1) { if (detail_flag == 0){create_cloud_vec(path,lat,lon, balt, 0.0);} else {create_detailed_cumulus_cloud(lat, lon, balt, strength);} @@ -1634,7 +2077,6 @@ var p = 0.0; var rn = 0.0; var nsample = 10; var counter = 0; -var elevation = 0.0; var dir = (winddir + 180.0) * math.pi/180.0; var step = dist/nsample; @@ -1644,7 +2086,6 @@ while (i < nc) { counter = counter + 1; p = 0.0; - elevation=0.0; var x = (2.0 * rand() - 1.0) * size; var y = (2.0 * rand() - 1.0) * size; @@ -1652,12 +2093,11 @@ while (i < nc) { var lat = blat + y * m_to_lat; var lon = blon + x * m_to_lon; - var info = geodinfo(lat, lon); - if (info != nil) {elevation = info[0] * m_to_ft;} + var elevation = compat_layer.get_elevation(lat, lon); + #print("elevation: ", elevation, "balt: ", balt); - - if ((elevation < balt) and (elevation != 0.0)) + if ((elevation < balt) and (elevation != -1.0)) { for (var j = 0; j balt) + + #print("x: ", x, "y: ", y); + + var elevation1 = compat_layer.get_elevation(tlat,tlon); + #print("elevation1: ", elevation1, "balt: ", balt); + + if (elevation1 > balt) { p = 1.0 - j * (1.0/nsample); + #p = 1.0; break; } @@ -1680,14 +2123,13 @@ while (i < nc) { } if (counter > 500) {print("Cannot place clouds - exiting..."); i = nc;} if (rand() < p) - { - path = select_cloud_model("Altocumulus","large"); - #print("Cloud ",i, " after ",counter, " tries"); + { + path = select_cloud_model("Stratus (structured)","large"); compat_layer.create_cloud(path, lat, lon, balt, 0.0); - counter = 0; - i = i+1; - } - + counter = 0; + i = i+1; + } + } # end while } @@ -1742,7 +2184,7 @@ for (var i=0; i 0.05) # we have below 5 fps if (nc <= 0) # we're done and may analyze the result { terrain_presampling_analysis(); - print("Presampling done!"); + if (debug_output_flag == 1) + {print("Presampling done!");} setprop(lw~"tmp/presampling-status", "finished"); return; } @@ -2092,29 +2532,13 @@ for (var i=0; i 1.0) {shift_strength = 1.0;} # no enhancement for very low layers -if (shift_strength < 0.0) {shift_strength = 0.0;} # this shouldn't happen, but just in case... +if (shift_strength < 0.0) {shift_strength = 1.0;} # this shouldn't happen, but just in case... + +if (alt_diff > alt_variation) {alt_diff = alt_variation;} # maximal shift is given by alt_variation return balt + shift_strength * alt_diff * fraction; @@ -2309,84 +2766,57 @@ if (convective_texture_mix > 0.2) {convective_texture_mix = 0.2;} # create an effect volume ########################################################### -var create_effect_volume = func (geometry, lat, lon, r1, r2, phi, alt_low, alt_high, vis, rain, snow, turb, lift, lift_flag) { - -var flag = 0; - -var index = getprop(lw~"effect-volumes/effect-placement-index"); - -var n = props.globals.getNode("local-weather/effect-volumes", 1); - for (var i = index; 1; i += 1) - if (n.getChild("effect-volume", i, 0) == nil) - break; - - setprop(lw~"effect-volumes/effect-placement-index",i); +var create_effect_volume = func (geometry, lat, lon, r1, r2, phi, alt_low, alt_high, vis, rain, snow, turb, lift, lift_flag, sat) { -ev = n.getChild("effect-volume", i, 1); +var ev = effectVolume.new (geometry, lat, lon, r1, r2, phi, alt_low, alt_high, vis, rain, snow, turb, lift, lift_flag, sat); +ev.index = getprop(lw~"tiles/tile-counter"); +ev.active_flag = 0; -ev.getNode("geometry", 1).setValue(geometry); -ev.getNode("active-flag", 1).setValue(0); -ev.getNode("position/latitude-deg", 1).setValue(lat); -ev.getNode("position/longitude-deg", 1).setValue(lon); -ev.getNode("position/min-altitude-ft", 1).setValue(alt_low); -ev.getNode("position/max-altitude-ft", 1).setValue(alt_high); -ev.getNode("volume/size-x", 1).setValue(r1); -ev.getNode("volume/size-y", 1).setValue(r2); -ev.getNode("volume/orientation-deg", 1).setValue(phi); -ev.getNode("tile-index",1).setValue(getprop(lw~"tiles/tile-counter")); -var flag = 1; -if (vis < 0.0) {flag = 0;} -ev.getNode("effects/visibility-flag", 1).setValue(flag); -ev.getNode("effects/visibility-m", 1).setValue(vis); +if (vis < 0.0) {ev.vis_flag = 0;} else {ev.vis_flag = 1;} +if (rain < 0.0) {ev.rain_flag = 0;} else {ev.rain_flag = 1;} +if (snow < 0.0) {ev.snow_flag = 0;} else {ev.snow_flag = 1;} +if (turb < 0.0) {ev.turb_flag = 0;} else {ev.turb_flag = 1;} +if (lift_flag == 0.0) {ev.lift_flag = 0;} else {ev.lift_flag = 1;} +if (sat < 0.0) {ev.sat_flag = 0;} else {ev.sat_flag = 1;} +if (sat > 1.0) {sat = 1.0;} -flag = 1; -if (rain < 0.0) {flag = 0;} -ev.getNode("effects/rain-flag", 1).setValue(flag); -ev.getNode("effects/rain-norm", 1).setValue(rain); - -flag = 1; -if (snow < 0.0) {flag = 0;} -ev.getNode("effects/snow-flag", 1).setValue(flag); -ev.getNode("effects/snow-norm", 1).setValue(snow); - -flag = 1; -if (snow < 0.0) {flag = 0;} -ev.getNode("effects/snow-flag", 1).setValue(flag); -ev.getNode("effects/snow-norm", 1).setValue(snow); - -flag = 1; -if (turb < 0.0) {flag = 0;} -ev.getNode("effects/turbulence-flag", 1).setValue(flag); -ev.getNode("effects/turbulence", 1).setValue(turb); - -flag = 1; -if (lift_flag == 0) {flag = 0;} -ev.getNode("effects/thermal-lift-flag", 1).setValue(flag); -ev.getNode("effects/thermal-lift", 1).setValue(lift); - -flag = 1; if (lift_flag == -2) # we create a thermal by function { - ev.getNode("effects/thermal-lift-flag", 1).setValue(2); - ev.getNode("effects/radius",1 ).setValue(0.8*r1); - ev.getNode("effects/height",1).setValue(alt_high); - ev.getNode("effects/cn",1).setValue(0.8); - ev.getNode("effects/sh",1).setValue(0.8); - ev.getNode("effects/max_lift",1).setValue(lift); - ev.getNode("effects/f_lift_radius",1).setValue(0.8); + ev.lift_flag = 2; + ev.radius = 0.8 * r1; + ev.height = alt_high * 0.87; + ev.cn = 0.7 + rand() * 0.2; + ev.sh = 0.7 + rand() * 0.2; + ev.max_lift = lift; + ev.f_lift_radius = 0.7 + rand() * 0.2; + if (dynamics_flag == 1) # globals set by the convective system + { + ev.flt = cloud_fractional_lifetime; + ev.evolution_timestamp = cloud_evolution_timestamp; + } + } + +if (lift_flag == -3) # we create a wave lift + { + ev.lift_flag = 3; + ev.height = 10000.0; # scale height in ft + ev.max_lift = lift; + ev.index = 0; # static objects are assigned tile id zero } # set a timestamp if needed -if (getprop(lw~"config/dynamics-flag") == 1) +if (dynamics_flag == 1) { - ev.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); + ev.timestamp = weather_dynamics.time_lw; } # and add to the counter setprop(lw~"effect-volumes/number",getprop(lw~"effect-volumes/number")+1); + +append(effectVolumeArray,ev); } @@ -2399,27 +2829,17 @@ setprop(lw~"effect-volumes/number",getprop(lw~"effect-volumes/number")+1); var set_weather_station = func (lat, lon, vis, T, D, p) { -var n = props.globals.getNode(lwi, 1); - for (var i = 0; 1; i += 1) - if (n.getChild("station", i, 0) == nil) - break; - -s = n.getChild("station", i, 1); - -s.getNode("latitude-deg",1).setValue(lat); -s.getNode("longitude-deg",1).setValue(lon); -s.getNode("visibility-m",1).setValue(vis); -s.getNode("temperature-degc",1).setValue(T); -s.getNode("dewpoint-degc",1).setValue(D); -s.getNode("pressure-sea-level-inhg",1).setValue(p); -s.getNode("tile-index",1).setValue(getprop(lw~"tiles/tile-counter")); +var s = weatherStation.new (lat, lon, vis, T, D, p); +s.index = getprop(lw~"tiles/tile-counter"); +s.weight = 0.1; # set a timestamp if needed -if (getprop(lw~"config/dynamics-flag") == 1) +if (dynamics_flag == 1) { - s.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); + s.timestamp = weather_dynamics.time_lw; } +append(weatherStationArray,s); } @@ -2477,6 +2897,29 @@ var showDialog = func (name) { fgcommand("dialog-show", props.Node.new({"dialog-name":name})); +} + + +########################################################### +# helper to transfer configuration flags in menu to Nasal +########################################################### + +var readFlags = func { + +# thermal lift must be 1 for constant thermals (obsolete), 2 for thermals by model (menu default) +# and 3 for blue thermals (set internally inside the tile only) + +if (getprop(lw~"config/generate-thermal-lift-flag") ==1) {generate_thermal_lift_flag = 2;} + else {generate_thermal_lift_flag = 0}; + +thread_flag = getprop(lw~"config/thread-flag"); +dynamics_flag = getprop(lw~"config/dynamics-flag"); +presampling_flag = getprop(lw~"tmp/presampling-flag"); +detailed_clouds_flag = getprop(lw~"config/detailed-clouds-flag"); +dynamical_convection_flag = getprop(lw~"config/dynamical-convection-flag"); +debug_output_flag = getprop(lw~"config/debug-output-flag"); + + } ########################################################### @@ -2485,8 +2928,9 @@ fgcommand("dialog-show", props.Node.new({"dialog-name":name})); var streak_wrapper = func { -setprop(lw~"tmp/thread-flag", 0); -setprop(lw~"config/dynamics-flag",0); +thread_flag = 0; +dynamics_flag = 0; +presampling_flag = 0; var array = []; append(weather_tile_management.modelArrays,array); @@ -2514,8 +2958,10 @@ create_streak(type,lat,lon,alt,rnd_alt,nx,xoffset,xedge,rnd_pos_x,ny,yoffset,yed var convection_wrapper = func { -setprop(lw~"tmp/thread-flag", 0); -setprop(lw~"config/dynamics-flag",0); +thread_flag = 0; +dynamics_flag = 0; +presampling_flag = 0; + var array = []; append(weather_tile_management.modelArrays,array); @@ -2534,8 +2980,11 @@ create_cumosys(lat,lon,alt,n, size*1000.0); var barrier_wrapper = func { -setprop(lw~"tmp/thread-flag", 0); -setprop(lw~"config/dynamics-flag",0); + +thread_flag = 0; +dynamics_flag = 0; +presampling_flag = 0; + var array = []; append(weather_tile_management.modelArrays,array); @@ -2555,7 +3004,11 @@ create_rise_clouds(lat, lon, alt, n, size, dir, dist); var single_cloud_wrapper = func { -setprop(lw~"config/dynamics-flag",0); +thread_flag = 0; +dynamics_flag = 0; +presampling_flag = 0; + + var array = []; append(weather_tile_management.modelArrays,array); @@ -2576,8 +3029,10 @@ compat_layer.create_cloud(path, lat, lon, alt, heading); var layer_wrapper = func { -setprop(lw~"config/dynamics-flag",0); -setprop(lw~"tmp/thread-flag", 0); +thread_flag = 0; +dynamics_flag = 0; +presampling_flag = 0; + var array = []; append(weather_tile_management.modelArrays,array); @@ -2602,8 +3057,10 @@ create_layer(type, lat, lon, alt, thick, rx, ry, phi, density, edge, rain_flag, var box_wrapper = func { -setprop(lw~"tmp/thread-flag", 0); -setprop(lw~"config/dynamics-flag",0); +thread_flag = 0; +dynamics_flag = 0; +presampling_flag = 0; + setprop(lw~"tiles/tile-counter",getprop(lw~"tiles/tile-counter")+1); @@ -2679,6 +3136,7 @@ if (wind_model_flag == 5) var set_tile = func { + var type = getprop("/local-weather/tmp/tile-type"); # set tile center coordinates to current position @@ -2690,9 +3148,39 @@ setprop(lw~"tiles/tmp/latitude-deg",lat); setprop(lw~"tiles/tmp/longitude-deg",lon); setprop(lw~"tiles/tmp/dir-index",4); +readFlags(); + +# check consistency of flags + +if (dynamical_convection_flag == 1) + { + if (dynamics_flag == 0) + { + print("Dynamical convection needs weather dynamics to run! Aborting..."); + setprop("/sim/messages/pilot", "Local weather: dynamical convection needs weather dynamics to run! Aborting..."); + return; + } + if (presampling_flag == 0) + { + print("Dynamical convection needs terrain presampling to run! Aborting..."); + setprop("/sim/messages/pilot", "Local weather: dynamical convection needs terrain presampling to run! Aborting..."); + return; + } + } + + +# if we can do so, we switch global weather off at this point + +if (compat_layer.features.can_disable_environment ==1) + { + props.globals.getNode("/environment/config/enabled").setBoolValue(0); + } + + + # now see if we need to presample the terrain -if ((getprop(lw~"tmp/presampling-flag") == 1) and (getprop(lw~"tmp/presampling-status") == "idle")) +if ((presampling_flag == 1) and (getprop(lw~"tmp/presampling-status") == "idle")) { terrain_presampling_start(lat, lon, 1000, 40000, getprop(lw~"tmp/tile-orientation-deg")); return; @@ -2759,7 +3247,7 @@ setprop(lw~"tiles/tile-counter",getprop(lw~"tiles/tile-counter")+1); # see if we need to generate a quadtree structure for clouds -if (getprop(lw~"config/dynamics-flag") ==1) +if (dynamics_flag ==1) { var quadtree = []; weather_dynamics.generate_quadtree_structure(0, quadtree); @@ -2825,6 +3313,10 @@ else {print("Tile not implemented.");setprop(lw~"tiles/tile-counter",getprop(lw~"tiles/tile-counter")-1);return();} +# mark tile as active + +append(weather_tile_management.active_tile_list,1); + # start tile management loop if needed if (getprop(lw~"tmp/tile-management") != "single tile") { @@ -2848,7 +3340,7 @@ if (getprop(lw~"effect-loop-flag") == 0) # start weather dynamics loops if needed -if (getprop(lw~"config/dynamics-flag") ==1) +if (dynamics_flag ==1) { if (getprop(lw~"timing-loop-flag") == 0) {setprop(lw~"timing-loop-flag",1); weather_dynamics.timing_loop();} @@ -2857,11 +3349,18 @@ if (getprop(lw~"config/dynamics-flag") ==1) { setprop(lw~"dynamics-loop-flag",1); weather_dynamics.quadtree_loop(); - weather_dynamics.weather_dynamics_loop(0); + weather_dynamics.weather_dynamics_loop(0,0); + } + if ((getprop(lw~"convective-loop-flag") == 0) and (getprop(lw~"config/dynamical-convection-flag") ==1)) + { + setprop(lw~"convective-loop-flag",1); + weather_dynamics.convective_loop(); } - } + + + # and start the buffer loop and housekeeping loop if needed if (getprop(lw~"config/buffer-flag") ==1) @@ -2873,7 +3372,7 @@ if (getprop(lw~"config/buffer-flag") ==1) } } -#weather_tile_management.watchdog_loop(); +# weather_tile_management.watchdog_loop(); } @@ -2969,67 +3468,186 @@ var test = func { var lat = getprop("position/latitude-deg"); var lon = getprop("position/longitude-deg"); +var pos = geo.aircraft_position(); + +props.globals.getNode("/environment/terrain/area/enabled",1).setBoolValue(1); + +setprop("/environment/terrain/area/input/analyse-every",200); +setprop("/environment/terrain/area/input/elevation-histogram-count",20); +setprop("/environment/terrain/area/input/elevation-histogram-max-ft",10000); +setprop("/environment/terrain/area/input/elevation-histogram-step-ft",500); +setprop("/environment/terrain/area/input/heading-deg",0.0); +setprop("/environment/terrain/area/input/speed-kt",-.0); +setprop("/environment/terrain/area/input/latitude-deg",lat); +setprop("/environment/terrain/area/input/longitude-deg",lon); +setprop("/environment/terrain/area/input/max-samples",1000); +setprop("/environment/terrain/area/input/max-samples-per-frame",20); +setprop("/environment/terrain/area/input/orientation-deg",0); +setprop("/environment/terrain/area/input/radius-m",40000); + +props.globals.getNode("/environment/terrain/area/input/use-aircraft-position",1).setBoolValue(0); -var v = [1,2,3,4,5,6,7]; - -print(v[2]); -v = weather_tile_management.delete_from_vector(v, 2); -v = weather_tile_management.delete_from_vector(v, 2); - -for (var i = 0; i < size(v); i = i + 1) - { - print(v[i]); - } - -#weather_dynamics.cos_beta = 1; -#weather_dynamics.sin_beta = 0; -#weather_dynamics.tan_vangle = 0.3; - -#weather_dynamics.plane_x = 0.0; -#weather_dynamics.plane_y = 0.0; - - - -#for (var i=0; i<16; i=i+1) -# { -# var pix = []; -# for (var j=0; j<16; j=j+1) -# { -# var x = -18750.0 + j * 2500.0; -# var y = 18750.0 - i * 2500.0; -# append(pix,weather_dynamics.check_visibility(x,y,2500.0)); -# } -# print(pix[0],pix[1],pix[2],pix[3],pix[4],pix[5],pix[6],pix[7],pix[8],pix[9],pix[10],pix[11],pix[12],pix[13],pix[14],pix[15]); -# } - -#print(weather_dynamics.check_visibility(0,0,0,8000.0,10000)); -#print(weather_dynamics.check_visibility(0,0,0,15000.0,2500)); -#print(weather_dynamics.check_visibility(0,0,0,-15000.0,2500)); -#print(weather_dynamics.check_visibility(0,0,7000,5000.0,2500)); - - - - -#terrain_presampling_start(lat, lon, 10000, 20000, 0.0); - -#test: 8 identical position tuples for KSFO -#var p=[ 37.6189722, -122.3748889, 37.6189722, -122.3748889, -# 37.6289722, -122.3748889, 37.6189722, -122.3648889, -# 37.6389722, -122.3748889, 37.6189722, -122.3548889, -# 37.6489722, -122.3748889, 37.6189722, -122.3448889 ]; -# -#var x=geodinfo(p, 10000); # passing in vector with position tuples - -#foreach(var e;x) { -# print("Elevation:",e); # showing results -#} - - - - +fgcommand("reinit", props.Node.new({subsystem:"environment"})); } + + + + +################################################################# +# object classes +################################################################# + +var weatherStation = { + new: func (lat, lon, vis, T, D, p) { + var s = { parents: [weatherStation] }; + s.lat = lat; + s.lon = lon; + s.vis = vis; + s.T = T; + s.D = D; + s.p = p; + return s; + }, + move: func { + var windfield = weather_dynamics.get_windfield(me.index); + var dt = weather_dynamics.time_lw - me.timestamp; + me.lat = me.lat + windfield[1] * dt * local_weather.m_to_lat; + me.lon = me.lon + windfield[0] * dt * local_weather.m_to_lon; + me.timestamp = weather_dynamics.time_lw; + }, +}; + +var effectVolume = { + new: func (geometry, lat, lon, r1, r2, phi, alt_low, alt_high, vis, rain, snow, turb, lift, lift_flag, sat) { + var e = { parents: [effectVolume] }; + e.geometry = geometry; + e.lat = lat; + e.lon = lon; + e.r1 = r1; + e.r2 = r2; + e.phi = phi; + e.alt_low = alt_low; + e.alt_high = alt_high; + e.vis = vis; + e.rain = rain; + e.snow = snow; + e.turb = turb; + e.lift = lift; + e.lift_flag = lift_flag; + e.sat = sat; + return e; + }, + move: func { + var windfield = weather_dynamics.get_windfield(me.index); + var dt = weather_dynamics.time_lw - me.timestamp; + me.lat = me.lat + windfield[1] * dt * local_weather.m_to_lat; + me.lon = me.lon + windfield[0] * dt * local_weather.m_to_lon; + me.timestamp = weather_dynamics.time_lw; + }, + correct_altitude: func { + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + alt_20_array[me.index-1]; + var elevation = compat_layer.get_elevation(me.lat, me.lon); + me.alt_high = local_weather.get_convective_altitude(convective_alt, elevation, me.index) *1.15; + me.height = me.alt_high * 0.87; + }, + correct_altitude_and_age: func { + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + local_weather.alt_20_array[me.index-1]; + var elevation = -1.0; var p_cover = 0.2; + var info = geodinfo(me.lat, me.lon); + if (info != nil) + { + elevation = info[0] * local_weather.m_to_ft; + if (info[1] != nil) + { + var landcover = info[1].names[0]; + if (contains(landcover_map,landcover)) {p_cover = landcover_map[landcover];} + else {p_cover = 0.2;} + } + } + me.alt_high = get_convective_altitude(convective_alt, elevation, me.index) * 1.15; + me.height = me.alt_high * 0.87; + var current_lifetime = math.sqrt(p_cover)/math.sqrt(0.35) * weather_dynamics.cloud_convective_lifetime_s; + var fractional_increase = (weather_dynamics.time_lw - me.evolution_timestamp)/current_lifetime; + me.flt = me.flt + fractional_increase; + me.evolution_timestamp = weather_dynamics.time_lw; + }, + get_distance: func { + var lat = getprop("position/latitude-deg"); + var lon = getprop("position/longitude-deg"); + return math.sqrt(calc_d_sq(lat, lon, me.lat, me.lon)); + }, +}; + + +var thermalLift = { + new: func (lat, lon, radius, height, cn, sh, max_lift, f_lift_radius) { + var l = { parents: [thermalLift] }; + l.lat = lat; + l.lon = lon; + l.radius = radius; + l.height = height; + l.cn = cn; + l.sh = sh; + l.max_lift = max_lift; + l.f_lift_radius = f_lift_radius; + return l; + }, + move: func { + var windfield = weather_dynamics.get_windfield(me.index); + var dt = weather_dynamics.time_lw - me.timestamp; + me.lat = me.lat + windfield[1] * dt * local_weather.m_to_lat; + me.lon = me.lon + windfield[0] * dt * local_weather.m_to_lon; + me.timestamp = weather_dynamics.time_lw; + }, + correct_altitude: func { + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + alt_20_array[me.index-1]; + var elevation = compat_layer.get_elevation(me.lat, me.lon); + me.height = local_weather.get_convective_altitude(convective_alt, elevation, me.index); + }, + correct_altitude_and_age: func { + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + local_weather.alt_20_array[me.index-1]; + var elevation = -1.0; var p_cover = 0.2; + var info = geodinfo(me.lat, me.lon); + if (info != nil) + { + elevation = info[0] * local_weather.m_to_ft; + if (info[1] != nil) + { + var landcover = info[1].names[0]; + if (contains(landcover_map,landcover)) {p_cover = landcover_map[landcover];} + else {p_cover = 0.2;} + } + } + me.height = get_convective_altitude(convective_alt, elevation, me.index); + var current_lifetime = math.sqrt(p_cover)/math.sqrt(0.35) * weather_dynamics.cloud_convective_lifetime_s; + var fractional_increase = (weather_dynamics.time_lw - me.evolution_timestamp)/current_lifetime; + me.flt = me.flt + fractional_increase; + me.evolution_timestamp = weather_dynamics.time_lw; + }, + +}; + + +var waveLift = { + new: func (lat, lon, x, y, phi, height, max_lift) { + var w = { parents: [waveLift] }; + w.lat = lat; + w.lon = lon; + w.x = x; + w.y = y; + w.phi = phi; + w.height = height; + w.max_lift = max_lift; + w.phi = getprop(lw~"tmp/tile-orientation-deg"); + return w; + }, + +}; + + + ################################################################# # global variable, property creation and the startup listener ################################################################# @@ -3051,7 +3669,7 @@ var ec = "/environment/config/"; # a hash map of the strength for convection associated with terrain types -var landcover_map = {BuiltUpCover: 0.35, Town: 0.35, Freeway:0.35, BarrenCover:0.3, HerbTundraCover: 0.25, GrassCover: 0.2, CropGrassCover: 0.2, Sand: 0.25, Grass: 0.2, Ocean: 0.01, Marsh: 0.05, Lake: 0.01, ShrubCover: 0.15, Landmass: 0.2, CropWoodCover: 0.15, MixedForestCover: 0.1, DryCropPastureCover: 0.25, MixedCropPastureCover: 0.2, IrrCropPastureCover: 0.15, DeciduousBroadCover: 0.1, pa_taxiway : 0.35, pa_tiedown: 0.35, pc_taxiway: 0.35, pc_tiedown: 0.35, Glacier: 0.01, DryLake: 0.3, IntermittentStream: 0.2}; +var landcover_map = {BuiltUpCover: 0.35, Town: 0.35, Freeway:0.35, BarrenCover:0.3, HerbTundraCover: 0.25, GrassCover: 0.2, CropGrassCover: 0.2, EvergreenBroadCover: 0.2, Sand: 0.25, Grass: 0.2, Ocean: 0.01, Marsh: 0.05, Lake: 0.01, ShrubCover: 0.15, Landmass: 0.2, CropWoodCover: 0.15, MixedForestCover: 0.1, DryCropPastureCover: 0.25, MixedCropPastureCover: 0.2, IrrCropPastureCover: 0.15, DeciduousBroadCover: 0.1, pa_taxiway : 0.35, pa_tiedown: 0.35, pc_taxiway: 0.35, pc_tiedown: 0.35, Glacier: 0.01, DryLake: 0.3, IntermittentStream: 0.2}; # a hash map of average vertical cloud model sizes @@ -3069,8 +3687,15 @@ var clouds_lon = []; var clouds_alt = []; var clouds_orientation = []; +# additional info needed for dynamical clouds: the base altitude around which cloudlets are distributed +# and the fractional lifetime -# storage arrays for terrain presampling and results +var clouds_mean_alt = []; +var clouds_flt = []; +var clouds_evolution_timestamp = []; + + +# storage arrays for terrain presampling and results by tile var terrain_n = []; var alt_50_array = []; @@ -3081,6 +3706,16 @@ var alt_20_array = []; var effectVolumeArray = []; var n_effectVolumeArray = 0; +# the thermal and the wave hash + +var thermal = {}; +var wave = {}; + + +# array of currently existing weather stations + +var weatherStationArray = []; + # a flag for the wind model (so we don't have to do string comparisons all the time) # 1: constant 2: constant in tile 3: aloft interpolated 4: airmass interpolated @@ -3090,6 +3725,25 @@ var wind_model_flag = 1; var convective_texture_mix = 0.0; +# a global keeping track of the mean cloud altitude when building a Cumulus from individual cloudlets + +var cloud_mean_altitude = 0.0; + +# globals keeping track of the lifetime when building a Cumulus from individual cloudlets + +var cloud_fractional_lifetime = 0.0; +var cloud_evolution_timestamp = 0.0; + +# global flags mirroring property tree menu settings + +var generate_thermal_lift_flag = 0; +var thread_flag = 1; +var dynamics_flag = 1; +var presampling_flag = 1; +var detailed_clouds_flag = 1; +var dynamical_convection_flag = 1; +var debug_output_flag = 1; + # set all sorts of default properties for the menu @@ -3142,16 +3796,14 @@ setprop(lw~"tmp/box-bottom-fraction",0.9); setprop(lw~"tmp/box-bottom-thickness",0.5); setprop(lw~"tmp/box-bottom-n",12); setprop(lw~"tmp/tile-type", "High-pressure"); -setprop(lw~"tmp/tile-orientation-deg", 0.0); +setprop(lw~"tmp/tile-orientation-deg", 260.0); setprop(lw~"tmp/windspeed-kt", 8.0); setprop(lw~"tmp/tile-alt-offset-ft", 0.0); setprop(lw~"tmp/tile-alt-median-ft",0.0); setprop(lw~"tmp/tile-alt-min-ft",0.0); setprop(lw~"tmp/tile-management", "single tile"); -setprop(lw~"tmp/generate-thermal-lift-flag", 0); setprop(lw~"tmp/presampling-flag", 1); setprop(lw~"tmp/asymmetric-tile-loading-flag", 0); -setprop(lw~"tmp/thread-flag", 1); setprop(lw~"tmp/last-reading-pos-del",0); setprop(lw~"tmp/last-reading-pos-mod",0); setprop(lw~"tmp/thread-status", "idle"); @@ -3159,23 +3811,23 @@ setprop(lw~"tmp/convective-status", "idle"); setprop(lw~"tmp/presampling-status", "idle"); setprop(lw~"tmp/buffer-status", "idle"); setprop(lw~"tmp/buffer-tile-index", 0); -setprop(lw~"tmp/FL0-wind-from-heading-deg",0.0); +setprop(lw~"tmp/FL0-wind-from-heading-deg",260.0); setprop(lw~"tmp/FL0-windspeed-kt",8.0); -setprop(lw~"tmp/FL50-wind-from-heading-deg",2.0); +setprop(lw~"tmp/FL50-wind-from-heading-deg",262.0); setprop(lw~"tmp/FL50-windspeed-kt",11.0); -setprop(lw~"tmp/FL100-wind-from-heading-deg",4.0); +setprop(lw~"tmp/FL100-wind-from-heading-deg",264.0); setprop(lw~"tmp/FL100-windspeed-kt",16.0); -setprop(lw~"tmp/FL180-wind-from-heading-deg",5.0); +setprop(lw~"tmp/FL180-wind-from-heading-deg",265.0); setprop(lw~"tmp/FL180-windspeed-kt",24.0); -setprop(lw~"tmp/FL240-wind-from-heading-deg",9.0); +setprop(lw~"tmp/FL240-wind-from-heading-deg",269.0); setprop(lw~"tmp/FL240-windspeed-kt",35.0); -setprop(lw~"tmp/FL300-wind-from-heading-deg",13.0); +setprop(lw~"tmp/FL300-wind-from-heading-deg",273.0); setprop(lw~"tmp/FL300-windspeed-kt",45.0); -setprop(lw~"tmp/FL340-wind-from-heading-deg",14.0); +setprop(lw~"tmp/FL340-wind-from-heading-deg",274.0); setprop(lw~"tmp/FL340-windspeed-kt",50.0); -setprop(lw~"tmp/FL390-wind-from-heading-deg",13.0); +setprop(lw~"tmp/FL390-wind-from-heading-deg",273.0); setprop(lw~"tmp/FL390-windspeed-kt",56.0); -setprop(lw~"tmp/FL450-wind-from-heading-deg",12.0); +setprop(lw~"tmp/FL450-wind-from-heading-deg",272.0); setprop(lw~"tmp/FL450-windspeed-kt",65.0); setprop(lw~"tmp/ipoint-latitude-deg",getprop("position/latitude-deg")); setprop(lw~"tmp/ipoint-longitude-deg",getprop("position/longitude-deg")); @@ -3183,8 +3835,6 @@ setprop(lw~"tmp/ipoint-longitude-deg",getprop("position/longitude-deg")); # set config values -#setprop(lw~"config/distance-to-load-tile-m",35000.0); -#setprop(lw~"config/distance-to-remove-tile-m",37000.0); setprop(lw~"config/distance-to-load-tile-m",39000.0); setprop(lw~"config/distance-to-remove-tile-m",39500.0); setprop(lw~"config/detailed-clouds-flag",1); @@ -3198,6 +3848,10 @@ setprop(lw~"config/asymmetric-buffering-flag",0); setprop(lw~"config/asymmetric-buffering-reduction",0.3); setprop(lw~"config/asymmetric-buffering-angle-deg",90.0); setprop(lw~"config/clouds-in-dynamics-loop",250); +setprop(lw~"config/debug-output-flag",1); +setprop(lw~"config/generate-thermal-lift-flag", 0); +setprop(lw~"config/dynamical-convection-flag", 1); +setprop(lw~"config/thread-flag", 1); # set the default loop flags to loops inactive @@ -3206,12 +3860,14 @@ setprop(lw~"effect-loop-flag",0); setprop(lw~"interpolation-loop-flag",0); setprop(lw~"tile-loop-flag",0); setprop(lw~"lift-loop-flag",0); +setprop(lw~"wave-loop-flag",0); setprop(lw~"buffer-loop-flag",0); setprop(lw~"housekeeping-loop-flag",0); +setprop(lw~"convective-loop-flag",0); # create other management properties -setprop(lw~"clouds/cloud-number",0); +#setprop(lw~"clouds/cloud-number",0); setprop(lw~"clouds/placement-index",0); setprop(lw~"clouds/model-placement-index",0); setprop(lw~"effect-volumes/effect-placement-index",0); @@ -3224,7 +3880,7 @@ setprop(lw~"effect-volumes/number-active-rain",0); setprop(lw~"effect-volumes/number-active-snow",0); setprop(lw~"effect-volumes/number-active-turb",0); setprop(lw~"effect-volumes/number-active-lift",0); - +setprop(lw~"effect-volumes/number-active-sat",0); # create properties for tile management diff --git a/Nasal/weather_dynamics.nas b/Nasal/weather_dynamics.nas index c92e12095..b89e3448d 100644 --- a/Nasal/weather_dynamics.nas +++ b/Nasal/weather_dynamics.nas @@ -1,6 +1,6 @@ ######################################################## # routines to simulate cloud wind drift and evolution -# Thorsten Renk, July 2010 +# Thorsten Renk, October 2010 ######################################################## # function purpose @@ -9,18 +9,18 @@ # timing_loop to provide accurate timing information for wind drift calculations # quadtree_loop to manage drift of clouds in the field of view # weather_dynamics_loop to manage drift of weather effects, tile centers and interpolation points +# convective_loop to regularly recreate convective clouds # generate_quadtree_structure to generate a quadtree data structure used for managing the visual field # sort_into_quadtree to sort objects into a quadtree structure +# sorting_recursion to recursively sort into a quadree (helper) # quadtree_recursion to search the quadtree for objects in the visual field # check_visibility to check if a quadrant is currently visible # move_tile to move tile coordinates in the wind -# move_effect_volume to move an effect volume in the wind -# move_weather_station to move a weather station in the wind # get_cartesian to get local Cartesian coordinates out of coordinates #################################################### -# get the windfield for a given locatio and altitude +# get the windfield for a given location and altitude # (currently constant, but supposed to be local later) #################################################### @@ -63,7 +63,8 @@ return windfield; var timing_loop = func { -time_lw = time_lw + getprop("/sim/time/delta-sec"); +dt_lw = getprop("/sim/time/delta-sec"); +time_lw = time_lw + dt_lw; if (getprop(lw~"timing-loop-flag") ==1) {settimer(timing_loop, 0);} @@ -116,6 +117,8 @@ foreach (t; tiles) cos_beta = math.cos(beta * math.pi/180.0); sin_beta = math.sin(beta * math.pi/180.0); plane_x = xy_vec[0]; plane_y = xy_vec[1]; + + windfield = get_windfield(index); quadtree_recursion(cloudQuadtrees[index-1],0,1,0.0,0.0); } @@ -156,34 +159,172 @@ if (getprop(lw~"dynamics-loop-flag") ==1) {settimer(quadtree_loop, 0);} -var weather_dynamics_loop = func (index) { +var weather_dynamics_loop = func (index, cindex) { var n = 20; +var nc = 1; +var csize = weather_tile_management.n_cloudSceneryArray; var i_max = index + n; if (i_max > local_weather.n_effectVolumeArray) {i_max = local_weather.n_effectVolumeArray;} +var ecount = 0; + for (var i = index; i < i_max; i = i+1) { - move_effect_volume(local_weather.effectVolumeArray[i]); + var ev = local_weather.effectVolumeArray[i]; + if (ev.index !=0) + {ev.move();} + if ((ev.lift_flag == 2) and (rand() < 0.05) and (local_weather.presampling_flag == 1)) + { + if (local_weather.dynamical_convection_flag ==1) + { + ev.correct_altitude_and_age(); + + if (ev.flt > 1.2) # beyond 1.0, sink is still active + { + local_weather.effectVolumeArray = weather_tile_management.delete_from_vector(local_weather.effectVolumeArray,i); + local_weather.n_effectVolumeArray = local_weather.n_effectVolumeArray - 1; + i = i-1; i_max = i_max -1; ecount = ecount + 1; + } + + } + else + {ev.correct_altitude();} + } } +setprop(lw~"effect-volumes/number",getprop(lw~"effect-volumes/number")- ecount); index = index + n; if (i >= local_weather.n_effectVolumeArray) {index = 0;} -var stations = props.globals.getNode(lw~"interpolation").getChildren("station"); -foreach (s; stations) +var ccount = 0; + +if (csize > 0) { - move_weather_station(s); + + var j_max = cindex + nc; + if (j_max > csize -1) {j_max = csize-1;} + + + for (var j = cindex; j < j_max; j = j+1) + { + var cs = weather_tile_management.cloudSceneryArray[j]; + #cs.move(); + if (cs.type !=0) + { + if ((rand() < 0.1) and (local_weather.presampling_flag == 1)) + { + if (local_weather.dynamical_convection_flag ==1) + { + cs.correct_altitude_and_age(); + if (cs.flt > 1.0) # the cloud has reached its maximum age and decays + { + cs.removeNodes(); + weather_tile_management.cloudSceneryArray = weather_tile_management.delete_from_vector(weather_tile_management.cloudSceneryArray,j); + ccount = ccount + 1; + } + } + else + { + cs.correct_altitude(); + } + } + } + } + +cindex = cindex + nc; +if (j >= csize) {cindex = 0;} } -if (getprop(lw~"dynamics-loop-flag") ==1) {settimer( func {weather_dynamics_loop(index); },0);} + + +foreach (s; local_weather.weatherStationArray) + { + s.move(); + } + +if (getprop(lw~"dynamics-loop-flag") ==1) {settimer( func {weather_dynamics_loop(index, cindex); },0);} } +########################################################### +# convective evolution loop +########################################################### + +var convective_loop = func { + +# a 30 second loop needs a different strategy to end, otherwise there is trouble if it is restarted while still running + +if (convective_loop_kill_flag == 1) + {convective_loop_kill_flag = 0; return;} + +var cloud_respawning_interval_s = 30.0; + + +if (getprop(lw~"tmp/thread-status") == "placing") + {if (getprop(lw~"convective-loop-flag") ==1) {settimer( func {convective_loop()}, 5.0);} return;} + +# open the system for write status +setprop(lw~"tmp/buffer-status","placing"); + +if (local_weather.debug_output_flag == 1) + {print("Respawning convective clouds...");} + +for(var i = 0; i < 9; i = i + 1) + { + var index = getprop(lw~"tiles/tile["~i~"]/tile-index"); + if ((index == -1) or (index == 0)) {continue;} + if (getprop(lw~"tiles/tile["~i~"]/generated-flag") != 2) + {continue;} + + var strength = tile_convective_strength[index-1]; + var alt = tile_convective_altitude[index-1]; + var n = weather_tiles.get_n(strength); + if (local_weather.detailed_clouds_flag == 1) + {n = int(0.7 * n);} + + n = n/cloud_convective_lifetime_s * cloud_respawning_interval_s * math.sqrt(0.35); + + n_res = n - int(n); + n = int(n); + if (rand() < n_res) {n=n+1;} + + if (local_weather.debug_output_flag == 1) + {print("Tile: ", index, " n: ", n);} + + var lat = getprop(lw~"tiles/tile["~i~"]/latitude-deg"); + var lon = getprop(lw~"tiles/tile["~i~"]/longitude-deg"); + var alpha = getprop(lw~"tiles/tile["~i~"]/orientation-deg"); + + compat_layer.buffered_tile_latitude = lat; + compat_layer.buffered_tile_longitude = lon; + compat_layer.buffered_tile_alpha = alpha; + compat_layer.buffered_tile_index = index; + + setprop(lw~"tmp/buffer-tile-index", index); + + if (local_weather.presampling_flag == 1) + {var alt_offset = local_weather.alt_20_array[index -1];} + else + {var alt_offset = getprop(lw~"tmp/tile-alt-offset-ft");} + + local_weather.recreate_cumulus(lat,lon, alt + alt_offset, alpha, n, 20000.0, index); + + } + +# close the write process +setprop(lw~"tmp/buffer-status","idle"); + + + +if (getprop(lw~"convective-loop-flag") ==1) {settimer(convective_loop, cloud_respawning_interval_s);} + +} + ########################################################### # generate quadtree structure ########################################################### @@ -266,7 +407,8 @@ if (depth == quadtree_depth +1) { foreach (var c; tree) { - compat_layer.move_cloud(c, current_tile_index_wd); + c.move(); + c.to_target_alt(); cloud_counter = cloud_counter + 1; } return; @@ -396,59 +538,6 @@ t.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); } -#################################################### -# move an effect volume -#################################################### - -var move_effect_volume = func (e) { - -# get the old spacetime position of the effect - -var lat_old = e.getNode("position/latitude-deg").getValue(); -var lon_old = e.getNode("position/longitude-deg").getValue(); -var tile_index = e.getNode("tile-index").getValue(); -var timestamp = e.getNode("timestamp-sec").getValue(); - -# get windfield and time since last update - -var windfield = weather_dynamics.get_windfield(tile_index); -var dt = weather_dynamics.time_lw - timestamp; - - -# update the spacetime position of the effect - -e.getNode("position/latitude-deg",1).setValue(lat_old + windfield[1] * dt * local_weather.m_to_lat); -e.getNode("position/longitude-deg",1).setValue(lon_old + windfield[0] * dt * local_weather.m_to_lon); -e.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); -} - - -#################################################### -# move a weather station -#################################################### - -var move_weather_station = func (s) { - -# get the old spacetime position of the station - -var lat_old = s.getNode("latitude-deg").getValue(); -var lon_old = s.getNode("longitude-deg").getValue(); -var tile_index = s.getNode("tile-index").getValue(); -var timestamp = s.getNode("timestamp-sec").getValue(); - -# get windfield and time since last update - -var windfield = weather_dynamics.get_windfield(tile_index); -var dt = weather_dynamics.time_lw - timestamp; - - -# update the spacetime position of the effect - -s.getNode("latitude-deg",1).setValue(lat_old + windfield[1] * dt * local_weather.m_to_lat); -s.getNode("longitude-deg",1).setValue(lon_old + windfield[0] * dt * local_weather.m_to_lon); -s.getNode("timestamp-sec",1).setValue(weather_dynamics.time_lw); -} - ########################################################### # get local Cartesian coordinates @@ -504,7 +593,12 @@ var lw = "/local-weather/"; # globals var time_lw = 0.0; +var dt_lw = 0.0; var max_clouds_in_loop = 250; +var cloud_max_vertical_speed_fts = 30.0; +var cloud_convective_lifetime_s = 1800.0; # max. lifetime of convective clouds + +var convective_loop_kill_flag = 0; # the quadtree structure @@ -516,6 +610,8 @@ var quadtree_depth = 3; var tile_wind_direction = []; var tile_wind_speed = []; +var tile_convective_altitude = []; +var tile_convective_strength = []; # define these as global, as we need to evaluate them only once per frame # but use them over and over @@ -525,6 +621,7 @@ var cos_beta = 0; var sin_beta = 0; var plane_x = 0; var plane_y = 0; +var windfield = []; var current_tile_index_wd = 0; diff --git a/Nasal/weather_tile_management.nas b/Nasal/weather_tile_management.nas index b6090f3f9..32fc366e5 100644 --- a/Nasal/weather_tile_management.nas +++ b/Nasal/weather_tile_management.nas @@ -1,6 +1,6 @@ ######################################################## # routines to set up, transform and manage weather tiles -# Thorsten Renk, July 2010 +# Thorsten Renk, October 2010 ######################################################## # function purpose @@ -13,9 +13,17 @@ # create_neighbour to set up information for a new neighbouring tile # create_neighbours to initialize the 8 neighbours of the initial tile # buffer_loop to manage the buffering of faraway clouds in an array +# housekeeping_loop to shift clouds from the scenery into the buffer +# wathcdog loop (debug helping structure) # calc_geo to get local Cartesian geometry for latitude conversion # get_lat to get latitude from Cartesian coordinates # get_lon to get longitude from Cartesian coordinates +# delete_from_vector to delete an element 'n' from a vector + +# object purpose +# +# cloudBuffer to store a cloud in a Nasal buffer, to provide methods to move it +# cloudScenery to store info for clouds in scenery, to provide methods to move and evolve them ################################### @@ -38,11 +46,12 @@ var loading_flag = getprop(lw~"tmp/asymmetric-tile-loading-flag"); var this_frame_action_flag = 0; # use this flag to avoid overlapping tile operations setsize(active_tile_list,0); +#append(active_tile_list,0); # tile zero formally containing static objects is always active if (distance_to_load > 3.0 * current_visibility) {distance_to_load = 3.0 * current_visibility;} -if (distance_to_load < 25000.0) - {distance_to_load = 25000.0;} +if (distance_to_load < 29000.0) + {distance_to_load = 29000.0;} foreach (var t; tNode) { @@ -77,10 +86,11 @@ foreach (var t; tNode) { { this_frame_action_flag = 1; setprop(lw~"tiles/tile-counter",getprop(lw~"tiles/tile-counter")+1); - print("Building tile unique index ",getprop(lw~"tiles/tile-counter"), " in direction ",i); + if (local_weather.debug_output_flag == 1) + {print("Building tile unique index ",getprop(lw~"tiles/tile-counter"), " in direction ",i);} append(active_tile_list,getprop(lw~"tiles/tile-counter")); - if (getprop(lw~"config/dynamics-flag") == 1) + if (local_weather.dynamics_flag == 1) { var quadtree = []; weather_dynamics.generate_quadtree_structure(0, quadtree); @@ -97,7 +107,8 @@ foreach (var t; tNode) { if ((d > d_remove) and (flag == 2) and (this_frame_action_flag == 0)) # the tile needs to be deleted if it exists { - print("Removing tile, unique index ", t.getNode("tile-index").getValue()," direction ",i); + if (local_weather.debug_output_flag == 1) + {print("Removing tile, unique index ", t.getNode("tile-index").getValue()," direction ",i);} remove_tile(t.getNode("tile-index").getValue()); t.getNode("generated-flag").setValue(0); this_frame_action_flag = 1; @@ -132,7 +143,8 @@ foreach (var t; tNode) { print("Flag: ",gen_flag); } - print("Changing active tile to direction ", i_min); + if (local_weather.debug_output_flag == 1) + {print("Changing active tile to direction ", i_min);} change_active_tile(i_min); } @@ -169,28 +181,30 @@ setprop(lw~"tiles/tmp/dir-index",dir_index); # do windspeed and orientation before presampling check, but test not to do it again -if (((getprop(lw~"tmp/presampling-flag") == 1) and (getprop(lw~"tmp/presampling-status") == "idle")) or (getprop(lw~"tmp/presampling-flag") == 0)) +if (((local_weather.presampling_flag == 1) and (getprop(lw~"tmp/presampling-status") == "idle")) or (local_weather.presampling_flag == 0)) { var alpha = getprop(lw~"tmp/tile-orientation-deg"); + if ((local_weather.wind_model_flag == 2) or (local_weather.wind_model_flag ==4)) { alpha = alpha + 2.0 * (rand()-0.5) * 10.0; + # account for the systematic spin of weather systems around a low pressure # core dependent on hemisphere if (lat >0.0) {alpha = alpha -3.0;} else {alpha = alpha +3.0;} setprop(lw~"tmp/tile-orientation-deg",alpha); - + # compute the new windspeed var windspeed = getprop(lw~"tmp/windspeed-kt"); windspeed = windspeed + 2.0 * (rand()-0.5) * 2.0; if (windspeed < 0) {windspeed = rand();} - setprop(lw~"tmp/windspeed-kt", windspeed); + setprop(lw~"tmp/windspeed-kt",windspeed); # store the tile orientation and wind strength in an array for fast processing @@ -204,7 +218,6 @@ if (((getprop(lw~"tmp/presampling-flag") == 1) and (getprop(lw~"tmp/presampling- alpha = res[0]; setprop(lw~"tmp/tile-orientation-deg",alpha); - var windspeed = res[1]; setprop(lw~"tmp/windspeed-kt",windspeed); @@ -219,16 +232,17 @@ if (((getprop(lw~"tmp/presampling-flag") == 1) and (getprop(lw~"tmp/presampling- - # now see if we need to presample the terrain -if ((getprop(lw~"tmp/presampling-flag") == 1) and (getprop(lw~"tmp/presampling-status") == "idle")) +if ((local_weather.presampling_flag == 1) and (getprop(lw~"tmp/presampling-status") == "idle")) { local_weather.terrain_presampling_start(lat, lon, 1000, 40000, getprop(lw~"tmp/tile-orientation-deg")); return; } -print("Current tile type: ", code); + +if (local_weather.debug_output_flag == 1) + {print("Current tile type: ", code);} if (getprop(lw~"tmp/tile-management") == "repeat tile") { @@ -248,7 +262,11 @@ if (getprop(lw~"tmp/tile-management") == "repeat tile") else if (code == "cold_sector") {weather_tiles.set_cold_sector_tile();} else if (code == "warm_sector") {weather_tiles.set_warm_sector_tile();} else if (code == "tropical_weather") {weather_tiles.set_tropical_weather_tile();} - else {print("Repeat tile not implemented with this tile type!");} + else + { + print("Repeat tile not implemented with this tile type!"); + setprop("/sim/messages/pilot", "Local weather: Repeat tile not implemented with this tile type!"); + } } else if (getprop(lw~"tmp/tile-management") == "realistic weather") { @@ -370,6 +388,7 @@ else if (getprop(lw~"tmp/tile-management") == "realistic weather") else { print("Realistic weather not implemented with this tile type!"); + setprop("/sim/messages/pilot", "Local weather: Realistic weather not implemented with this tile type!"); } } # end if mode == realistic weather @@ -397,21 +416,34 @@ for (var j = 0; j < s; j=j+1) settimer( func { props.globals.getNode("local-weather/clouds", 1).removeChild("tile",index) },100); -#compat_layer.remove_clouds(index); var effectNode = props.globals.getNode("local-weather/effect-volumes").getChildren("effect-volume"); var ecount = 0; -foreach (var e; effectNode) +for (var i = 0; i < local_weather.n_effectVolumeArray; i = i + 1) { - if (e.getNode("tile-index").getValue() == index) - { - e.remove(); + ev = local_weather.effectVolumeArray[i]; + if (ev.index == index) + { + local_weather.effectVolumeArray = delete_from_vector(local_weather.effectVolumeArray,i); + local_weather.n_effectVolumeArray = local_weather.n_effectVolumeArray - 1; + i = i - 1; ecount = ecount + 1; } + else if (ev.index == 0) # use the opportunity to check if static effects should also be removed + { + if (ev.get_distance() > 80000.0) + { + local_weather.effectVolumeArray = delete_from_vector(local_weather.effectVolumeArray,i); + local_weather.n_effectVolumeArray = local_weather.n_effectVolumeArray - 1; + i = i - 1; + ecount = ecount + 1; + } + } } + setprop(lw~"effect-volumes/number",getprop(lw~"effect-volumes/number")- ecount); # set placement indices to zero to reinitiate search for free positions @@ -422,7 +454,7 @@ setprop(lw~"effect-volumes/effect-placement-index",0); # remove quadtree structures -if (getprop(lw~"config/dynamics-flag") ==1) +if (local_weather.dynamics_flag ==1) { settimer( func {setsize(weather_dynamics.cloudQuadtrees[index-1],0);},1.0); } @@ -568,11 +600,6 @@ t.getNode("timestamp-sec").setValue(f.getNode("timestamp-sec").getValue()); t.getNode("orientation-deg").setValue(f.getNode("orientation-deg").getValue()); t.getNode("code").setValue(f.getNode("code").getValue()); -#if (f.getNode("code").getValue() == "") -# {print("Empty tile code copying from ", from_index," to ", to_index, "!");} - -#if (f.getNode("code").getValue() != "") # we don't copy an empty code, that can trigger errors -# {t.getNode("code").setValue(f.getNode("code").getValue());} } @@ -630,7 +657,7 @@ setprop(lw~"tiles/tile[0]/generated-flag",0); setprop(lw~"tiles/tile[0]/tile-index",-1); setprop(lw~"tiles/tile[0]/code",""); setprop(lw~"tiles/tile[0]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[0]/orientation-deg",0.0); +setprop(lw~"tiles/tile[0]/orientation-deg",alpha); x = 0.0; y = 40000.0; setprop(lw~"tiles/tile[1]/latitude-deg",blat + get_lat(x,y,phi)); @@ -639,7 +666,7 @@ setprop(lw~"tiles/tile[1]/generated-flag",0); setprop(lw~"tiles/tile[1]/tile-index",-1); setprop(lw~"tiles/tile[1]/code",""); setprop(lw~"tiles/tile[1]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[1]/orientation-deg",0.0); +setprop(lw~"tiles/tile[1]/orientation-deg",alpha); x = 40000.0; y = 40000.0; setprop(lw~"tiles/tile[2]/latitude-deg",blat + get_lat(x,y,phi)); @@ -648,7 +675,7 @@ setprop(lw~"tiles/tile[2]/generated-flag",0); setprop(lw~"tiles/tile[2]/tile-index",-1); setprop(lw~"tiles/tile[2]/code",""); setprop(lw~"tiles/tile[2]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[2]/orientation-deg",0.0); +setprop(lw~"tiles/tile[2]/orientation-deg",alpha); x = -40000.0; y = 0.0; setprop(lw~"tiles/tile[3]/latitude-deg",blat + get_lat(x,y,phi)); @@ -657,7 +684,7 @@ setprop(lw~"tiles/tile[3]/generated-flag",0); setprop(lw~"tiles/tile[3]/tile-index",-1); setprop(lw~"tiles/tile[3]/code",""); setprop(lw~"tiles/tile[3]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[3]/orientation-deg",0.0); +setprop(lw~"tiles/tile[3]/orientation-deg",alpha); # this is the current tile x = 0.0; y = 0.0; @@ -677,7 +704,7 @@ setprop(lw~"tiles/tile[5]/generated-flag",0); setprop(lw~"tiles/tile[5]/tile-index",-1); setprop(lw~"tiles/tile[5]/code",""); setprop(lw~"tiles/tile[5]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[5]/orientation-deg",0.0); +setprop(lw~"tiles/tile[5]/orientation-deg",alpha); x = -40000.0; y = -40000.0; setprop(lw~"tiles/tile[6]/latitude-deg",blat + get_lat(x,y,phi)); @@ -686,7 +713,7 @@ setprop(lw~"tiles/tile[6]/generated-flag",0); setprop(lw~"tiles/tile[6]/tile-index",-1); setprop(lw~"tiles/tile[6]/code",""); setprop(lw~"tiles/tile[6]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[6]/orientation-deg",0.0); +setprop(lw~"tiles/tile[6]/orientation-deg",alpha); x = 0.0; y = -40000.0; setprop(lw~"tiles/tile[7]/latitude-deg",blat + get_lat(x,y,phi)); @@ -695,7 +722,7 @@ setprop(lw~"tiles/tile[7]/generated-flag",0); setprop(lw~"tiles/tile[7]/tile-index",-1); setprop(lw~"tiles/tile[7]/code",""); setprop(lw~"tiles/tile[7]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[7]/orientation-deg",0.0); +setprop(lw~"tiles/tile[7]/orientation-deg",alpha); x = 40000.0; y = -40000.0; setprop(lw~"tiles/tile[8]/latitude-deg",blat + get_lat(x,y,phi)); @@ -704,7 +731,7 @@ setprop(lw~"tiles/tile[8]/generated-flag",0); setprop(lw~"tiles/tile[8]/tile-index",-1); setprop(lw~"tiles/tile[8]/code",""); setprop(lw~"tiles/tile[8]/timestamp-sec",weather_dynamics.time_lw); -setprop(lw~"tiles/tile[8]/orientation-deg",0.0); +setprop(lw~"tiles/tile[8]/orientation-deg",alpha); } @@ -772,7 +799,7 @@ for (var i = index; i < i_max; i = i+1) # if wind drift is on, move the cloud - if (getprop(lw~"config/dynamics-flag") == 1) + if (local_weather.dynamics_flag == 1) { c.move(); } @@ -797,8 +824,30 @@ for (var i = index; i < i_max; i = i+1) if (d < d_comp) # insert the cloud into scenery and delete from buffer { - setprop(lw~"tmp/buffer-tile-index",c.index); + compat_layer.buffered_tile_index = c.index; + + if (local_weather.dynamics_flag == 1) # assemble the current tile coordinates for insertion into quadtree + { + for (var j = 0; j < 9; j=j+1) + { + if (getprop(lw~"tiles/tile["~j~"]/tile-index") == c.index) + { + compat_layer.buffered_tile_latitude = getprop(lw~"tiles/tile["~j~"]/latitude-deg"); + compat_layer.buffered_tile_longitude = getprop(lw~"tiles/tile["~j~"]/longitude-deg"); + compat_layer.buffered_tile_alpha=getprop(lw~"tiles/tile["~j~"]/orientation-deg"); + break; + } + } + } + + if ((c.type !=0) and (local_weather.dynamics_flag == 1)) # set additional info for Cumulus clouds + { + compat_layer.cloud_mean_altitude = c.alt - c.rel_alt; + compat_layer.cloud_flt = c.flt; + compat_layer.cloud_evolution_timestamp = c.evolution_timestamp; + } compat_layer.create_cloud(c.path, c.lat, c.lon, c.alt, c.orientation); + n_cloudSceneryArray = n_cloudSceneryArray +1; cloudBufferArray = delete_from_vector(cloudBufferArray,i); i = i -1; i_max = i_max - 1; n_max = n_max - 1; deleted_flag = 1; @@ -826,6 +875,7 @@ var housekeeping_loop = func (index) { var n = 5; var n_max = size(cloudSceneryArray); +n_cloudSceneryArray = n_max; var s = size(active_tile_list); setprop(lw~"clouds/cloud-scenery-count",n_max); @@ -869,6 +919,7 @@ for (var i = index; i < i_max; i = i+1) c.removeNodes(); cloudSceneryArray = delete_from_vector(cloudSceneryArray,i); i = i -1; i_max = i_max - 1; n_max = n_max - 1; + n_cloudSceneryArray = n_cloudSceneryArray -1; continue; } @@ -893,6 +944,7 @@ for (var i = index; i < i_max; i = i+1) append(cloudBufferArray,c.to_buffer()); cloudSceneryArray = delete_from_vector(cloudSceneryArray,i); i = i -1; i_max = i_max - 1; n_max = n_max - 1; + n_cloudSceneryArray = n_cloudSceneryArray -1; continue; } @@ -921,11 +973,13 @@ foreach(t; tNode) var code = t.getNode("code").getValue(); var index = t.getNode("tile-index").getValue(); var flag = t.getNode("generated-flag").getValue(); + var alpha = t.getNode("orientation-deg").getValue(); - print(i,": code: ", code, " unique id: ", index, " flag: ", flag); + print(i,": code: ", code, " unique id: ", index, " flag: ", flag, " alpha: ",alpha); i = i + 1; } +print("alpha: ",getprop(lw~"tmp/tile-orientation-deg")); print("===================="); @@ -963,8 +1017,9 @@ var active_tile_list = []; var cloudBufferArray = []; + var cloudBuffer = { - new: func(lat, lon, alt, path, orientation, index) { + new: func(lat, lon, alt, path, orientation, index, type) { var c = { parents: [cloudBuffer] }; c.lat = lat; c.lon = lon; @@ -972,6 +1027,7 @@ var cloudBuffer = { c.path = path; c.orientation = orientation; c.index = index; + c.type = type; return c; }, get_distance: func { @@ -1003,13 +1059,21 @@ var cloudBuffer = { var cloudSceneryArray = []; +var n_cloudSceneryArray = 0; var cloudScenery = { - new: func(index, cloudNode, modelNode) { + new: func(index, type, cloudNode, modelNode) { var c = { parents: [cloudScenery] }; c.index = index; + c.type = type; c.cloudNode = cloudNode; c.modelNode = modelNode; + c.calt = cloudNode.getNode("position/altitude-ft"); + c.clat = cloudNode.getNode("position/latitude-deg"); + c.clon = cloudNode.getNode("position/longitude-deg"); + c.alt = c.calt.getValue(); + c.lat = c.clat.getValue(); + c.lon = c.clon.getValue(); return c; }, removeNodes: func { @@ -1017,17 +1081,20 @@ var cloudScenery = { me.cloudNode.remove(); }, to_buffer: func { - var lat = me.cloudNode.getNode("position/latitude-deg").getValue(); - var lon = me.cloudNode.getNode("position/longitude-deg").getValue(); - var alt = me.cloudNode.getNode("position/altitude-ft").getValue(); var path = me.modelNode.getNode("path").getValue(); var orientation = me.cloudNode.getNode("orientation/true-heading-deg").getValue(); - var b = cloudBuffer.new(lat, lon, alt, path, orientation, me.index); + var b = cloudBuffer.new(me.lat, me.lon, me.alt, path, orientation, me.index, me.type); - if (getprop(lw~"config/dynamics-flag") == 1) + if (local_weather.dynamics_flag == 1) { - var timestamp = me.cloudNode.getNode("timestamp-sec").getValue(); - b.timestamp = timestamp; + b.timestamp = me.timestamp; + + if (me.type !=0) # Cumulus clouds get some extra info + { + b.flt = me.flt; + b.rel_alt = me.rel_alt; + b.evolution_timestamp = me.evolution_timestamp; + } } me.removeNodes(); @@ -1036,21 +1103,106 @@ var cloudScenery = { get_distance: func { var pos = geo.aircraft_position(); var cpos = geo.Coord.new(); - var lat = me.cloudNode.getNode("position/latitude-deg").getValue(); - var lon = me.cloudNode.getNode("position/longitude-deg").getValue(); + var lat = me.clat.getValue(); + var lon = me.clon.getValue(); cpos.set_latlon(lat,lon,0.0); return pos.distance_to(cpos); }, get_course: func { var pos = geo.aircraft_position(); var cpos = geo.Coord.new(); - var lat = me.cloudNode.getNode("position/latitude-deg").getValue(); - var lon = me.cloudNode.getNode("position/longitude-deg").getValue(); + var lat = me.clat.getValue(); + var lon = me.clon.getValue(); cpos.set_latlon(lat,lon,0.0); return pos.course_to(cpos); }, get_altitude: func { - return me.cloudNode.getNode("position/altitude-ft").getValue(); + return me.calt.getValue(); + }, + correct_altitude: func { + var lat = me.clat.getValue(); + var lon = me.clon.getValue(); + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + local_weather.alt_20_array[me.index-1]; + var elevation = compat_layer.get_elevation(lat, lon); + var alt_new = local_weather.get_convective_altitude(convective_alt, elevation, me.index); + me.target_alt = alt_new + me.rel_alt; + }, + correct_altitude_and_age: func { + var lat = me.lat; + var lon = me.lon; + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + local_weather.alt_20_array[me.index-1]; + + # get terrain elevation and landcover + + var elevation = -1.0; var p_cover = 0.2;# defaults if there is no info + var info = geodinfo(lat, lon); + if (info != nil) + { + elevation = info[0] * local_weather.m_to_ft; + if (info[1] != nil) + { + var landcover = info[1].names[0]; + if (contains(local_weather.landcover_map,landcover)) {p_cover = local_weather.landcover_map[landcover];} + else {p_cover = 0.2;} + } + } + + + # correct the altitude + var alt_new = local_weather.get_convective_altitude(convective_alt, elevation, me.index); + me.target_alt = alt_new + me.rel_alt; + + # correct fractional lifetime based on terrain below + var current_lifetime = math.sqrt(p_cover)/math.sqrt(0.35) * weather_dynamics.cloud_convective_lifetime_s; + var fractional_increase = (weather_dynamics.time_lw - me.evolution_timestamp)/current_lifetime; + me.flt = me.flt + fractional_increase; + me.evolution_timestamp = weather_dynamics.time_lw; + }, + to_target_alt: func { + if (me.type ==0) {return;} + var alt_diff = me.target_alt - me.alt; + if (alt_diff == 0.0) {return;} + var max_vertical_movement_ft = weather_dynamics.dt_lw * weather_dynamics.cloud_max_vertical_speed_fts; + if (abs(alt_diff) < max_vertical_movement_ft) + { + me.alt = me.target_alt; + } + else if (alt_diff < 0) + { + me.alt = me.alt -max_vertical_movement_ft; + } + else + { + me.alt = me.alt + max_vertical_movement_ft; + } + setprop(lw~"clouds/tile["~me.index~"]/cloud["~me.write_index~"]/position/altitude-ft", me.alt); + }, + move: func { + + + var windfield = weather_dynamics.windfield; + var dt = weather_dynamics.time_lw - me.timestamp; + + me.lat = me.lat + windfield[1] * dt * local_weather.m_to_lat; + me.lon = me.lon + windfield[0] * dt * local_weather.m_to_lon; + + setprop(lw~"clouds/tile["~me.index~"]/cloud["~me.write_index~"]/position/latitude-deg", me.lat); + setprop(lw~"clouds/tile["~me.index~"]/cloud["~me.write_index~"]/position/longitude-deg", me.lon); + + me.timestamp = weather_dynamics.time_lw; + + }, + show: func { + var lat = me.clat.getValue(); + var lon = me.clon.getValue(); + var alt = me.calt.getValue(); + + var convective_alt = weather_dynamics.tile_convective_altitude[me.index-1] + local_weather.alt_20_array[me.index-1]; + var elevation = compat_layer.get_elevation(lat, lon); + print("lat :", lat, " lon: ", lon, " alt: ", alt); + print("path: ", me.modelNode.getNode("path").getValue()); + print("elevation: ", compat_layer.get_elevation(lat, lon), " cloudbase: ", convective_alt); + if (me.type !=0) {print("relative: ", me.rel_alt, "target: ", me.target_alt);} }, }; diff --git a/Nasal/weather_tiles.nas b/Nasal/weather_tiles.nas index a7b7bc33d..c306709c4 100644 --- a/Nasal/weather_tiles.nas +++ b/Nasal/weather_tiles.nas @@ -1,7 +1,7 @@ ######################################################## # routines to set up weather tiles -# Thorsten Renk, July 2010 +# Thorsten Renk, October 2010 ######################################################## # function purpose @@ -22,7 +22,7 @@ var tile_start = func { # set thread lock -if (getprop(lw~"tmp/thread-flag") == 1){setprop(lw~"tmp/thread-status","computing");} +if (local_weather.thread_flag == 1){setprop(lw~"tmp/thread-status","computing");} # set the tile code var current_code = getprop(lw~"tiles/code"); @@ -51,9 +51,10 @@ var dir_index = getprop(lw~"tiles/tmp/dir-index"); local_weather.assemble_effect_array(); -print("Finished setting up tile type ",current_code, " in direction ",dir_index); +if (local_weather.debug_output_flag == 1) + {print("Finished setting up tile type ",current_code, " in direction ",dir_index);} -if (getprop(lw~"tmp/thread-flag") == 1) +if (local_weather.thread_flag == 1) {setprop(lw~"tmp/thread-status","placing");} else # without worker threads, tile generation is complete at this point {props.globals.getNode(lw~"tiles").getChild("tile",dir_index).getNode("generated-flag").setValue(2);} @@ -97,10 +98,17 @@ local_weather.set_weather_station(blat, blon, 20000.0, 14.0, 12.0, 29.78); #create_2_8_sstratus_streak(blat, blon,5000.0,0.0); -create_4_8_cirrocumulus_bank(blat, blon, 6000.0, 0.0); +#create_4_8_cirrocumulus_bank(blat, blon, 6000.0, 0.0); + +#create_4_8_cirrocumulus_streaks(blat, blon, 6000.0, 0.0); + +# create_2_8_cirrocumulus(blat, blon, 6000.0, 0.0); #create_detailed_stratocumulus_bank(blat, blon,5000.0+alt_offset,0.0); +create_4_8_altocumulus_perlucidus(blat, blon, 10000.0, 0.0); + +local_weather.create_effect_volume(3, blat, blon, 20000.0, 7000.0, alpha, 0.0, 80000.0, -1, -1, -1, -1, 15.0, -3,-1); tile_finished(); @@ -143,12 +151,43 @@ var p = 1025.0 + rand() * 6.0; p = adjust_p(p); # and set them at the tile center local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); -# weak cumulus development var alt = spread * 1000; -var strength = rand() * 0.05; +var strength = 0.0; -local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); +var rn = rand(); + + +if (rn > 0.5) + { + # cloud scenario 1: weak cumulus development and blue thermals + + strength = rand() * 0.05; + local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); + + # generate a few blue thermals + + if (local_weather.generate_thermal_lift_flag !=0) + { + local_weather.generate_thermal_lift_flag = 3; + strength = rand() * 0.4; + local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); + local_weather.generate_thermal_lift_flag = 2; + } + + } +else if (rn > 0.0) + { + # cloud scenario 2: some Cirrocumulus patches + + create_2_8_cirrocumulus(blat, blon, alt + alt_offset + 5000.0, alpha); + } + + +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -192,36 +231,35 @@ var p = 1019.0 + rand() * 6.0; p = adjust_p(p); # and set them at the tile center local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); -# moderate cumulus development var alt = spread * 1000; +var strength = 0.0; var rn = rand(); + if (rn > 0.66) { # cloud scenario 1: possible Cirrus over Cumulus - var strength = 0.2 + rand() * 0.4; + strength = 0.2 + rand() * 0.4; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); # one or two Cirrus clouds x = 2000.0 + rand() * 16000.0; y = 2.0 * (rand()-0.5) * 18000; - alt = 25000.0 + rand() * 5000.0; var path = local_weather.select_cloud_model("Cirrus", "small"); - compat_layer.create_cloud(path, blat + get_lat(x,y,phi), blon+get_lon(x,y,phi), alt + alt_offset,alpha); + compat_layer.create_cloud(path, blat + get_lat(x,y,phi), blon+get_lon(x,y,phi), alt + alt_offset + 25000.0 + rand() * 5000.0,alpha); if (rand() > 0.5) { x = -2000.0 - rand() * 16000.0; y = 2.0 * (rand()-0.5) * 18000; - alt = 25000.0 + rand() * 5000.0; var path = local_weather.select_cloud_model("Cirrus", "small"); - compat_layer.create_cloud(path, blat + get_lat(x,y,phi), blon+get_lon(x,y,phi), alt + alt_offset,alpha); + compat_layer.create_cloud(path, blat + get_lat(x,y,phi), blon+get_lon(x,y,phi), alt + alt_offset +25000.0 + rand() * 5000.0,alpha); } } @@ -229,7 +267,7 @@ else if (rn > 0.33) { # cloud scenario 2: Cirrostratus over weak Cumulus - var strength = 0.2 + rand() * 0.2; + strength = 0.2 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); create_2_8_cirrostratus(blat, blon, alt+alt_offset+25000.0, alpha); @@ -239,7 +277,7 @@ else if (rn > 0.0) { # cloud scenario 3: Cirrocumulus sheet over Cumulus - var strength = 0.2 + rand() * 0.2; + strength = 0.2 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); x = 2.0 * (rand()-0.5) * 5000; @@ -251,6 +289,12 @@ else if (rn > 0.0) } +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); + + tile_finished(); } @@ -296,25 +340,26 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # now a random selection of different possible cloud configuration scenarios var alt = spread * 1000; +var strength = 0.0; var rn = rand(); -if (rn > 0.833) +if (rn > 0.875) { # cloud scenario 1: Altocumulus patch over weak Cumulus - var strength = 0.1 + rand() * 0.1; + strength = 0.1 + rand() * 0.1; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); x = 2.0 * (rand()-0.5) * 5000; y = 2.0 * (rand()-0.5) * 5000; - local_weather.create_streak("Altocumulus",blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 12000.0+alt+alt_offset,1500.0,30,1000.0,0.2,800.0,30,1000.0,0.2,800.0,alpha ,1.0); + local_weather.create_streak("Altocumulus",blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 12000.0+alt+alt_offset,1500.0,30,1000.0,0.2,1200.0,30,1000.0,0.2,1200.0,alpha ,1.0); } -else if (rn > 0.666) +else if (rn > 0.750) { # cloud scenario 2: Altocumulus streaks - var strength = 0.15 + rand() * 0.2; + strength = 0.15 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); x = 2.0 * (rand()-0.5) * 10000; @@ -322,14 +367,14 @@ else if (rn > 0.666) local_weather.create_streak("Altocumulus",blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 12000.0+alt+alt_offset,1500.0,25,700.0,0.2,800.0,10,700.0,0.2,800.0,alpha ,1.4); x = 2.0 * (rand()-0.5) * 10000; y = 2.0 * (rand()-0.5) * 10000; - local_weather.create_streak("Altocumulus",blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 12000.0+alt+alt_offset,1500.0,22,750.0,0.2,800.0,8,750.0,0.2,800.0,alpha ,1.1); + local_weather.create_streak("Altocumulus",blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 12000.0+alt+alt_offset,1500.0,22,750.0,0.2,1000.0,8,750.0,0.2,1000.0,alpha ,1.1); } -else if (rn > 0.5) +else if (rn > 0.625) { # cloud scenario 3: Cirrus - var strength = 0.1 + rand() * 0.1; + strength = 0.1 + rand() * 0.1; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); x = 2.0 * (rand()-0.5) * 3000; @@ -337,11 +382,11 @@ else if (rn > 0.5) local_weather.create_streak("Cirrus",blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 22000.0+alt+alt_offset,1500.0,3,9000.0,0.0, 800.0, 1,8000.0,0.0,800,0,alpha ,1.0); } -else if (rn > 0.333) +else if (rn > 0.5) { # cloud scenario 4: Cumulonimbus banks - var strength = 0.7 + rand() * 0.3; + strength = 0.7 + rand() * 0.3; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); for (var i = 0; i < 3; i = i + 1) @@ -352,11 +397,11 @@ else if (rn > 0.333) create_cloud_bank("Cumulonimbus", blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), alt+alt_offset, 1600.0, 800.0, 3000.0, 9, alpha); } } -else if (rn > 0.166) +else if (rn > 0.375) { # cloud scenario 5: scattered Stratus - var strength = 0.4 + rand() * 0.2; + strength = 0.4 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); var size_offset = 0.5 * m_to_ft * local_weather.cloud_vertical_size_map["Stratus_structured"]; @@ -364,11 +409,11 @@ else if (rn > 0.166) local_weather.create_streak("Stratus (structured)",blat, blon, alt+6000.0+alt_offset+size_offset,1000.0,18,0.0,0.3,20000.0,18,0.0,0.3,20000.0,0.0,1.0); } -else if (rn > 0.0) +else if (rn > 0.250) { # cloud scenario 6: Cirrocumulus sheets - var strength = 0.2 + rand() * 0.2; + strength = 0.2 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); @@ -383,10 +428,31 @@ else if (rn > 0.0) var path = local_weather.select_cloud_model("Cirrocumulus", "large"); compat_layer.create_cloud(path, blat + get_lat(x,y,phi), blon+get_lon(x,y,phi), alt + alt_offset +20000+ alt_variation,alpha+ beta); } + } +else if (rn > 0.125) + { + # cloud scenario 7: Thin Cirrocumulus sheets over weak Cumulus + + strength = 0.05 + rand() * 0.1; + local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); + + create_4_8_cirrocumulus_streaks(blat, blon, alt + 6000.0 + alt_offset, alpha); + + } +else if (rn > 0.0) + { + # cloud scenario 8: Altocumulus perlucidus + + create_4_8_altocumulus_perlucidus(blat, blon, alt + 10000.0 + alt_offset, alpha); } +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); + tile_finished(); @@ -435,6 +501,7 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # altitude for the lowest layer var alt = spread * 1000.0; +var strength = 0.0; # now a random selection of different possible cloud configuration scenarios @@ -484,6 +551,11 @@ else if (rn > 0.0) create_4_8_cirrocumulus_bank(blat, blon, alt+alt_offset + 12000.0, alpha); } +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); + tile_finished(); } @@ -531,6 +603,7 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # altitude for the lowest layer var alt = spread * 1000.0; +var strength = 0.0; var rn = rand(); @@ -547,16 +620,16 @@ if (rn > 0.75) var beta = rand() * 360.0; local_weather.create_layer("Nimbus", blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), alt+alt_offset, 500.0, 12000.0, 7000.0, beta, 1.0, 0.2, 1, 1.0); - local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 10000.0, 6000.0, beta, 0.0, alt + alt_offset, 5000.0, 0.3, -1, -1, -1,0 ); - local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 9000.0, 5000.0, beta, 0.0, alt+alt_offset-300.0, 1500.0, 0.5, -1, -1, -1,0 ); + local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 10000.0, 6000.0, beta, 0.0, alt + alt_offset, 5000.0, 0.3, -1, -1, -1,0,-1 ); + local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 9000.0, 5000.0, beta, 0.0, alt+alt_offset-300.0, 1500.0, 0.5, -1, -1, -1,0,-1 ); x = 2.0 * (rand()-0.5) * 11000.0; y = 2.0 * (rand()-0.5) * 11000.0; var beta = rand() * 360.0; local_weather.create_layer("Nimbus", blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), alt+alt_offset, 500.0, 10000.0, 6000.0, beta, 1.0, 0.2, 1, 1.0); - local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 9000.0, 5000.0, beta, 0.0, alt + alt_offset, 5000.0, 0.3, -1, -1, -1,0 ); - local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 8000.0, 4000.0, beta, 0.0, alt+alt_offset-300.0, 1500.0, 0.5, -1, -1, -1,0 ); + local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 9000.0, 5000.0, beta, 0.0, alt + alt_offset, 5000.0, 0.3, -1, -1, -1,0 ,-1); + local_weather.create_effect_volume(2, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 8000.0, 4000.0, beta, 0.0, alt+alt_offset-300.0, 1500.0, 0.5, -1, -1, -1,0,-1 ); create_4_8_sstratus_undulatus(blat, blon, alt+alt_offset +3000.0, alpha); create_2_8_tstratus(blat, blon, alt+alt_offset +6000.0, alpha); @@ -569,8 +642,8 @@ else if (rn >0.5) alt = alt + local_weather.cloud_vertical_size_map["Stratus"] * 0.5 * m_to_ft; create_8_8_stratus(blat, blon, alt+alt_offset,alpha); - local_weather.create_effect_volume(3, blat, blon, 18000.0, 18000.0, 0.0, 0.0, 1800.0, 8000.0, -1, -1, -1, -1, 0); - local_weather.create_effect_volume(3, blat, blon, 14000.0, 14000.0, 0.0, 0.0, 1500.0, 6000.0, 0.1, -1, -1, -1,0 ); + local_weather.create_effect_volume(3, blat, blon, 18000.0, 18000.0, 0.0, 0.0, 1800.0, 8000.0, -1, -1, -1, -1, 0,-1); + local_weather.create_effect_volume(3, blat, blon, 14000.0, 14000.0, 0.0, 0.0, 1500.0, 6000.0, 0.1, -1, -1, -1,0,-1 ); create_2_8_sstratus(blat, blon, alt+alt_offset+3000,alpha); } else if (rn >0.25) @@ -594,6 +667,11 @@ else if (rn >0.0) create_2_8_sstratus(blat, blon, alt+alt_offset+6000,alpha); } +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); + tile_finished(); } @@ -643,15 +721,15 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # set a closed Nimbostratus layer var alt = spread * 1000.0 + local_weather.cloud_vertical_size_map["Nimbus"] * 0.5 * m_to_ft; +var strength = 0.0; -#print("alt: ",spread*1000); create_8_8_nimbus(blat, blon, alt+alt_offset, alpha); # and a precipitation layer below, more rain in the center of the tile -local_weather.create_effect_volume(3, blat, blon, 20000.0, 20000.0, alpha, 0.0, alt + alt_offset, 3000.0, 0.3, -1, -1, -1,0 ); -local_weather.create_effect_volume(3, blat , blon, 16000.0, 16000.0, alpha, 0.0, alt + alt_offset - 300.0, 1500.0, 0.5, -1, -1, -1,0 ); +local_weather.create_effect_volume(3, blat, blon, 20000.0, 20000.0, alpha, 0.0, alt + alt_offset, 3000.0, 0.3, -1, -1, -1,0 ,0.95); +local_weather.create_effect_volume(3, blat , blon, 16000.0, 16000.0, alpha, 0.0, alt + alt_offset - 300.0, 1500.0, 0.5, -1, -1, -1,0 ,0.8); # and some broken Stratus cover above @@ -661,6 +739,10 @@ var rn = rand(); if (rn > 0.5){create_4_8_stratus_patches(blat, blon, alt+alt_offset+3000.0, alpha);} else {create_4_8_stratus(blat, blon, alt+alt_offset+3000.0, alpha);} +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -705,6 +787,7 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # altitude for the lowest layer var alt = spread * 1000.0; +var strength = 0.0; var rn = rand(); @@ -713,7 +796,7 @@ var rn = rand(); if (rn > 0.5) { # cloud scenario 1: strong Cumulus development - var strength = 0.8 + rand() * 0.2; + strength = 0.8 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); } @@ -721,7 +804,7 @@ else if (rn > 0.0) { # cloud scenario 2: Cirrocumulus sheets over Cumulus - var strength = 0.6 + rand() * 0.2; + strength = 0.6 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); for (var i = 0; i < 2; i = i + 1) @@ -738,6 +821,12 @@ else if (rn > 0.0) } +#local_weather.create_effect_volume(3, blat, blon, 20000.0, 7000.0, alpha, 0.0, 80000.0, -1, -1, -1, -1, 15.0, -3,-1); + +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -782,6 +871,7 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # altitude for the lowest layer var alt = spread * 1000.0; +var strength = 0.0; var rn = rand(); @@ -789,14 +879,14 @@ var rn = rand(); if (rn > 0.8) { # cloud scenario 1: weak Cumulus development, some Cirrostratus - var strength = 0.3 + rand() * 0.2; + strength = 0.3 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); create_4_8_cirrostratus_patches(blat, blon, alt+alt_offset+25000.0, alpha); } else if (rn > 0.6) { # cloud scenario 2: weak Cumulus development under Altostratus streaks - var strength = 0.1 + rand() * 0.1; + strength = 0.1 + rand() * 0.1; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); var size_offset = 0.5 * m_to_ft * local_weather.cloud_vertical_size_map["Stratus_structured"]; @@ -807,7 +897,7 @@ else if (rn > 0.6) else if (rn > 0.4) { # cloud scenario 3: Cirrocumulus bank - var strength = 0.05 + rand() * 0.05; + strength = 0.05 + rand() * 0.05; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); var size_offset = 0.5 * m_to_ft * local_weather.cloud_vertical_size_map["Cirrocumulus"]; @@ -818,7 +908,7 @@ else if (rn > 0.4) else if (rn > 0.2) { # cloud scenario 4: Cirrocumulus undulatus - var strength = 0.05 + rand() * 0.05; + strength = 0.05 + rand() * 0.05; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); var size_offset = 0.5 * m_to_ft * local_weather.cloud_vertical_size_map["Cirrocumulus"]; @@ -830,7 +920,7 @@ else if (rn > 0.0) { # cloud scenario 5: weak Cumulus development under scattered Altostratus - var strength = 0.15 + rand() * 0.15; + strength = 0.15 + rand() * 0.15; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); var size_offset = 0.5 * m_to_ft * local_weather.cloud_vertical_size_map["Stratus_structured"]; @@ -839,6 +929,10 @@ else if (rn > 0.0) } +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -892,6 +986,7 @@ local_weather.set_weather_station(blat, blon, vis, T, D, p * hp_to_inhg); # altitude for the lowest layer var alt = spread * 1000.0; +var strength = 0.0; # tropical weather has a strong daily variation, call thunderstorm only in the correct afternoon time window @@ -901,7 +996,7 @@ var rn = rand(); if (rn > (t_factor * t_factor * t_factor * t_factor)) # call a normal convective cloud system { -var strength = 1.0 + rand() * 0.2; +strength = 1.0 + rand() * 0.2; local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); } @@ -954,10 +1049,15 @@ local_weather.cumulus_exclusion_layer(blat, blon, alt+alt_offset, n, 20000.0, 20 # some turbulence in the convection layer -local_weather.create_effect_volume(3, blat, blon, 20000.0, 20000.0, alpha, 0.0, alt+3000.0+alt_offset, -1, -1, -1, 0.4, -1,0 ); +local_weather.create_effect_volume(3, blat, blon, 20000.0, 20000.0, alpha, 0.0, alt+3000.0+alt_offset, -1, -1, -1, 0.4, -1,0 ,-1); } # end thundercloud placement +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); + tile_finished(); } @@ -1019,6 +1119,7 @@ local_weather.set_weather_station(blat +get_lat(x,y,phi), blon + get_lon(x,y,phi # altitude for the lowest layer var alt = spread * 1000.0; +var strength = 0.0; # thunderstorms first @@ -1072,12 +1173,17 @@ local_weather.create_streak("Stratus (thin)",blat+get_lat(x,y,phi), blon+get_lon # some turbulence in the convection layer x=0.0; y = 5000.0; -local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 11000.0, alpha, 0.0, alt+3000.0+alt_offset, -1, -1, -1, 0.4, -1,0 ); +local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 11000.0, alpha, 0.0, alt+3000.0+alt_offset, -1, -1, -1, 0.4, -1,0 ,-1); # some rain and reduced visibility in its core x=0.0; y = 5000.0; -local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 8000.0, alpha, 0.0, alt+alt_offset, 10000.0, 0.1, -1, -1, -1,0 ); +local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 8000.0, alpha, 0.0, alt+alt_offset, 10000.0, 0.1, -1, -1, -1,0,-1 ); + +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -1145,6 +1251,12 @@ local_weather.set_weather_station(blat +get_lat(x,y,phi), blon + get_lon(x,y,phi # altitude for the lowest layer var alt = spread * 1000.0; +# some weak Cumulus development + +var strength = 0.1 + rand() * 0.1; +local_weather.create_cumosys(blat,blon, alt + alt_offset, get_n(strength), 20000.0); + + # high Cirrus leading x = 2.0 * (rand()-0.5) * 1000; @@ -1165,6 +1277,11 @@ for (var i=0; i<6; i=i+1) } +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); + tile_finished(); } @@ -1230,7 +1347,7 @@ local_weather.set_weather_station(blat +get_lat(x,y,phi), blon + get_lon(x,y,phi # altitude for the lowest layer var alt = spread * 1000.0; - +var strength = 0.0; # followed by random patches of Cirrostratus @@ -1273,6 +1390,10 @@ var y = 8000.0; local_weather.create_streak("Stratus",blat +get_lat(x,y,phi), blon+get_lon(x,y,phi), alt+alt_offset +5000.0,1000.0,30,0.0,0.2,20000.0,10,0.0,0.2,12000.0,alpha,1.0); +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -1339,7 +1460,7 @@ local_weather.set_weather_station(blat +get_lat(x,y,phi), blon + get_lon(x,y,phi # altitude for the lowest layer var alt = spread * 1000.0 + local_weather.cloud_vertical_size_map["Nimbus"] * 0.5 * m_to_ft; - +var strength = 0.0; # closed Stratus layer @@ -1364,12 +1485,18 @@ local_weather.create_streak("Nimbus",blat +get_lat(x,y,phi), blon+get_lon(x,y,ph # some rain beneath the stratus x=0.0; y = -10000.0; -local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 10000.0, alpha, 0.0, alt+alt_offset+1000, vis * 0.7, 0.1, -1, -1, -1,0 ); +local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 10000.0, alpha, 0.0, alt+alt_offset+1000, vis * 0.7, 0.1, -1, -1, -1,0 ,-1); # heavier rain beneath the Nimbostratus x=0.0; y = 10000.0; -local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 10000.0, alpha, 0.0, alt+alt_offset, vis * 0.5, 0.3, -1, -1, -1,0 ); +local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 10000.0, alpha, 0.0, alt+alt_offset, vis * 0.5, 0.3, -1, -1, -1,0,-1 ); + + +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -1436,6 +1563,7 @@ local_weather.set_weather_station(blat +get_lat(x,y,phi), blon + get_lon(x,y,phi # altitude for the lowest layer var alt = spread * 1000.0 + local_weather.cloud_vertical_size_map["Nimbus"] * 0.5 * m_to_ft; +var strength = 0.0; # low Nimbostratus layer @@ -1461,7 +1589,13 @@ local_weather.create_streak("Nimbus",blat +get_lat(x,y,phi), blon+get_lon(x,y,ph # rain beneath the Nimbostratus x=0.0; y = -5000.0; -local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 15000.0, alpha, 0.0, alt+alt_offset, vis * 0.5, 0.3, -1, -1, -1,0 ); +local_weather.create_effect_volume(3, blat+get_lat(x,y,phi), blon+get_lon(x,y,phi), 20000.0, 15000.0, alpha, 0.0, alt+alt_offset, vis * 0.5, 0.3, -1, -1, -1,0 ,-1); + + +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -1481,7 +1615,7 @@ tile_finished(); var set_gliders_sky_tile = func { -setprop(lw~"tiles/code","glides_sky"); +setprop(lw~"tiles/code","gliders_sky"); tile_start(); @@ -1503,16 +1637,20 @@ calc_geo(blat); # first weather info for tile center (lat, lon, visibility, temperature, dew point, pressure) local_weather.set_weather_station(blat, blon, 35000.0, 20.0, 16.0, 1018 * hp_to_inhg); -# switch the placement of thermal effect volumes on: 1: constant lift 2: by function -setprop(lw~"tmp/generate-thermal-lift-flag",2); +var alt = 3000.0; + # add convective clouds var strength = 0.5; var n = int(4000 * strength); # calculate the number of placement tries from tile size 20x20km and strength -local_weather.create_cumosys(blat,blon, 3000.0+alt_offset,n, 20000.0); +local_weather.create_cumosys(blat,blon, alt+alt_offset,n, 20000.0); +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -1547,16 +1685,28 @@ calc_geo(blat); # first weather info for tile center (lat, lon, visibility, temperature, dew point, pressure) local_weather.set_weather_station(blat, blon, 45000.0, 20.0, 15.0, 1018 * hp_to_inhg); -# switch the placement of thermal effect volumes on: 1: constant lift 2: by function 3: blue -setprop(lw~"tmp/generate-thermal-lift-flag",3); +local_weather.generate_thermal_lift_flag = 3; +var alt = 5000.0; # add convective clouds +# set flag to blue thermal generation +if (local_weather.generate_thermal_lift_flag !=0) + {local_weather.generate_thermal_lift_flag = 3;} + var strength = 0.9; var n = int(4000 * strength); # calculate the number of placement tries from tile size 20x20km and strength local_weather.create_cumosys(blat,blon, 5000.0+alt_offset,n, 20000.0); +# set flag back to normal thermal generation +if (local_weather.generate_thermal_lift_flag !=0) + {local_weather.generate_thermal_lift_flag = 0;} + +# store convective altitude and strength + +append(weather_dynamics.tile_convective_altitude,alt); +append(weather_dynamics.tile_convective_strength,strength); tile_finished(); @@ -1723,6 +1873,10 @@ for (var i = n; i 320 100 20 - 25000.0 + 29000.0 55000.0 /local-weather/config/distance-to-load-tile-m diff --git a/gui/dialogs/local_weather_tiles.xml b/gui/dialogs/local_weather_tiles.xml index 2d3b86397..770a45620 100644 --- a/gui/dialogs/local_weather_tiles.xml +++ b/gui/dialogs/local_weather_tiles.xml @@ -35,9 +35,6 @@ Coldfront Warmfront Tropical - --- - Glider's sky - Blue thermals dialog-apply @@ -104,7 +101,7 @@ constant in tile aloft interpolated aloft waypoints - + dialog-apply @@ -150,8 +147,8 @@ 150 15 15 - - /local-weather/tmp/thread-flag + + /local-weather/config/generate-thermal-lift-flag dialog-apply @@ -162,8 +159,8 @@ 125 15 15 - - /local-weather/tmp/asymmetric-tile-loading-flag + + /local-weather/config/debug-output-flag dialog-apply @@ -193,6 +190,18 @@ + + 150 + 100 + 15 + 15 + + /local-weather/config/dynamical-convection-flag + + dialog-apply + + + 10 75 @@ -250,7 +259,7 @@