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.
There are two definitions of snow line:
- Climatic: the point above which snow and ice cover the ground throughout the year.
- Actual: the actual point at which snow is currently present. In summer, this is often equal to the climatic snow line.
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.
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.
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..?
- 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)
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).
- The snowline: it’s not a line (still less an isotherm) (Environmental Research Web)