SoarCalc is a plugin for Windy.com that calculates and displays thermal soaring parameters in, as far as possible, exactly the same way as RASP.
Note for mobile devices: SoarCalc (in common with all other Windy plugins) is not compatible with the Windy mobile App but it does function well within Chrome or other browsers on mobile devices just as it does on a laptop/PC. If you already have the Windy mobile App installed then, unfortunately, it will be necessary to uninstall it before proceeding. You will always have to use the links below to access SoarCalc to avoid being redirected to a page inviting you to install the App. You should also ignore the "Download App" button that sometimes appears.
To get started...
-
If SoarCalc is not yet installed you will be re-directed to the "Windy Plugins" menu page. Select "SoarCalc" from the list of available plugins, then select "Install plugin", then "Open plugin".
-
If SoarCalc is already installed then Windy.com will open directly with the SoarCalc plugin already active.
-
You may wish to set up a shortcut to https://windy.com/plugin/soarcalc or perhaps to one or more like this https://windy.com/plugin/soarcalc/51.705/-2.130 i.e. the same thing but also specifying the starting location (latitude/longitude).
You can always get back to the "Windy Plugins" menu using this link https://windy.com/plugins (Or by selecting "Install Windy Plugin" within the Windy.com desktop menu).
From here you can select SoarCalc wether or not it is already installed and you will be presented with some basic information including links to "Source code" and "Homepage" which directs you back to this document.
-
All the parameters displayed by SoarCalc have tooltips giving a brief description of their meaning. However, to gain a better understanding please take a little time to read the Discussion section of this document.
-
The tooltips show the units in which the parameters are given. These follow the current settings within Windy.com.
-
Some of the parameters are only available in the "Clouds" or "SolarPower" layers in which case they appear as '##' when any other layer is active.
-
On opening SoarCalc takes a few actions...
- The "Clouds" layer is selected.
- The current location is set either to the given coordinates from the url or to the centre of the map area.
- If available at that location the 'ukv' model from the Met Office is selected.
-
Windy.com is a great weather forecasting site in its own right and is definitely not restricted to displaying the forecast wind. It is well worth investing a little time exploring its functionality.
-
If you are a Windy "Premium" user you will see the data with 1 hour time steps which is a considerably better experience than the default 3 hour steps seen by non-premium users.
-
One of the really great things about Windy.com is that it offers you a range of the best weather models available. Windy defaults to the "ECMWF" (European Centre for Medium Range Weather Forecasting) model which is a great medium resolution global model. However, in most regions of the world there are higher resolution models available. You will find that these give you a much better view of the soaring weather so please consider switching to these.
-
Don't stick to one model even if it is the highest resolution and most recent forecast available. Switch between the models, if they broadly agree then the forecast is likely to be reliable, if they differ substantially then it is likely that there is uncertainty even in the "best" forecast.
- Fixed bug with wind heading (was showing > 360 degrees when in the NE quadrant)
- Substantially updated documentation and added link to it from the "Windy Plugins" menu.
- On opening, if location is given in url map is moved so that location marker is central, if not then location is set to centre of map.
- Select the ukv model on opening if it is available.
- Include forecast reference time in title.
- Improve exception handling round getMeteogramForecastData().
The main purpose of this release is to make the plug-in work with the most recent update of Windy.com (August 2025). It also contains the following changes since the previous published version...
- The installation and "getting started" process is much simplified especially on mobile devices.
- Fixed problem with cloud cover data sometimes being missing when stepping though the hours of the day.
- Fixed problem with synchronization with the time shown on the slider.
- Updating of soaring parameters has been optimized.
- Tooltips now work properly on mobile.
- The "clouds" layer is automatically selected when the SoarCalc is opened.
- Boundary Layer Average Wind parameter has been added.
- Issues with time shown in plug-in being out of step with that shown on the slider are resolved.
- Timeouts from getLatLongInterpolator() are handled gracefully. The parameters are now all updated properly except that the values in the rightmost "cloud" column show as ## in this circumstance rather than continuing to show old data.
The full source code for the SoarCalc plugin can be found in the following github repository: https://github.com/tomgooch/windy-plugin-soarcalc
Windy.com is a very good general weather forecast site that shows data from some of the best weather models available notably including UKV from the UK Met Office and similar high resolution models worldwide.
SoarCalc is a plugin for Windy.com that calculates and displays thermal soaring related parameters calculated in the same way as RASP.
This document is written from the point of view of sailplane pilots in the UK but it will be equally applicable to all forms of soaring flight anywhere in the world where high resolution weather models are available.
For the upcoming day or two "UKV" is probably the best forecast model available to us in the UK. As such it is already an important resource for planning any cross-country task. However, it is inconvenient that the soaring specific parameters are not immediately available as they are on the soaring forecast sites (RASP, SkySight, TopMeteo etc.). Personally, I always check the soaring forecasts against UKV and if they significantly disagree then this is a good indication that they are not to be trusted. If they do agree, then, of course they do provide a better user experience. But the soaring forecasts all have their problems. I shall take the case of RASP because...
- The forecast analysis and range of parameters that it presents are sound and well documented.
- Its author, Dr. John W. (Jack) Glendening (reference 1), has been open about the origin of the parameters that are presented.
- Experience suggests that, on days where the models (including GFS) are largely in agreement and there is not much spreadout / over-development, it is still probably as good as anything we have.
However RASP does have some serious issues...
- It still uses GFS and only GFS which is no longer the best forecast available for the UK
- It is updated infrequently. Usually even in the morning we see a forecast for the current day that is already 12 hours old.
- It does not deal with cloud amounts very well. There are a significant number of days in the year when it predicts virtually no cloud cover and hence good (5*) conditions over large areas at variance with all other models / forecasting sites and with reality.
So the motivation to develop a plugin for Windy.com is simple. To make the RASP parameters available within Windy.com using the data from "UKV" or any of the other models that are available.
One thing that one learns very quickly is that there is nothing exact about boundary layer meteorology. There are multiple reasonable interpretations and assumptions some being more reasonable and useful that others. For this reason I have endeavoured to calculate the soaring parameters in, as far as possible, exactly the same way as RASP making the same assumptions and approximations following reference 1. This way they should be just as reasonable and useful as RASP with which many of us are already familiar.
Unfortunately however, it is not possible to compare the values output from SoarCalc directly with those output by RASP because they do not start with the same base data.
Windy.com supports a "Plugin" mechanism allowing the development of JavaScript code to display additional information within their browser based user interface.
Within the plugin code one can get hold of the forecast information, do some calculations and display information on the screen. It is relatively easy to look at the forecast data forwards along a timeline for a fixed location but less easy to look over a wide area at a fixed point in time. For this reason we are limited to point forecasts rather than a layer on a map - that would require a deeper integration with Windy.com.
I have not made any attempt to calculate or show parameters that are already available and displayed very nicely directly in Windy.com.
Some of the parameters are available when viewing any map layer in Windy but the full functionality is available only when viewing the "Clouds" or "Solar power" layers. This is because we need an estimate of the incident solar radiation in order to calculate the thermal updraft velocity and derived quantities.
A brief description of the parameters presented by SoarCalc is given by means of "Tool Tips". A more detailed description of each parameter is given here.
Values are given in the units selected in the Windy.com "Settings"
I strongly recommend reading the notes published by Dr Jack Glendening describing the RASP parameters BLIPMAP Prediction Parameters and Description
These are taken directly from the forecast model data and are self explanatory except to note that "surface" refers to the model elevation not to the actual elevation. If the model elevation differs significantly from the actual elevation then these values will differ correspondingly.
The model surface elevation "Elev" is used in all calculations. The actual elevation "ElevA" is given only as a guide. If it differs greatly from "Elev" that is a sign that significant geographic features may not be "seen" at the resolution of the current model.
Following RASP this is defined to be the level at which the buoyancy of a parcel of air originating at the surface would fall to zero with respect to the surrounding air in the absence of condensation. Clearly, this is only "correct" in the case of dry thermals / blue conditions but this is not unreasonable because we are interested primarily in what is going on either below the cumulous cloud base or up to the top of blue thermals. A treatment of what is going on within convective cloud is complex and of little practical use in this context except to note that "cloud suck" is a real effect and thermal updraft strength is increased in the presence of substantial / deep convective cloud.
The calculation of this quantity starts with the calculation of the virtual (density) temperature at the
surface and at every level in the data given to us by the model in order to allow for the fact that moist air is less dense than dry air.
The Virtual temperature (
This parameter is also known as "LCL" the Lifting Condensation Level. If below the boundary layer top then Cumulous clouds are likely to be present otherwise not but it is still a valid parameter useful for the prediction of orographic cloud for example. If Cu base is above BL top then this parameter is greyed out. Cumulous cloud formation becomes increasingly less likely as the difference between Cu base and BL top increases. If Cu base is below BL top then Cu cloud formation is likely and the size and likelihood of Cu clouds becomes greater as the difference increases.
It is defined as the level to which a parcel of air from the surface must be raised before it is cooled to saturation point and condensation takes place. On a tephigram sounding it is the intersection of the line of constant mixing ratio from the surface dew point and the dry adiabatic from the surface temperature.
Following RASP, this is the condensation level of a parcel of air having the boundary layer average mixing ratio. If below BL top then widespread convective cloud formation is likely. If above BL top then this parameter is shown greyed out.
The fractional cloud cover (dimensionless ratio ranging from 0 to 1). This is taken directly from the "Clouds" map layer in Windy. When viewing the UKV model this is probably the best estimate of cloud cover that we have available in the UK. Together with the "Solar Altitude" and the known perpendicular solar flux in the absence of cloud/moisture in the atmosphere, this is used to calculate the surface insolation "Qs" see below.
In the case of the "Solar Power" layer this value is "reverse engineered" from the given value of Qs.
In other map layers in Windy.com this parameter is not currently available.
The surface insolation / solar power arriving per unit area of the Earth's surface. (Note: This is always shown in Watts per square meter as no suitable configurable setting is available.)
The value show is either that calculated from the cloud cover (see above) or taken directly from Windy.com if viewing the "Solar Power" layer. Note that agreement between the values from these two sources is not perfect.
W* is known as the Deardorff velocity (reference 5). It is the characteristic thermal updraft velocity which is definitely not to say that all parts of a thermal at all altitudes will be rising at this velocity. Even in an idealized thermal the actual updraft velocity will vary with both altitude and distance from the centre of the thermal. However, as explained in reference 1 and by practical experience this is known to be a useful measure.
where...
where
The derivation of this is given in Appendix 1. There is plenty of scope for discussion about
the "best" value to use for this constant. I have elected to follow the author of (reference 2) who gives a useful
overview of the method of calculation. I believe that these are similar to those used by RASP. But
note that the resulting value of
Note: to get to the expected climb rate of a glider you must, of course, subtract the descent rate of the glider whilst turning. Typically about 0.9m/s or 1.75kts.
The vector average wind between surface and BL top.
The modulus of vector wind difference between surface and BL top.
The Bulk Richardson number =
It is my belief that RASP presents this same number but as a percentage and talks about values above 5(%) being useful to sailplane pilots. However, here, it is presented directly so this corresponds to a value of 0.05.
NOTE: if anyone can confirm or refute my assumption and that RASP is using some other definition of this quantity I would be very pleased to hear about it.
NOTE 2: Even within this definition there is plenty of room for a factor of 4 difference simply by taking the shear value at half the BL height which is something like where the maximum updraft velocity will occur.
Empirically, as glider pilots, we know that thermal strength initially increases with altitude, remains roughly the same for a range of altitudes and then falls slowly back to zero as we approach the boundary layer top. Therefore it is of interest to estimate the critical altitude at which the thermal strength is expected to fall to the descent rate of the glider.
Lechlow and Stephens (reference 3) propose the following equation for the thermal updraft strength at a given altitude...
where...
It must be noted that there is not much physical justification for this, it is merely an empirical fit to rather old experimental data observed in thermals over the sea.
RASP appears to use a version of this modified such that the maximum value of
We use this equation to find the altitude at which the updraft velocity falls to 0.9m/s or 1.75kts in order to follow RASP as closely as possible.
It is useful to display the SoarCalc plugin in conjunction with the Windy.com "Sounding forecast" pane and I would recommend that you to do this. As all calculations are based on the same data it would indeed be natural for the SoarCalc parameters to be amalgamated with the "Sounding forecast" pane. Indeed LCL/Cu base is already shown on the "Sounding forecast" pane BUT there is a problem: Currently LCL shown in the "Sounding forecast" pane is incorrect whenever the surface pressure is higher than 1000hPa.
So PLEASE do not look at the discrepancy and assume that SoarCalc is incorrect. This is not the case.
Practical experience gained over the past year comparing SoarCalc with other soaring forecasts and with reality suggests that it is indeed a useful tool.
It would be useful to estimate the Solar Insolation more thoroughly involving the cloud opacity/thickness as well as the cloud cover. The estimate of Thermal Updraft velocity $(W^)$ would then be available in all layers. However, it is far from clear how much improvement this might make to the forecast value of $W^$ given the other assumptions and approximations involved.
The virtual potential temperature flux
Only a part of the incident radiation flux is available to heat the atmosphere...
where...
Both these factors will obviously vary with the nature of the ground. We all know that thermals are stronger over land than water and stronger over bare rock/concrete than over forests but we stick to this value as some kind of average.
So this reduces to...
Expressing this in its kinematic form we have...
where
We must now convert this to the kinematic virtual (density) sensible heat flux
Where
-
BLIPMAP Prediction Parameters and Description. Dr. John W. (Jack) Glendening. http://www.drjack.info/blip/INFO/parameters.html
-
Updraft Model for Development of Autonomous Soaring Uninhabited Air Vehicles. Michael J. Allen, NASA Dryden Flight Research Center, Edwards, California 93523-0273, USA https://ntrs.nasa.gov/api/citations/20060004052/downloads/20060004052.pdf
-
Lenschow & Stephens (1980) https://www.researchgate.net/publication/226285031_The_role_of_thermals_in_the_convective_boundary_layer
-
Glossary of Meteorology -- The American Meteorological Society https://glossarytest.ametsoc.net/wiki/Deardorff_velocity
-
Convective Velocity and Temperature Scales for the Unstable Planetary Boundary Layer and for Rayleigh Convection James W. Deardorff (1970) https://journals.ametsoc.org/view/journals/atsc/27/8/1520-0469_1970_027_1211_cvatsf_2_0_co_2.xml