Snow

From FlightGear wiki
Jump to navigation Jump to search
Patchy snow lit by golden light from a low sun
Snow in mountains - snow accumulates more on less steep slope surfaces, including roofs of houses and buildings (Flightgear 2018.x)

As of FlightGear 2.6.0, the snow line is based on a user selectable elevation (Environment > Global Weather dialog) and the nearest METAR station's report. If the METAR reports snow and the station is below the level set by the user, the snow line will be set to the station's altitude.

Although this is better than the former behaviour (only user setting), it's still not realistic. The purpose of this document is to collect ideas and info on how to automate the snow line calculations.

Snow line

There are two definitions of snow line:

  • Climatic: the point above which snow and ice cover the ground throughout the year.[1]
  • Actual: the actual point at which snow is currently present. In summer, this is often equal to the climatic snow line.
The snow line on Mt Etna in winter. Note the gradual transition. The snow thickness was turned down as shown by the slightly patchy or dirty look. The snow deposits on trees are determined by the season slider (Flightgear 2018)

Climatic

Climatic snow line.png

Based on the climatic snow line values given at Wikipedia, we can estimate the climatic snow line at every latitude with the following formula:

0.0001*lat4 - 0.0019*lat3 - 1.7972*lat2 + 15.444*lat + 6022.1

In Nasal this will be:

var lat = getprop("/position/latitude-deg");
var snowLineClimatic = 0.0001*math.pow(lat,4) - 0.0019*math.pow(lat,3) - 1.7972*math.pow(lat,2) + 15.444*lat + 6022.1;

By running this code once, on startup, we can get a location specific default snow line. Which in turn can be made more precise with METAR reports.

Actual

Airports

A SNOWTAM is a message describing the conditions of the runways, taxiways and apron at an aerodrome. During the winter season a SNOWTAM will be issued each day in the morning, before flying starts. A SNOWTAM is valid for 24 hours, but there are rules stating that a new SNOWTAM shall be issued sooner if significant changes occur.[2]

As of 2.6.0, FlightGear has a runway shader to make it look wet during rain showers. This could be easily adapted to read SNOWTAM data.

Rough and Dirty ideas

Since snowtam and metar snow report consider mostly the runway, and there can be snow on the ground even if the runway is dry and clear (sunny spring days for example) there could be a method to get a rough idea whether there is snow on the ground at a given location and certain time of year.

Maybe an idea worth poking at would be some kind of geometrical lat/lon grid matrix for each month (or week?) of the year with either boolean value (snow / no snow) or perhaps something like 8 probability levels. 0 would be no snow, 8 would be total snow coverage, and the values in between could be for example implemented as somewhat randomized probability of snow, taking current METAR into account. Like, value of 1 would give you snow if temperature is below freezing and there is rain / snow in METAR. Value of 7 would give snow as long as temperature is not too warm, or something like that.

This might give us somewhat reasonable winter/snow season globally at most locations with reasonable effort..?

This unsigned comment was added by Tigert (Talk | contribs) 22:11, 14 January 2012 (UTC)

Snow is special in that it has a long memory of what has gone before. In central Finland, we may not see the ground till April if there was lots of snowfall in winter (as last year) as it takes a lot of time to thaw, even if the weather is bright and sunny, and some patches of snow remain till May. But it's very different if there wasn't much snow during the winter months.
The snowline is also very much history dependent. If the snow is actually falling, it may cover the ground well below the actual freezing line. It will be gone a few hours later, but for the time being the ground appears white nevertheless.
In contrast, old snow thaws first on the sun-exposed southern slopes and remains for a long time in shadowy spots. So in thawing conditions in spring, it's no way close to a uniform altitude condition. The shader could get this by taking the normal of the noon sun position with the terrain into account, as well as the underlying terrain (snow remains longer in forest-covered patches than in open terrain).
Thawing and re-freezing also causes characteristic effects. For instance, you can tell if the temperature has been above zero between the last snowfall and now by looking at the trees - trees loose their snow load very quickly within a few hours above zero temperature. In spring, there is often continuous snowcover on the ground, but the trees show none at all.
All this calls for information which Flightgear can't have and which the user should supply - do I want to simulate freshly falling snow or thawing conditions?
In case there is really need for a more realistic snow model beyond a user-defined snowline or simply loading winter textures, it should have a small config dialog where the user specifies what situation he wants to have rendered. A probabilistic model is no better than a user-defined snowline in my opinion.
This unsigned comment was added by Thorsten (Talk | contribs) 12:45, 26 January 2012 (UTC)

Vegetation

At the moment, FlightGear cannot change materials.xml (and thus random tree textures) on run-time from summer to winter. Ideally, the winter textures should not contain any snow, it should be added by the shader instead (so we can make use of the snow line).

External links

References