SHO Weather: Difference between revisions

From Simwiki.net
Jump to navigation Jump to search
 
(87 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category: Driving Sims]] [[Category: GTR2]]
[[Category: Driving Sims]] [[Category: GTR2]]
[[File: Gtr2-start-weekend-launcher-240505.jpg]]
== Description ==
 
[[File: Gtr2-start-weekend-launcher-240505.jpg| Gtr2-start-weekend-launcher-240505.jpg]]


''Image: GTR2 Start Weekend Launcher with preconfigured weekend weather for test days, Practice, Qualifying, and Race sessions''
''Image: GTR2 Start Weekend Launcher with preconfigured weekend weather for test days, Practice, Qualifying, and Race sessions''


'''SHO Weather is just an experiment for now to see how far I can go with weather. In the first release, you can choose different weekend weather which I've tried to make feel consistent throughout the sessions of a race weekend.'''
'''This effort morphed into [[Modernizing_GTR2_with_the_Crew_Chief_GTR2_Enhancements_Plugin#Real_Weather|Real Weather for the Crew Chief GTR2 Enhancements]] Plugin. You're probably looking for that.'''
 
* SHO Weather is now primarily a weather generation script which generates quasi-realistic weather using real weather data for each track location
* The generation script outputs GTR2-compatible weather files in bulk
* These weather files are being integrated by The Iron Wolf in-game by adding options to the in-game Rainfall selector along with the [[Modernizing_GTR2_with_the_Crew_Chief_GTR2_Enhancements_Plugin | Crew Chief GTR2 Enhancements Plugin]]


== Download ==
== Download ==


[http://simwiki.net/files/SHO%20Weather%2024050501.zip Click here to download]
[http://simwiki.net/files/SHO%20Weather%2024050501.zip Click here to download]
== Want to help? ==
Donate to [mailto:paypal@shovas.ca paypal@shovas.ca] or send <span style="color: Green;">BTC Bitcoin</span> to bc1q8nwwnwp9zljndlcaw4jcmj0yfyqe69fa5k54dm, <span style="color: Green;">LTC Litecoin</span> to ltc1qljlmg5673q6j0s5cmxk4ggyn0x5d4npaw25vah, <span style="color: Green;">DOGE Dogecoin</span> to DSMwwdHqJ3LMxPe1HiGgNKsWBY2jPi2RwW, or <span style="color: Green;">XRP Ripple</span> to rGUoiGSjhsM14sPyePao1eqvjD6sXa1uLL. Thank you!
Weather costs $10 per location from OpenWeatherMap.org. For that price, you get 40 years of data with hourly granularity. The data is open, can be freely shared, and has potential for re-use and repurposing for other mods, games, or software. I think it's good value.


== Changes ==
== Changes ==
Line 54: Line 67:
== Real Weather Data ==
== Real Weather Data ==


I purchased real weather data from openweathermap.org for all of the GTR2 track locations. Anyone can purchase any location for USD $10 per location.
I purchased real weather data from openweathermap.org for all of the original GTR2 track locations. Anyone can purchase any location for USD $10 per location from openweathermap.org.


I'm providing it here in case anyone is interested in making projects out of the data.
I'm providing it here in case anyone is interested in making projects out of the data.
Line 60: Line 73:
The data license is a Creative Commons-like attribution license which means you're basically free to do anything you just have to attribute the license.
The data license is a Creative Commons-like attribution license which means you're basically free to do anything you just have to attribute the license.


=== Download Real Weather Data ===
See [[Modernizing_GTR2_with_the_Crew_Chief_GTR2_Enhancements_Plugin#Real_Weather]] for tracks covered so far and tracks planned for the future.
 
http://simwiki.net/files/gtr2-real-weather-data.zip


=== Weather Generation Script ===
=== Weather Generation Script ===
Line 70: Line 81:
I plan to release the generation script and the generated weather files in upcoming releases.
I plan to release the generation script and the generated weather files in upcoming releases.


=== OpenWeatherMap Weather Database Files ===
=== Download Real Weather Data ===


In the download, you'll find the following files:
See [[Weather_Data#Racing_Circuits_Real_Weather_Data]] for full details
 
<pre><nowiki>
Anderstorp_Racing_Club_57_261829_13_600247_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Autodromo_di_Pergusa_37_520353_14_304795_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Autodromo_Enzo_e_Dino_Ferrari_44_344719_11_715851_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Autódromo_Fernanda_Pires_da_Silva_38_749097_-9_393499_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Autodromo_Nazionale_Monza_45_61737_9_281464_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Circuit_de_Barcelona-Catalunya_41_56998_2_260753_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Circuit_of_Spa-Francorchamps_50_444522_5_965393_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Circuit_Ricardo_Tormo_39_484306_-0_629025_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Donington_Park_Circuit_52_829532_-1_381452_OpenWeatherMap_5d1ef5f159e11881a91b89146ca4a099.csv
Dubai_Autodrome_25_048061_55_23735_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Hockenheimring_Baden-Württemberg_49_327149_8_565487_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Masaryk_Circuit_49_203578_16_444128_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Motorsport_Arena_Oschersleben_52_025735_11_278023_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Nevers_Magny_Cours_Circuit_46_863809_3_162568_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
Zhuhai_International_Circuit_22_360426_113_56353_OpenWeatherMap_66271d3123a6580008cf2b7d.csv
</nowiki></pre>
 
Each file contains data that looks like this:
 
<pre><nowiki>
dt,dt_iso,timezone,city_name,lat,lon,temp,visibility,dew_point,feels_like,temp_min,temp_max,pressure,sea_level,grnd_level,humidity,wind_speed,wind_deg,wind_gust,rain_1h,rain_3h,snow_1h,snow_3h,clouds_all,weather_id,weather_main,weather_description,weather_icon
283996800,1979-01-01 00:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,266.79,,263.5,260.19,266.22,267.13,1012,,,75,5.13,349,,,,,,5,800,Clear,sky is clear,01n
284000400,1979-01-01 01:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,266.84,,263.24,260.29,266.22,267.1,1014,,,73,5.07,350,,,,,,2,800,Clear,sky is clear,01n
284004000,1979-01-01 02:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,266.81,,263.06,260.35,266.39,267.04,1014,,,72,4.94,347,,,,,,0,800,Clear,sky is clear,01n
284007600,1979-01-01 03:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,265.85,,262.73,259.16,265.48,266.22,1015,,,76,4.93,344,,,,,,0,800,Clear,sky is clear,01n
284011200,1979-01-01 04:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,265.78,,262.81,259,265.35,266.33,1016,,,77,5.02,341,,,,,,0,800,Clear,sky is clear,01n
284014800,1979-01-01 05:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,265.77,,263.23,258.95,265.34,266.33,1017,,,80,5.07,342,,,,,,0,800,Clear,sky is clear,01n
284018400,1979-01-01 06:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,265.82,,263.28,259.15,265.22,266.33,1018,,,80,4.89,343,,,,,,0,800,Clear,sky is clear,01n
284022000,1979-01-01 07:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,265.74,,262.92,259.38,265.22,266.33,1019,,,78,4.46,343,,,,,,0,800,Clear,sky is clear,01n
284025600,1979-01-01 08:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,265.77,,263.51,259.73,265.36,266.33,1020,,,82,4.08,339,,,,,,0,800,Clear,sky is clear,01n
284029200,1979-01-01 09:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,266.44,,262.54,260.68,266.01,266.69,1021,,,71,3.93,334,,,,,,17,801,Clouds,few clouds,02d
284032800,1979-01-01 10:00:00 +0000 UTC,0,Donington Park Circuit,52.829532,-1.381452,267.67,,264.36,262.42,266.22,267.96,1021,,,75,3.67,320,,,,,,73,803,Clouds,broken clouds
</nowiki></pre>
 
=== OpenWeatherMap Weather Database File License ===
 
OpenWeatherMap weather database files are licensed under Open Data Commons Open Database License (ODbL) v1.0. This license requires that users attribute any public use of the database, or works produced from the database, in the manner specified in the ODbL. It allows users to share (copy, distribute, and use the data), create (produce works from the data), and adapt (modify, transform, and build on the data), for commercial and noncommercial purposes.
 
View a summary of the license here: https://opendatacommons.org/licenses/odbl/summary/
 
View the full license here: https://opendatacommons.org/licenses/odbl/1-0/.
 
You don't have to ask permission for legitimate uses. You just have to attribute the license.


== Old Changes ==
== Old Changes ==
Line 131: Line 97:
== Weather Notepad ==
== Weather Notepad ==


'''These notes are generally tested and confirmed true'''
<span style="color: Green;">'''These notes are generally tested and confirmed true'''</span>


<pre><nowiki>
<pre><nowiki>
Line 144: Line 110:
- Time Trial = Open Practice (says so in Garage screen)
- Time Trial = Open Practice (says so in Garage screen)
- Free Practice (Race Weekend) = Open Practice
- Free Practice (Race Weekend) = Open Practice
In-game Session to Weather.txt Name mappings:
- Driving School: Fixed Weather (not in weather.txt)
- Time Trial: Practice1, Practice2
- Open Practice: Practice1
- Free Practice: Practice1, Practice2
- Qualifying: Qualify1, Qualify2
- Warmup: Warmup
- Race: Race


Are HAT files caching weather file data and we might need to enable rebuilding? -->
Are HAT files caching weather file data and we might need to enable rebuilding? -->
Line 151: Line 126:
- Must specify numeric minute Minute=1.23, not just "Minute" or else GTR2 seems to think the last Minute is the initial conditions and the other Minutes are ignored  
- Must specify numeric minute Minute=1.23, not just "Minute" or else GTR2 seems to think the last Minute is the initial conditions and the other Minutes are ignored  
- Minute=0.00{} is the initial conditions / It appears to be skipped / Must start with Minute > 0 or higher  (Minute=0.10 works)
- Minute=0.00{} is the initial conditions / It appears to be skipped / Must start with Minute > 0 or higher  (Minute=0.10 works)
Minute{} Progression:
- A Minute{}'s weather progression reaches its complete state at the start of the Minute{}
  - Ex. Minute=1.00 weather will reach its complete weather at exactly Minute=1.00 which will progress into Minute=2.00 when it will reach its complete weather at exactly Minute=2.00. Minute 3.00, the same, and so on and so on.
Game-generated weather.txt example showing all(?) possible parameters
- I think only Conditions/AmbientTemp track inside Minute{} blocks but worth an experiment
    Weather
    {
        TestDay
        {
            Conditions=0.00
            OnPathWetness=0.00
            OffPathWetness=0.00
            AmbientTemp=10.00
            TrackTemp=10.00
            Minute=1.00
            {
                Conditions=100.00
                AmbientTemp=17.20
            }
    ...
    }


Rainfall (in-game):
Rainfall (in-game):
Line 170: Line 169:
100%: Flooded, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm
100%: Flooded, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm
- Unable to check Rainfall level vs weather.txt file because Rainfall < Changeable doesn't generate weather.txt
- Unable to check Rainfall level vs weather.txt file because Rainfall < Changeable doesn't generate weather.txt
- More on Rainfall vs Track Wetness (not the same as Conditions):
  0-5 Dry
  6-35 Damp
  36-75 Wet
  76-100 Flooded
Rainfall and Auto-selected Tyres
- Session: Simulation, Race, Donington Park GP 2004
- Rainfall, Track, Ambient, Conditions, Forecast, Tyres Auto-selected
  - None: 20C Dry, 20C, Sunny, Sunny, Medium
  -  10%: 20C Damp, 20C, Cloudy w/Rain, Cloudy w/Rain, Medium
  -  20%: 20C Damp, 20C, Cloudy w/Rain, Cloudy w/Rain, Intermediate
  -  30%: 20C Damp, 20C, Cloudy w/Rain, Cloudy w/Rain, Intermediate
  -  40%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  50%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  60%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  70%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  80%: 20C Flooded, 20C, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm, Soft Wet
  -  90%: 20C Flooded, 20C, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm, Soft Wet
  - 100%: 20C Flooded, 20C, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm, Soft Wet
  - Changeable: 22C Damp, 19C, Cloudy w/Rain, Cloudy w/Rain, Medium
Rainfall vs AI Tyre Selection
- GT's 2004, Donington GP 2004, Race Weekend, Practice 1, 1pm, 21 AI
- Monitoring tyres with TIW CCGEP Monitor
- Inter=Intermediate, Hard=Wet, Soft=Monsoon
    Rainfall  Wetness    AI Tyres            ~ @5min            ~ @10min            ~ @15min            ~ @20min            ~ @25min            ~ @30min
    0%        Dry        Medium              Medium              Medium
    10%      Damp        Medium              Medium              Medium
    20%      Damp        Inter              nter                Inter, 1 Medium
    30%      Damp        Inter/Wet (50/50)  nter/Wet (50/50)    Inter/Wet (50/50)
    40%      Wet        Wet                Wet                Wet
    50%      Wet        Wet                Wet                Wet
    60%      Wet        Wet                Wet                Wet
    70%      Wet        Wet                Wet                Wet, 1 Medium
    80%      Flooded    Monsoon            Monsoon            Monsoon, 1 Medium
    90%      Flooded    Monsoon            Monsoon            Monsoon            Monsoon, 1 Medium  Monsoon, 3 Medium
    100%      Flooded    Monsoon            Monsoon            Monsoon, 1 Medium  Monsoon, 4 Medium  Monsoon, 2 Medium  Monsoon, 1 Medium  Monsoon
Rainfall vs AI Tyre Selection (2)
- GT's 2004, Donington GP 2004, Race Weekend, Race, 1pm, 21 AI
    Rainfall    Wetness    AI Tyres            ~ @5min            ~ @10min            ~ @15min            ~ @20min            ~ @25min            ~ @30min
    10%        Damp        Medium              Medium              Medium              Medium              Medium 
    20%        Damp        Inter              Inter              Inter              Inter              Inter
    30%        Damp        Inter/Wet (50/50)  Inter/Wet (50/50)  Inter/Wet (50/50)  Inter/Wet (50/50)  Inter/Wet (50/50)     
    40%        Wet        Wet                Wet                Wet                Wet                Wet
    50%        Wet        Wet                Wet                Wet                Wet                Wet
    60%        Wet        Wet                Wet                Wet                Wet                Wet
    70%        Wet        Wet                Wet                Wet                Wet/Flooded        Wet
    80%        Flooded    Monsoon            Monsoon            Monsoon            Monsoon            Monsoon
    90%        Flooded    Monsoon            Monsoon            Monsoon            Monsoon            Monsoon
    100%        Flooded    Monsoon            Monsoon            Monsoon            Monsoon            Monsoon
^ Rainfall is constant so we're not seeing how changing conditions effects tyre selection.
  ^ That can be a separate experiment with custom weather files.
 
- NGT's 2004, Donington GP 2004, Race Weekend, Race, 1pm, 21 AI, Custom Weather File
    Time    Conditions  Wetness    AI Tyres                                    Status
    0min    0          Dry        Medium             
    5min    72          15%        Medium
    10min  81          41%        Most Wet, some Medium, 1 Inter
    15min  93          75%        Most Wet, Few Monsoon, 1 Medium, 1 Inter
    20min  81          58%/75%    Most Wet, Few Monsoon, 1 Medium, 1 Inter
    25min  72          41%/73%    Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    30min  0          23%/71%    Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    35min  0          7%/70%      Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    40min  0          0%/68%      Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    45min  0          0%/66%      Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    50min  0         
- Wetness = On-path/Off-path
  - While flooding, on-path and off-path wetness start diverged but end up being the same
  - While draining, on-path and off-path wetness start to diverge so that on-path is almost dry while off-path is still quite wet
    - It almost doesn't feel like off-path is drying quickly enough but that's an in-game algorithm that we can't easily change
Changeable Rain
- Changeable seems to bias rainfall towards Track’s GDB Average Rain parameter. In other words, a track like Donington or Spa may have more sessions with rain than Dubai or Valencia.
- This seems to apply for Temperature as well where Dubai will be routinely much hotter than Donington although this does not seem to be an editable file but baked into the track so you’d need an editor to change this, I guess(?).


Temperature:
Temperature:
- Default Temperature Progression: Ambient 20+, Track: 22+
- Default Temperature Progression: Ambient 20+, Track: 22+


Conditions Icon (Conditions: Sunny/Rainy/Stormy):
Conditions Icon (Sunny/Rainy/Stormy):
- Conditions is not the same as Rainfall in-game
- Conditions is not the same as Rainfall in-game
- Confirmed 240318:  
- Weather.txt Conditions - Confirmed 240318:  
0-61 Sunny (Sun)
0-61 Sunny (Sun)
62-90 Rainy (Cloud w/Rain)
62-90 Rainy (Cloud w/Rain)
91-100 Stormy (Cloud w/Rain and Lightning)
91-100 Stormy (Cloud w/Rain and Lightning)
  - The real cut off between Sunny and Rainy and Rainy and Stormy is somewhere between the integer values (ie. 61.65 - 61.70, and 90.XX - 90.YY) but might as well just consider it an integer cut off of 61 and 62


Forecast Icon (Conditions: Sunny/Rainy/Stormy):
Forecast Icon (Sunny/Rainy/Stormy):
- Requires Minute{} block
- Requires Minute{} block
- Looks like it uses the next Minute{} for the Forecast
  - Confirmed next Minute{}, not influenced by time difference, either, and not influenced by subsequent Minute{} blocks after the first.
  - Only the next Minute{} block matters for the Forecast Icon
- When no Minute{} blocks are specified, or if there are no more Minute{} blocks remaining, then Forecast appears to indicate a return to initial session Conditions
- When no Minute{} blocks are specified, or if there are no more Minute{} blocks remaining, then Forecast appears to indicate a return to initial session Conditions
- Confirmed 240318
 
0-61 Sunny (Sun)
Forecast Icon Conditions Thresholds (and Conditions Icon?)
62-90 Rainy (Cloud w/Rain)
- Seems like there is some +/- margin on thresholds 61/62 (Sunny/Rainy) and 90/91 (Rainy/Stormy) where they may be one or the other
91-100 Stormy (Cloud w/Rain and Lightning)
  - 56/56 (61 - 5) is the minimum where Conditions/Forecast sticks to Sunny (>56 Forecast is sometimes Rainy)
  - 67/67 (62 + 5) is the minimum where Conditions/Forecast sticks to Rainy (<67 Forecast is sometimes Sunny)
  - 85/85 (90 - 5) is the minimum where Conditions/Forecast sticks to Rainy (>85 Forecast is sometimes Stormy)
  - 96/96 (91 + 5) is the minimum where Conditions/Forecast sticks to Stormy (<96 Forecast is sometimes Rainy)
  - Seems there's a +/- 5 threshold around pivot points anyway
- Forecast Icon appears random (one side of the threshold or the other) within +/- of threshold
 
Conditions Forecast Tyre Selection
- Sunny/Sunny: Mediums
- Rain/Sunny: Intermediates -> Mediums
- Rain/Rain: Hard Wets


Track Wetness (Dry/Damp/Wet/Flooded):
Track Wetness (Dry/Damp/Wet/Flooded):
- Track wetness based on fixed Conditions (Confirmed 240318)
- Track wetness (Dry/Damp/Wet/Flooded) is related to Conditions but is not the same as Conditions (Sunny/Rainy/Storm) (Confirmed 240318)
- Track wetness (Dry/Damp/Wet/Flooded) is not the same as Conditions (Sunny/Rainy/Storm)
  - But a session's starting wetness does seem to be directly related to initial Conditions. That is, a track is immediately Dry/Damp/Wet/Flooded based on a session's immediate starting Conditions.
- Track wetness floods and drains dynamically based on Conditions, temperature, time, and total accumulating laps (the more AI the faster draining progresses)
- Track wetness does not progress (drier or wetter) by On/OffPathWetness in Minute{} progression.
- Track wetness does not progress (drier or wetter) by On/OffPathWetness in Minute{} progression.
   - It seems to be based on time, Conditions, temperature, and number of laps (the more AI the faster)
   - It seems to be based on time, Conditions, temperature, and number of laps (the more AI the faster)
- Track wetness floods dynamically based on Conditions and un-floods dynamically
- See below for Track Conditions vs Wetness Levels
- Track Wetness Levels:
 
0-5 Dry
Starting Weather vs Conditions
6-35 Damp
- Tested at Donington GP 2004 (Confirmed 240513)
36-75 Wet
 
76-100 Flooded
  0.0000: Large Blue Sky Patches, Fluffy White Clouds, Dry Track, Not Raining
10.0000: Mostly Wispy White Clouds, Dry Track, Not Raining
20.0000: Same as 0, Dry Track, Not Raining
30.0000: Same as 10, Dry Track, Not Raining
40.0000: Like 0 but with maybe some gray clouds in there (Scattered Clouds? Wouldn't say Overcast.), Dry Track, Not Raining
50.0000: Large Blue Sky Patches, Fluffy White Clouds, Dry Track, Not Raining
60.0000: Same as 10, Dry Track, Not Raining
61.0000: Blue Sky, Dry Track, Not Raining, Conditions Sunny, Forecast Sunny/Rainy
61.1250: Same as 0, Dry Track, Not Raining, Conditions Sunny, Forecast Rainy
62.0000: Blue Sky, Not Raining, Dry Track, Conditions Rainy, Forecast Rainy
62.5000: Like 10 but maybe grayer, Dry Track, Not Raining, Conditions Rainy, Forecast Rainy
63.6250: Like 0 + 10 and graying, Dry Track, Not Raining, Conditions Rainy, Forecast Sunny
65.0000: Gray and Overcast, Dry Track, Not Raining, Conditions Rainy, Forecast Rainy
70.0000: Gray and Overcast, Dry Track, Not Raining, Conditions Rainy, Forecast Rainy
71.0000: Dark Gray and Overcast, Dry Track, Raining, Conditions Rainy, Forecast Rainy
71.1250: Dark Gray and Overcast, Dry Track, Raining, Conditions Rainy, Forecast Rainy
72.0000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
72.5000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
75.0000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
80.0000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
81.0000: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
82.5000: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
83.6250: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
84.1875: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
85.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Rainy, Forecast Rainy
90.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Rainy, Forecast Rainy
90.5625: Dark Gray and Overcast, Wet Track, Storming, Conditions Rainy, Forecast Stormy, Track Reflections
91.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
91.1250: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
92.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Rainy, Track Reflections
92.5000: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Rainy, Track Reflections
93.0000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
95.0000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
97.5000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
98.6250: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
100.0000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
 
^ Storming = Raining + Lightning + Thunder
^ Track Reflections not complete
 
Conditions Clear vs Cloudiness Levels
- Is there a threshold for Clear vs levels of Cloudiness?
- Tested in Open Practice at Donington, Dubai, Spa
- GTR2 does not have a "clear" sky, it randomly has mostly clear, some clouds, mostly cloudy, and appears random up until ~62 (Confirmed 240912). It also depends on North/Central/South skies (North doesn't even have clear skies in some mods).
- 0: Mostly blue sky with white clouds
- 1-62: Sometimes mostly blue sky, sometimes half and half
- 62-64: Mostly Cloudy
- 65-70: Overcast, threatening rain
- 71+: Rain
- Bottom line: Looks like I could reliably target Mostly Cloudy (62-64) and Overcast (65-70) as a new Weather Slot
- Confirmed 240605
 
Mapping GTR2 Conditions to AMS2 Weather Forecasts:
- AMS2: Clear, Light Cloud, Medium Cloud, Heavy Cloud, Overcast, Light Rain, Rain, Storm, Thunderstorm, Fog, Fog With Rain, Heavy Fog, Heavy Fog With Rain, Hazy
 
0-61: Clear/Light Cloud/Medium Cloud(*)
62-64: Heavy Cloud
65-70: Overcast
71-80: Light Rain (Dry/Damp Track)
81-84: Rain (Wet Track)
85-92: Storm (Wet Track)
95-100: Thunderstorm (Flooded Track)
 
*GTR2 does not have "Clear" skies. It randomly chooses clear or various levels of clouds for Conditions 0-61. It can depend on sky textures and North/Central/South locations, as well.
 
Session Starting Conditions:
- TrackTemp: Starting value can be set but does NOT progress in Minute{}s. Game progresses this itself. (Confirmed 240802)
- OnPathWetness, OffPathWetness: These are available but I haven't used yet
  - These progress along with Conditions and AmbientTemp so I don't need to use them
  - But it may be interesting to create different starting weather states using these
 
Weather
{
TestDay
{
  Conditions=0.00
  OnPathWetness=0.00
  OffPathWetness=0.00
  AmbientTemp=10.00
  TrackTemp=10.00
},
    ...
    }
 
- Conditions=100.00 + Minute=0.10 shows Flooded and Forecast Stormy>Rainy briefly then quickly switches to Sunny
  - So it's a good way to show the driver where the track state came from
  - Minute=1.00 takes a little too long
  - Minute=0.50 probably about right...too slow really
  - Minute=0.25 Not bad
  - Minute=0.75 Little bit too slow
  - Minute=0.625
  - Minute=0.28125 Not bad actually
  - Minute=0.25 Probably about right
 
OnPathWetness/OffPathWetness vs Track Wetness and AI Tyres:
 
On/OffPathWetness  Track Wetness  Conditions  Forecast    AI Tyres
  0.00              Dry            Sunny      Sunny      Mediums
  2.50              Dry            Sunny      Sunny      Mediums
  5.00              Dry             Sunny      Sunny      Mediums
  5.00244140625    Damp            Sunny      Sunny      Mediums
  5.0048828125      Damp            Sunny      Sunny      Mediums
  5.009765625      Damp            Sunny      Sunny      Mediums
  5.01953125        Damp            Sunny      Sunny      Mediums
  5.0390625        Damp            Sunny      Sunny      Mediums
  5.078125          Damp            Sunny      Sunny      Mediums
  5.15625          Damp            Sunny      Sunny      Mediums
  5.3125            Damp            Sunny      Sunny      Mediums
  5.625            Damp            Sunny      Sunny      Mediums
  6.25              Damp            Sunny      Sunny      Mediums
  7.50              Damp            Sunny      Sunny      Mediums
10.00              Damp            Sunny      Sunny      Mediums
20.00              Damp            Sunny      Sunny      Intermediates
30.00              Damp            Sunny      Sunny      Intermediates/Wets (50/50)
32.50              Damp            Sunny      Sunny      Intermediates/Wets (60/40)
35.00              Damp           Sunny      Sunny      Intermediates/Wets (50/50)
35.01              Wet            Sunny      Sunny      Wets/Intermediates (60/40)
36.25              Wet            Sunny      Sunny      Intermediates/Wets (60/40)
37.50              Wet            Sunny      Sunny      Wets/Intermediates (60/40)
40.00              Wet            Sunny      Sunny      Wets
50.00              Wet            Sunny      Sunny      Wets
60.00              Wet            Sunny      Sunny      Wets
70.00              Wet            Sunny      Sunny      Monsoons/Wets (60/40)
72.50              Wet            Sunny      Sunny      Wets/Monsoons (60/40)
75.00              Wet            Sunny      Sunny      Monsoons/Wets (50/50)
75.01              Flooded        Sunny      Sunny      Monsoons/Wets (50/50)
77.50              Flooded        Sunny      Sunny      Monsoons/Wets (60/40)
80.00              Flooded        Sunny      Sunny      Monsoons
90.00              Flooded        Sunny      Sunny      Monsoons
100.00              Flooded        Sunny      Sunny      Monsoons
 
^ Conditions=0
^ AmbientTemp=30
^ TrackTemp=35
^ GTs 04, Don GP 04, 21 AI
^ Wets=Hard Wets, Monsoons=Soft Wets
^ On/OffPathWetness maps pretty equally to Rainfall percentages for Track Wetness and Tyre selections
 
PathWetness vs Conditions vs Track Wetness
 
PathWetness Conditions  Track
5.00      0-70        Dry
7.50      71-80      Damp
37.50      81-92      Wet
77.50      93-100     Flooded
 
^ I think this was a hand-picked mapping based on previously mapped data tables. See next Conditions vs PathWetness table for actual test results.
 
Conditions vs Garage PathWetness vs Race PathWetness
 
Conditions    Track    Conditions/Forecast    Garage PathWetness    Race PathWetness       
  0.00        Dry        Sunny/Sunny          0.00%/0.00%          0.00%/0.00%
70.00        Dry        Rainy/Rainy          0.00%/0.00%          0.00%/0.00%
70.125      Dry        Rainy/Rainy          0.00%/0.00%          0.00%/0.00%
70.25        Dry        Rainy/Rainy          0.00%/0.00%          1.00%/1.00%
70.50        Dry        Rainy/Rainy          0.00%/0.00%          2.00%/2.00%
71.00        Dry        Rainy/Rainy          0.00%/0.00%          3.00%/3.00%
72.50        Dry        Rainy/Rainy          0.00%/0.00%          8.00%/8.00%   
75.00        Dry        Rainy/Rainy          0.00%/0.00%          17.00%/17.00%
77.50        Dry        Rainy/Rainy          0.00%/0.00%          25.00%/25.00%
80.00        Dry        Rainy/Rainy          0.00%/0.00%          33.00%/33.00%
82.50        Dry        Rainy/Rainy          0.00%/0.00%          42.00%/42.00%       
85.00        Dry        Rainy/Rainy          0.00%/0.00%          50.00%/50.00%
87.50        Dry        Rainy/Rainy          0.00%/0.00%          58.00%/58.00%
90.00        Dry        Rainy/Rainy          0.00%/0.00%          67.00%/67.00%
92.50        Dry        Stormy/Stormy        0.00%/0.00%          75.00%/75.00%
95.00        Dry        Stormy/Stormy        0.00%/0.00%          83.00%/83.00%
97.50        Dry        Stormy/Stormy        0.00%/0.00%          92.00%/92.00%
100.00        Dry        Stormy/Stormy        0.00%/0.00%          100.00%/100.00%
 
^ This was recorded from actual in-game weather.txt tests
^ Race Wetness increase from 70-100 is linear: (Conditions - 70) / (100 - 70) * 100 = Race PathWetness %
^ On/OffPathWetness determined by CCGEP Monitor
^ Ignore Track wetness and Garage PathWetness as these would normally be accurate to weather.txt On/OffPathWetness but I had it commented out while testing


Real Time Weather and Time Scaled Weather:
Real Time Weather and Time Scaled Weather:
- Time Scaled Weather does not seem to be related to Daylight Acceleration
- Real Time: Weather file Minute{}s occur at real time speed regardless of Race Weekend Distance Factor or 24H Race Length Factor (Confirmed 240515)
- Time Scaled Weather does not seem to be have any effect for custom weather.txt files
  - Interestingly, Minute{}s do not actually appear to represent time but distance (eg. At Imola, rain came in at the same point even when I was much slower).
   ^ This implies that Time Scaled Weather is for game generated weather files
- Time Scaled: Weather file Minute{}s occur at Real Time speed for Practice/Qualify/Warmup sessions and at a speed factor of Race Weekend Distance Factor or 24H Race Length Factor (Confirmed 240515)
   ^ Which means it's not the weather.txt Minute{}s being Time Scaled but the game weather generation algorithm scaling based on session length.
  - Ex. 100% Distance: Weather events occur at real time speed
   ^ A few weather events play out over longer rather than the game generating many weather events to fill in the time
  - Ex. 50% Distance: Weather events occur 2x faster
   ^ Confirmed by checking weather.txt for a 24h race with Real Time vs Time Scaled Weather
  - Ex. 24H Race Length: Weather events occur at real time speed
- For 24h Race Game Generated Weather Files
   - Ex. 12H Race Length: Weather events occur 2x faster
   - Real Time weather.txt has many more Minute{}s, even though same length session (eg. 180min), a much more granular Minute{} progression, in steps of 1-2 minutes each
- Time Scaled Weather is not affected by Daylight Acceleration (Confirmed 240510)
   - Time Scaled weather.txt has much less Minute{}s, even though same length session (eg. 180min), a broader Minute{} progression, in steps of ~10 minutes each
- Game-generated weather.txt Warmup and Race sections never have Minute{}s
   - But Warmup and Race do respect Minute{}s if they have them
   - A 24H race would need 1440 Minute{} blocks then
  - Tested Race Weekend with Changeable weather and no Minute{}s in Warmup and Race and it did not progress weather like I see in 24H races so there's some difference there
- 24H Race Game Generated Weather Files
   - 24H weather.txt does not have Minute{}s for Warmup or Race but I do see variable weather Conditions and Forecast going through Prac/Qual/Warm/Race
    - I guess Changeable weather under 24H is handled inside the game
   - Real Time weather.txt has many more Minute{}s with a much more granular Minute{} progression in steps of 1-2 minutes each
   - Time Scaled weather.txt has much fewer Minute{}s with a broader Minute{} progression, in steps of ~10 minutes each
   - Real Time weather.txt has more variability in Conditions (ex. 0-40)
   - Real Time weather.txt has more variability in Conditions (ex. 0-40)
   - Time Scaled weather.txt has less variability in Conditions (ex. 65-74)
   - Time Scaled weather.txt has less variability in Conditions (ex. 65-74)
   - Both Real Time and Time Scaled AmbientTemp seems to have a +/- 10C range
   - Both Real Time and Time Scaled AmbientTemp seems to have a +/- 10C range
  - Examples:
    - Hockenheimn 24H:
      - Session lengths: 90/90/60/45/15/1440
      - Minute{}s: 90/90/60/45/0/0 (Warmup and Race had no Minute{} blocks)
    - Monza 24H:
      - Session lengths: 90/90/60/45/15/1440
      - Minute{}s: 90/90/60/45/0/0 (Warmup and Race had no Minute{} blocks)
  - Testing:
    - Weather.txt is generated once at beginning of 24H, it doesn't get rewritten each session
    - Weather.txt persists after exiting GTR2, so no need to alt-tab out and copy&paste the file to save it
- Conclusion:
- Conclusion:
   - Time Scaled Weather's purpose is to simulate longer weather patterns in shortened sessions
   - Time Scaled Weather's purpose is to simulate longer weather patterns in shortened sessions
     - In other words, a few weather events that are longer in duration rather than many more weather events of shorter duration
     - In other words, fewer weather events that are longer in duration rather than many weather events of shorter duration
   - Nothing seems to suggest it allows for scaling up limited weather.txt Minute{}s to sessions with more minutes
   - Nothing seems to suggest it allows for scaling up limited weather.txt Minute{}s to sessions with more minutes
     - But if the game can use a 180min weather.txt to represent 24h then our weather.txt should be able to do that, too
     - Meaning, you should have enough Minute{}s for the session length (eg. 60min = 60 Minute{}s, 3h/180min = 180 Minute{}s, 24H/1440min = 1440 Minute{}s)
  - It seems like Time Scaled Weather is only for 24H races because weather events are happening at the same clock time in non-24h sessions for both Real Time and Time Scaled weather.
 
  - 24H generated weather.txt Race Minute{}s still only represent 180min spread out over a variable number of Minute{}s
To Be Confirmed:
  - So 24H is internally stretching its weather.txt Minute{}s over the session length
- Weather Minute{}s are NOT about TIME, they're about DISTANCE
    ^ Behaviour such as stretching or looping Minute{}s is NOT seen in regular race sessions: In regular races, it loops through the Minute{}s until they're done and does not loop, stretch, or condense them based on the session length.
- True for Real Time AND Time Scaled or just Time Scaled? Because seems to conflict with observations above about Real Time.
  - Used ChatGPT to see if it agrees and it agreed: https://chat.openai.com/c/a3af0967-5df1-45e9-87a9-cdbf1789c4bd


Session Length vs Minute{}s:
Session Length vs Minute{}s:
Line 230: Line 515:
- Applies for Real Time and Time Scaled Weather
- Applies for Real Time and Time Scaled Weather
- Basically, weather always plays through right to the end
- Basically, weather always plays through right to the end
Session Lengths:
- Practice 1/Practice2/Qualify 1/Qualify 2/Warmup/Race
- Race Weekend: 90/90/45/45/15/3h
- 24H: 90/90/60/45/15/24h
- Some championships have variable qualifying times (ie. 20min) but I didn't see more than 60min qualifying sessions
</nowiki></pre>
'''AMS2 Weather Notes for Reference'''
<pre><nowiki>
AMS2 Weather Slots:
- Real Weather: Real Historic Weather based on race date
- 1-4 Slots
AMS2 Weather Forecasts for Slots:
- Clear
- Light Cloud
- Medium Cloud
- Heavy Cloud
- Overcast
- Light Rain
- Rain
- Storm
- Thunderstorm
- Fog
- Fog With Rain
- Heavy Fog
- Heavy Fog With Rain
- Hazy
- Random
AMS2 Weather Progression:
- Sync to Race: Evenly spreads out slots and ensures all slots are used in the session's time
- Real Time: Each slot represents an hour
- Acceleration: 2x, 5x, 10x, 15x, 20x, 25x, 30x, 40x, 50x, 60x
</nowiki></pre>
</nowiki></pre>


== Weather Scratchpad ==
== Weather Scratchpad ==


'''These notes may not be tested or confirmed true'''
<span style="color: Orange;">'''These notes may not be tested or confirmed true'''</span>


<pre><nowiki>
<pre><nowiki>
Line 326: Line 646:
   ^ Scratched: Wetness does not seem to progress in Minute{} blocks.
   ^ Scratched: Wetness does not seem to progress in Minute{} blocks.
     - But Wetness does progress so it seems it's a function of time-conditions-temperature and those do progress in Minute{} blocks
     - But Wetness does progress so it seems it's a function of time-conditions-temperature and those do progress in Minute{} blocks
    - And the initial state could provide interesting possibilities for starting weather scenarios
   
   
Weather seems to interpolate between Minute{}s in some fashion although it's difficult to say how or what ratio, curve, or function is being applied:
Weather seems to interpolate between Minute{}s in some fashion although it's difficult to say how or what ratio, curve, or function is being applied:

Latest revision as of 17:40, 8 November 2024

Description

Gtr2-start-weekend-launcher-240505.jpg

Image: GTR2 Start Weekend Launcher with preconfigured weekend weather for test days, Practice, Qualifying, and Race sessions

This effort morphed into Real Weather for the Crew Chief GTR2 Enhancements Plugin. You're probably looking for that.

  • SHO Weather is now primarily a weather generation script which generates quasi-realistic weather using real weather data for each track location
  • The generation script outputs GTR2-compatible weather files in bulk
  • These weather files are being integrated by The Iron Wolf in-game by adding options to the in-game Rainfall selector along with the Crew Chief GTR2 Enhancements Plugin

Download

Click here to download

Want to help?

Donate to paypal@shovas.ca or send BTC Bitcoin to bc1q8nwwnwp9zljndlcaw4jcmj0yfyqe69fa5k54dm, LTC Litecoin to ltc1qljlmg5673q6j0s5cmxk4ggyn0x5d4npaw25vah, DOGE Dogecoin to DSMwwdHqJ3LMxPe1HiGgNKsWBY2jPi2RwW, or XRP Ripple to rGUoiGSjhsM14sPyePao1eqvjD6sXa1uLL. Thank you!


Weather costs $10 per location from OpenWeatherMap.org. For that price, you get 40 years of data with hourly granularity. The data is open, can be freely shared, and has potential for re-use and repurposing for other mods, games, or software. I think it's good value.

Changes

24050501

  • Average weather generated for each GTR2 original track location based on real weather data
  • Launcher updated to allow launching with a random track's weather file

Install

  1. Extract to GTR2 folder
  2. Run __GTR2__Start__Weekend.cmd and choose desired Weekend Weather
  3. Choose "Changeable" for Rain option when starting your session

Weather will now progress per the custom UserData\Log\weather.txt file put in place by the cmd script.

Launcher

The launcher is a simple cmd script that handles swapping in and out custom weather files with the stock UserData\Log\weather.txt file.

The launcher handles setting the read-only attribute which prevents GTR2 from re-generating the file every session. It then undoes this when you exit GTR2 so everything goes back to normal.

Weather

GTR2's original weather generation algorithm is very uninteresting and you'll rarely see the weather change in a single session.

These custom weather files create more interesting weather scenarios in each session which basically means that there will be some kind of weather change in each session.

Autosim Weather Generator

The Autosim Weather Generator is available from eSports-racing.de and still works on Windows 10(*).

  • It was working fine until I installed Visual Studio with .NET and now it seems to be acting up. So, you may have to uninstall Visual Studio and/or those .NET packages to see it work.

Here's a demonstration of the app:

Here's what one weather set looks like in the app:

Gtr2-autosim-weather.jpg

Real Weather Data

I purchased real weather data from openweathermap.org for all of the original GTR2 track locations. Anyone can purchase any location for USD $10 per location from openweathermap.org.

I'm providing it here in case anyone is interested in making projects out of the data.

The data license is a Creative Commons-like attribution license which means you're basically free to do anything you just have to attribute the license.

See Modernizing_GTR2_with_the_Crew_Chief_GTR2_Enhancements_Plugin#Real_Weather for tracks covered so far and tracks planned for the future.

Weather Generation Script

I have a weather generation script up and running in PHP which generates GTR2 weather files using the OpenWeatherMap data to find min/max/avg temps, humidity, dry/rainy/stormy and generate weather files that generally reflect realistic weather for the track location.

I plan to release the generation script and the generated weather files in upcoming releases.

Download Real Weather Data

See Weather_Data#Racing_Circuits_Real_Weather_Data for full details

Old Changes

...

Weather File Troubleshooting

  • Ensure Rainfall Changeable in-game
  • Symptom: Conditions/Forecast Icons stop working reliably.
    • Advice: Check file structure and syntax

Weather Notepad

These notes are generally tested and confirmed true

File Structure and Syntax:
- Use spaces not tabs
- Use space indents to be safe and to be consistent with original weather.txt
- Check brackets
- End with empty blank line

Session vs Weather File Sections:
- Driving School = Dynamic Weather, not based on weather.txt (Confirmed with read-only dry weather.txt 240506)
- Time Trial = Open Practice (says so in Garage screen)
- Free Practice (Race Weekend) = Open Practice

In-game Session to Weather.txt Name mappings:
- Driving School: Fixed Weather (not in weather.txt)
- Time Trial: Practice1, Practice2
- Open Practice: Practice1
- Free Practice: Practice1, Practice2
- Qualifying: Qualify1, Qualify2
- Warmup: Warmup
- Race: Race

Are HAT files caching weather file data and we might need to enable rebuilding? -->
- No. Still happens even when setting: Always Rebuild HAT="1" // Build HAT database everytime tracks are loaded (for development purposes)

Minute{} Blocks:
- Must specify numeric minute Minute=1.23, not just "Minute" or else GTR2 seems to think the last Minute is the initial conditions and the other Minutes are ignored 
- Minute=0.00{} is the initial conditions / It appears to be skipped / Must start with Minute > 0 or higher  (Minute=0.10 works)

Minute{} Progression:
- A Minute{}'s weather progression reaches its complete state at the start of the Minute{}
  - Ex. Minute=1.00 weather will reach its complete weather at exactly Minute=1.00 which will progress into Minute=2.00 when it will reach its complete weather at exactly Minute=2.00. Minute 3.00, the same, and so on and so on.

Game-generated weather.txt example showing all(?) possible parameters
- I think only Conditions/AmbientTemp track inside Minute{} blocks but worth an experiment

    Weather
    {
        TestDay
        {
            Conditions=0.00
            OnPathWetness=0.00
            OffPathWetness=0.00
            AmbientTemp=10.00
            TrackTemp=10.00
            Minute=1.00
            {
                Conditions=100.00
                AmbientTemp=17.20
            }
    ...
    }

Rainfall (in-game):
- Rainfall is not the same as Conditions
- Does Rainfall specify max Conditions? Ex. Rainfall 80% means max Conditions=80?
  - No, see Rainfall table below.
- Rainfall:
	Rainfall:	Track,		Conditions,				Forecast
	None: 		Dry,		Sunny,					Sunny
	10%:  		Damp, 		Cloudy w/Rain,			Cloudy w/Rain
	20%:  		Damp, 		Cloudy w/Rain,			Cloudy w/Rain
	30%:  		Damp, 		Cloudy w/Rain,			Cloudy w/Rain
	40%:  		Wet,		Cloudy w/Rain,			Cloudy w/Rain
	50%:  		Wet,		Cloudy w/Rain,			Cloudy w/Rain
	60%:  		Wet,		Cloudy w/Rain,			Cloudy w/Rain
	70%:  		Wet,		Cloudy w/Rain,			Cloudy w/Rain
	80%:  		Flooded,	Cloudy w/Thunderstorm,	Cloudy w/Thunderstorm
	90%:  		Flooded,	Cloudy w/Thunderstorm,	Cloudy w/Thunderstorm
	100%: 		Flooded,	Cloudy w/Thunderstorm,	Cloudy w/Thunderstorm
- Unable to check Rainfall level vs weather.txt file because Rainfall < Changeable doesn't generate weather.txt
- More on Rainfall vs Track Wetness (not the same as Conditions):
  0-5 Dry
  6-35 Damp
  36-75 Wet
  76-100 Flooded

Rainfall and Auto-selected Tyres
- Session: Simulation, Race, Donington Park GP 2004
- Rainfall, Track, Ambient, Conditions, Forecast, Tyres Auto-selected
  - None: 20C Dry, 20C, Sunny, Sunny, Medium
  -  10%: 20C Damp, 20C, Cloudy w/Rain, Cloudy w/Rain, Medium
  -  20%: 20C Damp, 20C, Cloudy w/Rain, Cloudy w/Rain, Intermediate
  -  30%: 20C Damp, 20C, Cloudy w/Rain, Cloudy w/Rain, Intermediate
  -  40%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  50%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  60%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  70%: 20C Wet, 20C, Cloudy w/Rain, Cloudy w/Rain, Hard Wet
  -  80%: 20C Flooded, 20C, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm, Soft Wet
  -  90%: 20C Flooded, 20C, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm, Soft Wet
  - 100%: 20C Flooded, 20C, Cloudy w/Thunderstorm, Cloudy w/Thunderstorm, Soft Wet
  - Changeable: 22C Damp, 19C, Cloudy w/Rain, Cloudy w/Rain, Medium

Rainfall vs AI Tyre Selection
- GT's 2004, Donington GP 2004, Race Weekend, Practice 1, 1pm, 21 AI
- Monitoring tyres with TIW CCGEP Monitor
- Inter=Intermediate, Hard=Wet, Soft=Monsoon

    Rainfall  Wetness     AI Tyres            ~ @5min             ~ @10min            ~ @15min            ~ @20min            ~ @25min            ~ @30min
    0%        Dry         Medium              Medium              Medium
    10%       Damp        Medium              Medium              Medium
    20%       Damp        Inter               nter                Inter, 1 Medium
    30%       Damp        Inter/Wet (50/50)   nter/Wet (50/50)    Inter/Wet (50/50)
    40%       Wet         Wet                 Wet                 Wet
    50%       Wet         Wet                 Wet                 Wet
    60%       Wet         Wet                 Wet                 Wet
    70%       Wet         Wet                 Wet                 Wet, 1 Medium
    80%       Flooded     Monsoon             Monsoon             Monsoon, 1 Medium
    90%       Flooded     Monsoon             Monsoon             Monsoon             Monsoon, 1 Medium   Monsoon, 3 Medium
    100%      Flooded     Monsoon             Monsoon             Monsoon, 1 Medium   Monsoon, 4 Medium   Monsoon, 2 Medium   Monsoon, 1 Medium   Monsoon

Rainfall vs AI Tyre Selection (2)
- GT's 2004, Donington GP 2004, Race Weekend, Race, 1pm, 21 AI

    Rainfall    Wetness     AI Tyres            ~ @5min             ~ @10min            ~ @15min            ~ @20min            ~ @25min            ~ @30min
    10%         Damp        Medium              Medium              Medium              Medium              Medium  
    20%         Damp        Inter               Inter               Inter               Inter               Inter
    30%         Damp        Inter/Wet (50/50)   Inter/Wet (50/50)   Inter/Wet (50/50)   Inter/Wet (50/50)   Inter/Wet (50/50)       
    40%         Wet         Wet                 Wet                 Wet                 Wet                 Wet
    50%         Wet         Wet                 Wet                 Wet                 Wet                 Wet
    60%         Wet         Wet                 Wet                 Wet                 Wet                 Wet
    70%         Wet         Wet                 Wet                 Wet                 Wet/Flooded         Wet
    80%         Flooded     Monsoon             Monsoon             Monsoon             Monsoon             Monsoon
    90%         Flooded     Monsoon             Monsoon             Monsoon             Monsoon             Monsoon 
    100%        Flooded     Monsoon             Monsoon             Monsoon             Monsoon             Monsoon

^ Rainfall is constant so we're not seeing how changing conditions effects tyre selection.
  ^ That can be a separate experiment with custom weather files.
  
- NGT's 2004, Donington GP 2004, Race Weekend, Race, 1pm, 21 AI, Custom Weather File

    Time    Conditions  Wetness     AI Tyres                                    Status
    0min    0           Dry         Medium              
    5min    72          15%         Medium
    10min   81          41%         Most Wet, some Medium, 1 Inter
    15min   93          75%         Most Wet, Few Monsoon, 1 Medium, 1 Inter
    20min   81          58%/75%     Most Wet, Few Monsoon, 1 Medium, 1 Inter
    25min   72          41%/73%     Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    30min   0           23%/71%     Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    35min   0           7%/70%      Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    40min   0           0%/68%      Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    45min   0           0%/66%      Most Wet, Few Monsoon, 1 Medium, 1 Inter    Everyone DNF'd
    50min   0           

- Wetness = On-path/Off-path
  - While flooding, on-path and off-path wetness start diverged but end up being the same
  - While draining, on-path and off-path wetness start to diverge so that on-path is almost dry while off-path is still quite wet
    - It almost doesn't feel like off-path is drying quickly enough but that's an in-game algorithm that we can't easily change

Changeable Rain
- Changeable seems to bias rainfall towards Track’s GDB Average Rain parameter. In other words, a track like Donington or Spa may have more sessions with rain than Dubai or Valencia.
- This seems to apply for Temperature as well where Dubai will be routinely much hotter than Donington although this does not seem to be an editable file but baked into the track so you’d need an editor to change this, I guess(?).

Temperature:
- Default Temperature Progression: Ambient 20+, Track: 22+

Conditions Icon (Sunny/Rainy/Stormy):
- Conditions is not the same as Rainfall in-game
- Weather.txt Conditions - Confirmed 240318: 
	0-61 Sunny (Sun)
	62-90 Rainy (Cloud w/Rain)
	91-100 Stormy (Cloud w/Rain and Lightning)
  - The real cut off between Sunny and Rainy and Rainy and Stormy is somewhere between the integer values (ie. 61.65 - 61.70, and 90.XX - 90.YY) but might as well just consider it an integer cut off of 61 and 62

Forecast Icon (Sunny/Rainy/Stormy):
- Requires Minute{} block
- Looks like it uses the next Minute{} for the Forecast
  - Confirmed next Minute{}, not influenced by time difference, either, and not influenced by subsequent Minute{} blocks after the first.
  - Only the next Minute{} block matters for the Forecast Icon
- When no Minute{} blocks are specified, or if there are no more Minute{} blocks remaining, then Forecast appears to indicate a return to initial session Conditions

Forecast Icon Conditions Thresholds (and Conditions Icon?)
- Seems like there is some +/- margin on thresholds 61/62 (Sunny/Rainy) and 90/91 (Rainy/Stormy) where they may be one or the other
  - 56/56 (61 - 5) is the minimum where Conditions/Forecast sticks to Sunny (>56 Forecast is sometimes Rainy)
  - 67/67 (62 + 5) is the minimum where Conditions/Forecast sticks to Rainy (<67 Forecast is sometimes Sunny)
  - 85/85 (90 - 5) is the minimum where Conditions/Forecast sticks to Rainy (>85 Forecast is sometimes Stormy)
  - 96/96 (91 + 5) is the minimum where Conditions/Forecast sticks to Stormy (<96 Forecast is sometimes Rainy)
  - Seems there's a +/- 5 threshold around pivot points anyway
- Forecast Icon appears random (one side of the threshold or the other) within +/- of threshold

Conditions Forecast Tyre Selection
- Sunny/Sunny: Mediums
- Rain/Sunny: Intermediates -> Mediums
- Rain/Rain: Hard Wets

Track Wetness (Dry/Damp/Wet/Flooded):
- Track wetness (Dry/Damp/Wet/Flooded) is related to Conditions but is not the same as Conditions (Sunny/Rainy/Storm) (Confirmed 240318)
  - But a session's starting wetness does seem to be directly related to initial Conditions. That is, a track is immediately Dry/Damp/Wet/Flooded based on a session's immediate starting Conditions.
- Track wetness floods and drains dynamically based on Conditions, temperature, time, and total accumulating laps (the more AI the faster draining progresses)
- Track wetness does not progress (drier or wetter) by On/OffPathWetness in Minute{} progression.
  - It seems to be based on time, Conditions, temperature, and number of laps (the more AI the faster)
- See below for Track Conditions vs Wetness Levels

Starting Weather vs Conditions
- Tested at Donington GP 2004 (Confirmed 240513)

  0.0000: Large Blue Sky Patches, Fluffy White Clouds, Dry Track, Not Raining
 10.0000: Mostly Wispy White Clouds, Dry Track, Not Raining
 20.0000: Same as 0, Dry Track, Not Raining
 30.0000: Same as 10, Dry Track, Not Raining
 40.0000: Like 0 but with maybe some gray clouds in there (Scattered Clouds? Wouldn't say Overcast.), Dry Track, Not Raining
 50.0000: Large Blue Sky Patches, Fluffy White Clouds, Dry Track, Not Raining
 60.0000: Same as 10, Dry Track, Not Raining
 61.0000: Blue Sky, Dry Track, Not Raining, Conditions Sunny, Forecast Sunny/Rainy
 61.1250: Same as 0, Dry Track, Not Raining, Conditions Sunny, Forecast Rainy
 62.0000: Blue Sky, Not Raining, Dry Track, Conditions Rainy, Forecast Rainy
 62.5000: Like 10 but maybe grayer, Dry Track, Not Raining, Conditions Rainy, Forecast Rainy
 63.6250: Like 0 + 10 and graying, Dry Track, Not Raining, Conditions Rainy, Forecast Sunny
 65.0000: Gray and Overcast, Dry Track, Not Raining, Conditions Rainy, Forecast Rainy
 70.0000: Gray and Overcast, Dry Track, Not Raining, Conditions Rainy, Forecast Rainy
 71.0000: Dark Gray and Overcast, Dry Track, Raining, Conditions Rainy, Forecast Rainy
 71.1250: Dark Gray and Overcast, Dry Track, Raining, Conditions Rainy, Forecast Rainy
 72.0000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
 72.5000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
 75.0000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
 80.0000: Dark Gray and Overcast, Damp Track, Raining, Conditions Rainy, Forecast Rainy
 81.0000: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
 82.5000: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
 83.6250: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
 84.1875: Dark Gray and Overcast, Wet Track, Raining, Conditions Rainy, Forecast Rainy
 85.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Rainy, Forecast Rainy
 90.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Rainy, Forecast Rainy
 90.5625: Dark Gray and Overcast, Wet Track, Storming, Conditions Rainy, Forecast Stormy, Track Reflections
 91.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
 91.1250: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
 92.0000: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Rainy, Track Reflections
 92.5000: Dark Gray and Overcast, Wet Track, Storming, Conditions Stormy, Forecast Rainy, Track Reflections
 93.0000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
 95.0000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
 97.5000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
 98.6250: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections
100.0000: Dark Gray and Overcast, Flooded Track, Storming, Conditions Stormy, Forecast Stormy, Track Reflections

^ Storming = Raining + Lightning + Thunder
^ Track Reflections not complete

Conditions Clear vs Cloudiness Levels
- Is there a threshold for Clear vs levels of Cloudiness?
- Tested in Open Practice at Donington, Dubai, Spa 
- GTR2 does not have a "clear" sky, it randomly has mostly clear, some clouds, mostly cloudy, and appears random up until ~62 (Confirmed 240912). It also depends on North/Central/South skies (North doesn't even have clear skies in some mods).
- 0: Mostly blue sky with white clouds
- 1-62: Sometimes mostly blue sky, sometimes half and half
- 62-64: Mostly Cloudy
- 65-70: Overcast, threatening rain
- 71+: Rain
- Bottom line: Looks like I could reliably target Mostly Cloudy (62-64) and Overcast (65-70) as a new Weather Slot
- Confirmed 240605

Mapping GTR2 Conditions to AMS2 Weather Forecasts:
- AMS2: Clear, Light Cloud, Medium Cloud, Heavy Cloud, Overcast, Light Rain, Rain, Storm, Thunderstorm, Fog, Fog With Rain, Heavy Fog, Heavy Fog With Rain, Hazy

0-61: Clear/Light Cloud/Medium Cloud(*)
62-64: Heavy Cloud
65-70: Overcast
71-80: Light Rain (Dry/Damp Track)
81-84: Rain (Wet Track)
85-92: Storm (Wet Track)
95-100: Thunderstorm (Flooded Track)

*GTR2 does not have "Clear" skies. It randomly chooses clear or various levels of clouds for Conditions 0-61. It can depend on sky textures and North/Central/South locations, as well.

Session Starting Conditions:
- TrackTemp: Starting value can be set but does NOT progress in Minute{}s. Game progresses this itself. (Confirmed 240802)
- OnPathWetness, OffPathWetness: These are available but I haven't used yet
  - These progress along with Conditions and AmbientTemp so I don't need to use them
  - But it may be interesting to create different starting weather states using these

	Weather
	{
	 TestDay
	 {
	  Conditions=0.00
	  OnPathWetness=0.00
	  OffPathWetness=0.00
	  AmbientTemp=10.00
	  TrackTemp=10.00
	 },
     ...
    }

- Conditions=100.00 + Minute=0.10 shows Flooded and Forecast Stormy>Rainy briefly then quickly switches to Sunny
  - So it's a good way to show the driver where the track state came from
  - Minute=1.00 takes a little too long
  - Minute=0.50 probably about right...too slow really
  - Minute=0.25 Not bad
  - Minute=0.75 Little bit too slow
  - Minute=0.625
  - Minute=0.28125 Not bad actually
  - Minute=0.25 Probably about right

OnPathWetness/OffPathWetness vs Track Wetness and AI Tyres:

On/OffPathWetness   Track Wetness   Conditions  Forecast    AI Tyres
  0.00              Dry             Sunny       Sunny       Mediums
  2.50              Dry             Sunny       Sunny       Mediums
  5.00              Dry             Sunny       Sunny       Mediums
  5.00244140625     Damp            Sunny       Sunny       Mediums
  5.0048828125      Damp            Sunny       Sunny       Mediums
  5.009765625       Damp            Sunny       Sunny       Mediums
  5.01953125        Damp            Sunny       Sunny       Mediums
  5.0390625         Damp            Sunny       Sunny       Mediums
  5.078125          Damp            Sunny       Sunny       Mediums
  5.15625           Damp            Sunny       Sunny       Mediums
  5.3125            Damp            Sunny       Sunny       Mediums
  5.625             Damp            Sunny       Sunny       Mediums
  6.25              Damp            Sunny       Sunny       Mediums
  7.50              Damp            Sunny       Sunny       Mediums
 10.00              Damp            Sunny       Sunny       Mediums
 20.00              Damp            Sunny       Sunny       Intermediates
 30.00              Damp            Sunny       Sunny       Intermediates/Wets (50/50)
 32.50              Damp            Sunny       Sunny       Intermediates/Wets (60/40)
 35.00              Damp            Sunny       Sunny       Intermediates/Wets (50/50)
 35.01              Wet             Sunny       Sunny       Wets/Intermediates (60/40)
 36.25              Wet             Sunny       Sunny       Intermediates/Wets (60/40)
 37.50              Wet             Sunny       Sunny       Wets/Intermediates (60/40)
 40.00              Wet             Sunny       Sunny       Wets
 50.00              Wet             Sunny       Sunny       Wets
 60.00              Wet             Sunny       Sunny       Wets
 70.00              Wet             Sunny       Sunny       Monsoons/Wets (60/40)
 72.50              Wet             Sunny       Sunny       Wets/Monsoons (60/40)
 75.00              Wet             Sunny       Sunny       Monsoons/Wets (50/50)
 75.01              Flooded         Sunny       Sunny       Monsoons/Wets (50/50)
 77.50              Flooded         Sunny       Sunny       Monsoons/Wets (60/40)
 80.00              Flooded         Sunny       Sunny       Monsoons
 90.00              Flooded         Sunny       Sunny       Monsoons
100.00              Flooded         Sunny       Sunny       Monsoons

^ Conditions=0
^ AmbientTemp=30
^ TrackTemp=35
^ GTs 04, Don GP 04, 21 AI
^ Wets=Hard Wets, Monsoons=Soft Wets
^ On/OffPathWetness maps pretty equally to Rainfall percentages for Track Wetness and Tyre selections

PathWetness vs Conditions vs Track Wetness

PathWetness Conditions  Track
 5.00       0-70        Dry
 7.50       71-80       Damp
37.50       81-92       Wet
77.50       93-100      Flooded

^ I think this was a hand-picked mapping based on previously mapped data tables. See next Conditions vs PathWetness table for actual test results.

Conditions vs Garage PathWetness vs Race PathWetness

Conditions    Track    Conditions/Forecast    Garage PathWetness    Race PathWetness        
  0.00        Dry        Sunny/Sunny          0.00%/0.00%           0.00%/0.00%
 70.00        Dry        Rainy/Rainy          0.00%/0.00%           0.00%/0.00%
 70.125       Dry        Rainy/Rainy          0.00%/0.00%           0.00%/0.00%
 70.25        Dry        Rainy/Rainy          0.00%/0.00%           1.00%/1.00%
 70.50        Dry        Rainy/Rainy          0.00%/0.00%           2.00%/2.00%
 71.00        Dry        Rainy/Rainy          0.00%/0.00%           3.00%/3.00%
 72.50        Dry        Rainy/Rainy          0.00%/0.00%           8.00%/8.00%    
 75.00        Dry        Rainy/Rainy          0.00%/0.00%           17.00%/17.00%
 77.50        Dry        Rainy/Rainy          0.00%/0.00%           25.00%/25.00%
 80.00        Dry        Rainy/Rainy          0.00%/0.00%           33.00%/33.00%
 82.50        Dry        Rainy/Rainy          0.00%/0.00%           42.00%/42.00%        
 85.00        Dry        Rainy/Rainy          0.00%/0.00%           50.00%/50.00%
 87.50        Dry        Rainy/Rainy          0.00%/0.00%           58.00%/58.00%
 90.00        Dry        Rainy/Rainy          0.00%/0.00%           67.00%/67.00%
 92.50        Dry        Stormy/Stormy        0.00%/0.00%           75.00%/75.00%
 95.00        Dry        Stormy/Stormy        0.00%/0.00%           83.00%/83.00%
 97.50        Dry        Stormy/Stormy        0.00%/0.00%           92.00%/92.00%
100.00        Dry        Stormy/Stormy        0.00%/0.00%           100.00%/100.00%

^ This was recorded from actual in-game weather.txt tests
^ Race Wetness increase from 70-100 is linear: (Conditions - 70) / (100 - 70) * 100 = Race PathWetness %
^ On/OffPathWetness determined by CCGEP Monitor
^ Ignore Track wetness and Garage PathWetness as these would normally be accurate to weather.txt On/OffPathWetness but I had it commented out while testing

Real Time Weather and Time Scaled Weather:
- Real Time: Weather file Minute{}s occur at real time speed regardless of Race Weekend Distance Factor or 24H Race Length Factor (Confirmed 240515)
  - Interestingly, Minute{}s do not actually appear to represent time but distance (eg. At Imola, rain came in at the same point even when I was much slower).
- Time Scaled: Weather file Minute{}s occur at Real Time speed for Practice/Qualify/Warmup sessions and at a speed factor of Race Weekend Distance Factor or 24H Race Length Factor (Confirmed 240515)
  - Ex. 100% Distance: Weather events occur at real time speed
  - Ex. 50% Distance: Weather events occur 2x faster
  - Ex. 24H Race Length: Weather events occur at real time speed
  - Ex. 12H Race Length: Weather events occur 2x faster
- Time Scaled Weather is not affected by Daylight Acceleration (Confirmed 240510)
- Game-generated weather.txt Warmup and Race sections never have Minute{}s
  - But Warmup and Race do respect Minute{}s if they have them
  - A 24H race would need 1440 Minute{} blocks then
  - Tested Race Weekend with Changeable weather and no Minute{}s in Warmup and Race and it did not progress weather like I see in 24H races so there's some difference there
- 24H Race Game Generated Weather Files
  - 24H weather.txt does not have Minute{}s for Warmup or Race but I do see variable weather Conditions and Forecast going through Prac/Qual/Warm/Race
    - I guess Changeable weather under 24H is handled inside the game
  - Real Time weather.txt has many more Minute{}s with a much more granular Minute{} progression in steps of 1-2 minutes each
  - Time Scaled weather.txt has much fewer Minute{}s with a broader Minute{} progression, in steps of ~10 minutes each
  - Real Time weather.txt has more variability in Conditions (ex. 0-40)
  - Time Scaled weather.txt has less variability in Conditions (ex. 65-74)
  - Both Real Time and Time Scaled AmbientTemp seems to have a +/- 10C range
  - Examples:
    - Hockenheimn 24H:
      - Session lengths: 90/90/60/45/15/1440
      - Minute{}s: 90/90/60/45/0/0 (Warmup and Race had no Minute{} blocks)
    - Monza 24H:
      - Session lengths: 90/90/60/45/15/1440
      - Minute{}s: 90/90/60/45/0/0 (Warmup and Race had no Minute{} blocks)
  - Testing:
    - Weather.txt is generated once at beginning of 24H, it doesn't get rewritten each session
    - Weather.txt persists after exiting GTR2, so no need to alt-tab out and copy&paste the file to save it
- Conclusion:
  - Time Scaled Weather's purpose is to simulate longer weather patterns in shortened sessions
    - In other words, fewer weather events that are longer in duration rather than many weather events of shorter duration
  - Nothing seems to suggest it allows for scaling up limited weather.txt Minute{}s to sessions with more minutes
    - Meaning, you should have enough Minute{}s for the session length (eg. 60min = 60 Minute{}s, 3h/180min = 180 Minute{}s, 24H/1440min = 1440 Minute{}s)

To Be Confirmed:
- Weather Minute{}s are NOT about TIME, they're about DISTANCE
- True for Real Time AND Time Scaled or just Time Scaled? Because seems to conflict with observations above about Real Time.

Session Length vs Minute{}s:
- At the end of a session, when there are more Minutes{}s then session minutes, weather keeps progressing through Minute{}s 
- When there are less Minute{}s than session minutes, weather stops at last Minute{} and there are no other changes
- Applies for Real Time and Time Scaled Weather
- Basically, weather always plays through right to the end

Session Lengths:
- Practice 1/Practice2/Qualify 1/Qualify 2/Warmup/Race
- Race Weekend: 90/90/45/45/15/3h
- 24H: 90/90/60/45/15/24h
- Some championships have variable qualifying times (ie. 20min) but I didn't see more than 60min qualifying sessions

AMS2 Weather Notes for Reference

AMS2 Weather Slots:
- Real Weather: Real Historic Weather based on race date
- 1-4 Slots

AMS2 Weather Forecasts for Slots:
- Clear
- Light Cloud
- Medium Cloud
- Heavy Cloud
- Overcast
- Light Rain
- Rain
- Storm
- Thunderstorm
- Fog
- Fog With Rain
- Heavy Fog
- Heavy Fog With Rain
- Hazy
- Random

AMS2 Weather Progression:
- Sync to Race: Evenly spreads out slots and ensures all slots are used in the session's time
- Real Time: Each slot represents an hour
- Acceleration: 2x, 5x, 10x, 15x, 20x, 25x, 30x, 40x, 50x, 60x

Weather Scratchpad

These notes may not be tested or confirmed true

TBD: Forecast is the last minute of the session for Practice1 45min(?)
- I don't think so. It might be something like the next Conditions change (eg. Sunny to Rainy or Rainy to Stormy or any sequential combo of those)
  - There may be something weird about 'minimum threshold of change' to update the Forecast icon
- Race 60min: Forecast is Minute 1
  - Race is special: Time is stopped until you start race, then you can't get back to the timing screen with the weather forecast
  - Any Minute with a different Conditions?
Session:
- Weather start offset by 30sec in sessions? Something's going on with a delay...

Track Wetness (Dry/Damp/Wet/Flooded):
  - TODO: Confirm these do or do not progress over time (ex. 5 Dry eventually becomes 6 Damp?)
	0-5 Dry
	6-35 Damp
	36-75 Wet
	76-100 Flooded
- Track wetness floods dynamically based on Conditions and un-floods dynamically
  - Dry->damp_>wet->flooded—>wet->damp-dry:
    - 20C Amb 30C Track
    - 90min Practice:
	  - 0 AI 40min still flooded, ...
	  - 1 AI 40min still flooded, ...
	  - 10 AI 30min flooded->wet, ...
	  - 20 AI 20min flooded->wet, ...
	  - 29 AI 15min flooded->wet, never dry
	- 180min Practice:
      - Damp ~65:00 (-115min)
    - 300min practice 
      - Wet 285:00 (-15min)
      - Damp 185:00 (-115min)
    - 600min practice 1
	  - 29 AI
	  - Cars stop lapping 485:00 (-115min)
	  - Wet 585:00 (-15min)
	  - Damp 486:00 (-114min)
	  - Dry ~275:00 (-325min)
	- 600min practice 2
	  - 3 AI
	  - Cars stop lapping 515:00 (-85min)
	  - Wet 548:00 (-52min)
	  - Damp 472:00 (-128min)
	  - Dry 253:00 (-347min)
	- 600min practice 3
	  - 0 AI
	  - Cars stop lapping  N/A
	  - Wet 515:00 (-85min)
	  - Damp 393:00 (-207min)
	  - Dry 248:00 (-352min)
    - Start Flooded > Wet (Minute 0.10)
      - 600min Practice, 0 AI
      - Wet 516 0C
	  - Wet 541 10C
	  - Wet 552 20C
	  - Wet 564 30C
	  - Wet 568 40C
	  - Wet 573 50C
- Flooded Time to Wet by AI Count and Temperature
  - Starts Flooded, and immediately dries out at Minute=0.10{}
  - 600min Practice
    - 0 AI
	  - Wet 516 0C
	  - Wet 541 10C
 	  -  Wet 552 20C
	  - Wet 564 30C
	  - Wet 568 40C
	  - Wet 573 50C
    - 10 AI
      - Wet 584 0C
      - Wet 584 10C
      - Wet 586 20C
      - Wet 587 30C
      - Wet 587 40C
      - Wet 588 50C
    - 20 AI
      - Wet 588 0C
      - Wet 587 10C
      - Wet 587 20C
      - Wet 588 30C
      - Wet 588 40C
      - Wet 589 50C
    - 29 AI
      - Wet 590 0C
      - Wet 590 10C
      - Wet 591 20C
      - Wet 591 30C
      - Wet 591 40C
      - Wet 591 50C
- Nope: I bet I could include and progress any of the parameters inside Minute{} blocks (eg. OnPathWetness, OffPathWetness)
  ^ Scratched: Wetness does not seem to progress in Minute{} blocks.
    - But Wetness does progress so it seems it's a function of time-conditions-temperature and those do progress in Minute{} blocks
    - And the initial state could provide interesting possibilities for starting weather scenarios
 
Weather seems to interpolate between Minute{}s in some fashion although it's difficult to say how or what ratio, curve, or function is being applied:
- In a 15min Warmup with Real Time Weather:
  - Stormy->Sunny Minute=0.10:  Becomes clear around --:--
  - Stormy->Sunny Minute=1.00:  Becomes clear around --:--
  - Stormy->Sunny Minute=2.00:  Becomes clear around 14:40
  - Stormy->Sunny Minute=3.00:  Becomes clear around 14:15
  - Stormy->Sunny Minute=4.00:  Becomes clear around 13:45
  - Stormy->Sunny Minute=5.00:  Becomes clear around 13:30
  - Stormy->Sunny Minute=10.00: Becomes clear around 11:30
  - Stormy->Sunny Minute=15.00: Becomes clear around 9:30
  - Stormy->Sunny Minute=20.00: Becomes clear around 7:30
  - Stormy->Sunny Minute=25.00: Becomes clear around 5:30
  - Stormy->Sunny Minute=30.00: Becomes clear around 4:00
  - Stormy->Sunny Minute=35.00: Becomes clear around 2:00
  - Stormy->Sunny Minute=40.00: Becomes clear around 0:00
  - Warmup{} in weather.txt:
    Warmup
    {
     Conditions=100.00
     AmbientTemp=20
     Minute=15
     {
      Conditions=0.00
     }
    }
  - Time Scaled Weather seems to act the same as Real Time Weather
  - Time Scaled Weather: 10min warmup, 5min weather: Stopped on minute 5 and held the weather
  - Real Time Weather: 10min warmup, 5min weather: ...
  - Pit camera and Conditions Icon seem to be in sync
  - Minute=0.00{} is the initial conditions / It appears to be skipped / Must start with Minute=1.00{} or higher

5 Minute{}s +20 steps:
2.5m to Rainy, 4m5s to Stormy for both Real Time and Time Scaled Weather
- Minute 3 = 60 Conditions
- Minute 4 = 80 Conditions

10 Minute{}s +10 steps:
6min to Rainy, 9min to Stormy for both Real Time and Time Scaled Weather
- Minute 6 = 60 Conditions
- Minute 8 = 80 Conditions

15 Minute{}s +6.666 steps:
9min to rainy, 13min to Stormy for Real Time and Time Scaled Weather
- Minute 9 = 60 (59.994) Conditions
- Minute 13 = 80 (86.658) Conditions

30 Minute{}s +3.333steps:
Never gets to rain, never gets to Stormy on Real Time or Time Scaled Weather (
- 10m45s to *Forecast* rainy but never gets there
  - Minute 18 = 60 (59.994) Conditions