Snow

From FlightGear wiki
Jump to navigation Jump to search
WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.
The snow line in FlightGear 2.0.0.

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.

Altough 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.

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;

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..?

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