Railworks Live Weather METAR Decoder

Post your FREEWARE 'Works in Progress' here!

Railworks Live Weather METAR Decoder

Unread postby Alpenfreight » Wed Jan 04, 2017 4:10 pm

Hey All,

One thing in flight simulation that is sorely lacking from train simulation is a dynamic environment with varying and unpredictable changes. One of the largest in my opinion is in the weather. There are just too few preset weather conditions, and they make the sim feel the same every time you're playing it.

Solution?

Simple, let's create custom weather based on the REAL conditions.

I spent a while looking into the weather files and they are actually quite simple. There are a series of parameters that are easily customizable:

Wind Direction
Wind Speed
Precip Type
Precip Density
Precip Speed
Visibility
Storms
Cumulus Clouds
Overcast Clouds
Storm Clouds
Horizon/Fog Color

One can go through and manually edit an XML file and set these settings to their liking, but clearly it would be superior to have this auto-generate, or atleast be as automatic as possible. One way flight simulation programs do this is by reading an aviation weather report or METAR code and decoding it. I have been able to create an excel document that can take a METAR and spit out a complete XML ready to be compiled.

This is an initial V1 concept, all done in excel (google docs actually) reading this Cheyenne WY weather code:

KCYS 042053Z 01013G22KT 1/2SM SN VV012 M16/M19 A2972 RMK AO2 SLP162 P0002 60006 T11611189 55006 RVRNO

Image

And its output:

Code: Select all
<?xml version="1.0" encoding="utf-8"?>                                                                           
<cBlueprintLoader xmlns:d="http://www.kuju.com/TnT/2003/Delta" d:version="1.0">                                                                           
   <Blueprint>                                                                        
      <cWeatherPatternBP>                                                                     
         <DisplayName>                                                                  
            <Localisation-cUserLocalisedString>                                                               
               <English d:type="cDeltaString">1. Clear</English>                                                            
               <French d:type="cDeltaString"></French>                                                            
               <Italian d:type="cDeltaString"></Italian>                                                            
               <German d:type="cDeltaString"></German>                                                            
               <Spanish d:type="cDeltaString">1. Despejado</Spanish>                                                            
               <Dutch d:type="cDeltaString"></Dutch>                                                            
               <Polish d:type="cDeltaString"></Polish>                                                            
               <Russian d:type="cDeltaString"></Russian>                                                            
               <Other/>                                                            
               <Key d:type="cDeltaString"></Key>                                                            
            </Localisation-cUserLocalisedString>                                                               
         </DisplayName>                                                                  
         <WeatherTypeClear>                                                                  
            <cWeatherType>                                                               
               <WindDirection d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">010</WindDirection>                                                            
               <WindSpeed d:type="sFloat32" d:alt_encoding="00000080B0E10140" d:precision="string">11.31768</WindSpeed>                                                            
               <PrecipitationType d:type="cDeltaString">ePrecipitationSnow</PrecipitationType>                                                            
               <PrecipitationDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.5</PrecipitationDensity>                                                            
               <PrecipitationSpeed d:type="sFloat32" d:alt_encoding="000000A099992340" d:precision="string">5.0594556672</PrecipitationSpeed>                                                            
               <FogOverride d:type="cDeltaString">eTrue</FogOverride>                                                            
               <FogColour>                                                            
                  <cHcColour>                                                         
                     <Red d:type="sFloat32" d:alt_encoding="000000C0CCCCF03F" d:precision="string">1.05</Red>                                                      
                     <Green d:type="sFloat32" d:alt_encoding="000000A09999E93F" d:precision="string">0.8</Green>                                                      
                     <Blue d:type="sFloat32" d:alt_encoding="000000403333E33F" d:precision="string">0.6</Blue>                                                      
                     <Alpha d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</Alpha>                                                      
                  </cHcColour>                                                         
               </FogColour>                                                            
               <FogStart d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">482.802</FogStart>                                                            
               <FogEnd d:type="sFloat32" d:alt_encoding="000000000094C140" d:precision="string">804.67</FogEnd>                                                            
               <LightningDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningDensity>                                                            
               <LightningFrequency d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningFrequency>                                                            
               <BlendInTime d:type="sFloat32" d:alt_encoding="0000000000002E40" d:precision="string">15</BlendInTime>                                                            
               <CloudType d:type="cDeltaString">eCloudClear</CloudType>                                                            
            </cWeatherType>                                                               
         </WeatherTypeClear>                                                                  
         <WeatherTypeOvercast>                                                                  
            <cWeatherType>                                                               
               <WindDirection d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">010</WindDirection>                                                            
               <WindSpeed d:type="sFloat32" d:alt_encoding="00000080B0E10140" d:precision="string">11.31768</WindSpeed>                                                            
               <PrecipitationType d:type="cDeltaString">ePrecipitationSnow</PrecipitationType>                                                            
               <PrecipitationDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.5</PrecipitationDensity>                                                            
               <PrecipitationSpeed d:type="sFloat32" d:alt_encoding="000000A099992340" d:precision="string">5.0594556672</PrecipitationSpeed>                                                            
               <FogOverride d:type="cDeltaString">eTrue</FogOverride>                                                            
               <FogColour>                                                            
                  <cHcColour>                                                         
                     <Red d:type="sFloat32" d:alt_encoding="000000C0CCCCF03F" d:precision="string">1.05</Red>                                                      
                     <Green d:type="sFloat32" d:alt_encoding="000000A09999E93F" d:precision="string">0.8</Green>                                                      
                     <Blue d:type="sFloat32" d:alt_encoding="000000403333E33F" d:precision="string">0.6</Blue>                                                      
                     <Alpha d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</Alpha>                                                      
                  </cHcColour>                                                         
               </FogColour>                                                            
               <FogStart d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">482.802</FogStart>                                                            
               <FogEnd d:type="sFloat32" d:alt_encoding="000000000094C140" d:precision="string">804.67</FogEnd>                                                            
               <LightningDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningDensity>                                                            
               <LightningFrequency d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningFrequency>                                                            
               <BlendInTime d:type="sFloat32" d:alt_encoding="0000000000002E40" d:precision="string">15</BlendInTime>                                                            
               <CloudType d:type="cDeltaString">eCloudClear</CloudType>                                                            
            </cWeatherType>                                                               
         </WeatherTypeOvercast>                                                                  
         <WeatherTypeRain>                                                                  
            <cWeatherType>                                                               
               <WindDirection d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</WindDirection>                                                            
               <WindSpeed d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</WindSpeed>                                                            
               <PrecipitationType d:type="cDeltaString">ePrecipitationRain</PrecipitationType>                                                            
               <PrecipitationDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</PrecipitationDensity>                                                            
               <PrecipitationSpeed d:type="sFloat32" d:alt_encoding="000000A099992340" d:precision="string">9.8</PrecipitationSpeed>                                                            
               <FogOverride d:type="cDeltaString">eFalse</FogOverride>                                                            
               <FogColour>                                                            
                  <cHcColour>                                                         
                     <Red d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Red>                                                      
                     <Green d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Green>                                                      
                     <Blue d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Blue>                                                      
                     <Alpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Alpha>                                                      
                  </cHcColour>                                                         
               </FogColour>                                                            
               <FogStart d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</FogStart>                                                            
               <FogEnd d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</FogEnd>                                                            
               <LightningDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningDensity>                                                            
               <LightningFrequency d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningFrequency>                                                            
               <BlendInTime d:type="sFloat32" d:alt_encoding="0000000000002E40" d:precision="string">15</BlendInTime>                                                            
               <CloudType d:type="cDeltaString">eCloudClear</CloudType>                                                            
            </cWeatherType>                                                               
         </WeatherTypeRain>                                                                  
         <WeatherTypeStorm>                                                                  
            <cWeatherType>                                                               
               <WindDirection d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</WindDirection>                                                            
               <WindSpeed d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</WindSpeed>                                                            
               <PrecipitationType d:type="cDeltaString">ePrecipitationRain</PrecipitationType>                                                            
               <PrecipitationDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</PrecipitationDensity>                                                            
               <PrecipitationSpeed d:type="sFloat32" d:alt_encoding="000000A099992340" d:precision="string">9.8</PrecipitationSpeed>                                                            
               <FogOverride d:type="cDeltaString">eFalse</FogOverride>                                                            
               <FogColour>                                                            
                  <cHcColour>                                                         
                     <Red d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Red>                                                      
                     <Green d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Green>                                                      
                     <Blue d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Blue>                                                      
                     <Alpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Alpha>                                                      
                  </cHcColour>                                                         
               </FogColour>                                                            
               <FogStart d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</FogStart>                                                            
               <FogEnd d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</FogEnd>                                                            
               <LightningDensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningDensity>                                                            
               <LightningFrequency d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</LightningFrequency>                                                            
               <BlendInTime d:type="sFloat32" d:alt_encoding="0000000000002E40" d:precision="string">15</BlendInTime>                                                            
               <CloudType d:type="cDeltaString">eCloudClear</CloudType>                                                            
            </cWeatherType>                                                               
         </WeatherTypeStorm>                                                                  
         <PrecipitationRain>                                                                  
            <cPrecipitationDescription>                                                               
               <BottomLeftViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftViewSpaceOffset>                                                            
               <TopRightViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </TopRightViewSpaceOffset>                                                            
               <BottomLeftUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftUV>                                                            
               <TopRightUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </TopRightUV>                                                            
               <AlphaTop d:type="sUInt32">255</AlphaTop>                                                            
               <AlphaBottom d:type="sUInt32">255</AlphaBottom>                                                            
               <ParticleStreakMultiplier d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</ParticleStreakMultiplier>                                                            
               <TextureID d:type="cDeltaString"></TextureID>                                                            
            </cPrecipitationDescription>                                                               
         </PrecipitationRain>                                                                  
         <PrecipitationSleet>                                                                  
            <cPrecipitationDescription>                                                               
               <BottomLeftViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftViewSpaceOffset>                                                            
               <TopRightViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </TopRightViewSpaceOffset>                                                            
               <BottomLeftUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftUV>                                                            
               <TopRightUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </TopRightUV>                                                            
               <AlphaTop d:type="sUInt32">255</AlphaTop>                                                            
               <AlphaBottom d:type="sUInt32">255</AlphaBottom>                                                            
               <ParticleStreakMultiplier d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</ParticleStreakMultiplier>                                                            
               <TextureID d:type="cDeltaString"></TextureID>                                                            
            </cPrecipitationDescription>                                                               
         </PrecipitationSleet>                                                                  
         <PrecipitationHail>                                                                  
            <cPrecipitationDescription>                                                               
               <BottomLeftViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftViewSpaceOffset>                                                            
               <TopRightViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </TopRightViewSpaceOffset>                                                            
               <BottomLeftUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftUV>                                                            
               <TopRightUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </TopRightUV>                                                            
               <AlphaTop d:type="sUInt32">255</AlphaTop>                                                            
               <AlphaBottom d:type="sUInt32">255</AlphaBottom>                                                            
               <ParticleStreakMultiplier d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</ParticleStreakMultiplier>                                                            
               <TextureID d:type="cDeltaString"></TextureID>                                                            
            </cPrecipitationDescription>                                                               
         </PrecipitationHail>                                                                  
         <PrecipitationSnow>                                                                  
            <cPrecipitationDescription>                                                               
               <BottomLeftViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftViewSpaceOffset>                                                            
               <TopRightViewSpaceOffset>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.1</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.1</Y>                                                      
                  </cRVector2>                                                         
               </TopRightViewSpaceOffset>                                                            
               <BottomLeftUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Y>                                                      
                  </cRVector2>                                                         
               </BottomLeftUV>                                                            
               <TopRightUV>                                                            
                  <cRVector2>                                                         
                     <X d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">1</X>                                                      
                     <Y d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">1</Y>                                                      
                  </cRVector2>                                                         
               </TopRightUV>                                                            
               <AlphaTop d:type="sUInt32">120</AlphaTop>                                                            
               <AlphaBottom d:type="sUInt32">120</AlphaBottom>                                                            
               <ParticleStreakMultiplier d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</ParticleStreakMultiplier>                                                            
               <TextureID d:type="cDeltaString">Kuju\RailSimulatorCore\Weather\[00]snowflake</TextureID>                                                            
            </cPrecipitationDescription>                                                               
         </PrecipitationSnow>                                                                  
         <CloudClear>                                                                  
            <cCloudDescription>                                                               
               <WispyLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</WispyLayerAlpha>                                                            
               <ThickCloudLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.7</ThickCloudLayerAlpha>                                                            
               <StormLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</StormLayerAlpha>                                                            
               <ColourDarkeningIntensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</ColourDarkeningIntensity>                                                            
            </cCloudDescription>                                                               
         </CloudClear>                                                                  
         <CloudOvercast>                                                                  
            <cCloudDescription>                                                               
               <WispyLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</WispyLayerAlpha>                                                            
               <ThickCloudLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0.7</ThickCloudLayerAlpha>                                                            
               <StormLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</StormLayerAlpha>                                                            
               <ColourDarkeningIntensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</ColourDarkeningIntensity>                                                            
            </cCloudDescription>                                                               
         </CloudOvercast>                                                                  
         <CloudRain>                                                                  
            <cCloudDescription>                                                               
               <WispyLayerAlpha d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</WispyLayerAlpha>                                                            
               <ThickCloudLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</ThickCloudLayerAlpha>                                                            
               <StormLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</StormLayerAlpha>                                                            
               <ColourDarkeningIntensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</ColourDarkeningIntensity>                                                            
            </cCloudDescription>                                                               
         </CloudRain>                                                                  
         <CloudStorm>                                                                  
            <cCloudDescription>                                                               
               <WispyLayerAlpha d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</WispyLayerAlpha>                                                            
               <ThickCloudLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</ThickCloudLayerAlpha>                                                            
               <StormLayerAlpha d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</StormLayerAlpha>                                                            
               <ColourDarkeningIntensity d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</ColourDarkeningIntensity>                                                            
            </cCloudDescription>                                                               
         </CloudStorm>                                                                  
         <WeatherEvent>                                                                  
            <cWeatherEvent d:id="20305720">                                                               
               <Type d:type="cDeltaString">eWeatherTypeClear</Type>                                                            
               <Time d:type="sFloat32" d:alt_encoding="0000000000004E40" d:precision="string">45</Time>                                                            
            </cWeatherEvent>                                                               
            <cWeatherEvent d:id="20305720">                                                               
               <Type d:type="cDeltaString">eWeatherTypeOvercast</Type>                                                            
               <Time d:type="sFloat32" d:alt_encoding="0000000000004E40" d:precision="string">999</Time>                                                            
            </cWeatherEvent>                                                               
         </WeatherEvent>                                                                  
         <Name d:type="cDeltaString">IL_Clear</Name>                                                                  
         <AudioControl d:type="cDeltaString">Kuju\RailSimulatorCore\Audio\Weather\Weather</AudioControl>                                                                  
      </cWeatherPatternBP>                                                                     
   </Blueprint>                                                                        
</cBlueprintLoader>                                                                           


This is really just a proof of concept, but all that would be needed is to compile with SERZ and run. I have been compiling to the "Clear" weather theme in the RailsimulatorCore fileset and I am able to use quickdrive scenarios with it. This coupled with custom quick drives and custom route-specific AI consists create a very dynamic sim so far.

I am continuing to work on this, currently it only supports one METAR code, but as you can see I've started laying out the groundwork to be able to input two, start and destination so the weather can change during your journey.
https://alpenfreight.wordpress.com/

I hear the train a comin'
It's rollin' 'round the bend
User avatar
Alpenfreight
 
Posts: 403
Joined: Fri Jan 09, 2015 8:32 am
Location: Boston

Re: Railworks Live Weather METAR Decoder

Unread postby ozinoz » Wed Jan 04, 2017 4:16 pm

I hate smart people !*roll-laugh*!

Excellent idea. Good luck with your project. !!*ok*!!

Now, get back to Sherman Hill *!lol!*

!*cheers*!
ozinoz
 
Posts: 1622
Joined: Fri Feb 20, 2009 1:59 am
Location: Antipodes

Re: Railworks Live Weather METAR Decoder

Unread postby Chacal » Wed Jan 04, 2017 5:07 pm

Awesome. That's the kind of crazy work I like.
Does the game allow changing weather during a scenario?
Over the hill and gathering speed
Chacal
Site Admin
 
Posts: 6611
Joined: Tue Jul 05, 2011 1:11 pm
Location: Quebec, Canada

Re: Railworks Live Weather METAR Decoder

Unread postby NStrains » Wed Jan 04, 2017 5:18 pm

Chacal wrote:Awesome. That's the kind of crazy work I like.
Does the game allow changing weather during a scenario?

Well I know Sherman Hill has a scenario that starts out like partly cloudy and turns into thunderstorms.
User avatar
NStrains
 
Posts: 1367
Joined: Sun Nov 15, 2015 1:31 pm
Location: VA near the "B-Line"

Re: Railworks Live Weather METAR Decoder

Unread postby Alpenfreight » Wed Jan 04, 2017 5:26 pm

Chacal wrote:Awesome. That's the kind of crazy work I like.
Does the game allow changing weather during a scenario?


Yes, you can set up to 4 different weather themes and change between them as much as you want. It is all scripted changes, but If you're doing a simple point a to point b run, having two weather sets that change roughly in the middle keeps it interesting. That is how I have it set up now.
https://alpenfreight.wordpress.com/

I hear the train a comin'
It's rollin' 'round the bend
User avatar
Alpenfreight
 
Posts: 403
Joined: Fri Jan 09, 2015 8:32 am
Location: Boston

Re: Railworks Live Weather METAR Decoder

Unread postby ssbobz » Wed Jan 04, 2017 5:34 pm

Very interesting work.
ssbobz
 
Posts: 551
Joined: Thu Feb 11, 2016 10:54 am

Re: Railworks Live Weather METAR Decoder

Unread postby ZekTheKid » Wed Jan 04, 2017 5:58 pm

Interesting. It's nice to have more weather options. Also, would this add medium and heavy snowfall options? The current option for snow only gives you light snow for the 3D 'snow' option.
Image
Anthony Nguyen
Youtube: https://www.youtube.com/fastfreightstudios
GeForce RTX 3050Ti Mobile, AMD Ryzen 7 5800H, 16GB RAM, 3TB Storage

It's January. So long...
User avatar
ZekTheKid
 
Posts: 2430
Joined: Mon Dec 29, 2014 6:05 pm
Location: Cumberland, MD

Re: Railworks Live Weather METAR Decoder

Unread postby Alpenfreight » Wed Jan 04, 2017 6:30 pm

ZekTheKid wrote:Interesting. It's nice to have more weather options. Also, would this add medium and heavy snowfall options? The current option for snow only gives you light snow for the 3D 'snow' option.


This allows for 3 different levels of each kind of precipitation. Also the possibility to transition from rain to snow and vice-versa.
https://alpenfreight.wordpress.com/

I hear the train a comin'
It's rollin' 'round the bend
User avatar
Alpenfreight
 
Posts: 403
Joined: Fri Jan 09, 2015 8:32 am
Location: Boston

Re: Railworks Live Weather METAR Decoder

Unread postby SKRRF » Wed Jan 04, 2017 6:36 pm

That's awesome, don't know that this will work. Can't wait for it. **!!bow!!**
User avatar
SKRRF
 
Posts: 77
Joined: Sun Nov 20, 2016 3:52 pm
Location: Germany, Eutin

Re: Railworks Live Weather METAR Decoder

Unread postby harryadkins » Thu Jan 05, 2017 11:01 am

Very creative...
User avatar
harryadkins
 
Posts: 3194
Joined: Sun Aug 23, 2009 8:01 am
Location: South Carolina, USA

Re: Railworks Live Weather METAR Decoder

Unread postby Alpenfreight » Fri Jan 06, 2017 2:50 pm

Ok I believe I have worked out all of the major kinks. I have tried over 100 different metar codes and they all produce realistic weather. I've also given all parameters small random ranges so it will spice up the weather a bit more automatically.

If anyone wants to test this with me send me a PM. It isn't extremely complicated to use but you will need knowledge of excel and compiling/uncompiling files with SERZ.
https://alpenfreight.wordpress.com/

I hear the train a comin'
It's rollin' 'round the bend
User avatar
Alpenfreight
 
Posts: 403
Joined: Fri Jan 09, 2015 8:32 am
Location: Boston


Return to Freeware WIP

Who is online

Users browsing this forum: No registered users and 3 guests