WeatherSetObservation

Discuss on the SimConnect SDK can be used by programmers to write add-on components for Prepar3D
Locked
User avatar
Opus Software
Posts: 35
Joined: Tue Apr 17, 2012 1:08 pm
Contact:

WeatherSetObservation

Post by Opus Software »

Using the WeatherSetObservation SimConnect function with a non-zero delay (in seconds), only works when applied to the simulator's 'in-built' weather stations. It does not work, nor accept any injected weather, at any temporary weather stations created using the WeatherCreateStation function.

Furthermore, setting any weather using the WeatherSetObservation SimConnect function with a zero delay parameter has the undesirable effect of changing all the cloud patterns (shifting the clouds) at the observers (aircraft) position even when at great distances from the station. E.g. Injecting weather with a zero delay at a site 80 miles away creates cloud shifts around the aircraft. It would help greatly and be more realistic if the area of influence around a weather station was limited, even user specified.

Stephen
User avatar
Opus Software
Posts: 35
Joined: Tue Apr 17, 2012 1:08 pm
Contact:

Re: WeatherSetObservation

Post by Opus Software »

Additional Information and Observations ...

I have also noticed when the WeatherSetObservation function is used the clouds appear only over a 'very small patch of sky quite a few miles away from the specified weather station. In FSX the injected weather extends for at least 5 miles in every direction 'centred' on the weather station, as would be expected . In the current P3D this is not the case and the weather (e.g. clouds) do not even appear at the intended weather station site.

I should also mention (not as important) that the WeatherSetModeCustom function still reset ALL weather in the sim to clear skies, it destroys all weather that has previously been injected. This does not happen in FSX nor did it happen in the earliest (pre version 3) releases of P3D. This has been reported a long time ago. This is not as great a problem as above but does render the function almost useless.

The main problem is with the use of the WeatherSetObservation function for injecting Metar weather. The function should not cause visible cloud shifts 100s of mile away when used with zero seconds delay, and should of course work with ALL weather stations (including user created ones) when a non-zero seconds delay is specified.

Stephen

P.S.

It would be great if in future the Metar 'zone or radius of influence' could be specified by the user. That would reduce the number of user created weather stations needing to be created. The sim should simply blend the weather zones together at the edges rather than trying to extend the Metars influence over enormous distance or cause cloud shifts 100s of miles away.

Thanks
Stephen
User avatar
Opus Software
Posts: 35
Joined: Tue Apr 17, 2012 1:08 pm
Contact:

Re: WeatherSetObservation

Post by Opus Software »

In summary of my findings and previous fault reports ...

Problem 1.

In FSX when you use the WeatherSetModeCustom SimConnect function it changes the mode but has no effect on the current weather. In P3D this function always destroys all weather, resetting the weather to 'clear skies'. In P3D this function is almost unusable.

Problem 2.

In FSX when using the WeatherSetObservation SimConnect function with a zero second delay to inject 'distant' weather, the sim injects the weather correctly with absolutely no visible changes to the observed weather at your current location. The weather changes are 'local' to the specified weather station. In P3D you get cloud shifts even when over 100 miles away from the specified weather station.

Problem 3.

In FSX when using the WeatherSetObservation SimConnect function to inject weather the sim injects the weather correctly filling a zone about 5 miles radius centred on the weather station (as expected). In P3D the sim injects a small blob of weather which can even be several miles away from the specified weather station. In P3D any injected cloud cover may not even cover the weather station site.

Problem 4.

In both FSX and P3D the WeatherSetObservation SimConnect function used with a non-zero second delay parameter only works when applied to 'existing pre-defined weather stations'. The function does NOT work at temporary 'user created' weather stations, at these sites the function has no affect and does not inject the specified weather.

Problem 5.

In both FSX and P3D the procedure to remove temporary 'user created' weather stations (with the WeatherRemoveStation function) is very inefficient and the SimConnect function is practically unusable. The process of removing 'distant' temporary weather stations should be both efficient and have no visible effect on the weather (no local cloud shifts) at the aircraft location.

It would make a huge difference if these Weather SimConnect functions could be corrected and relied upon.

Regards
Stephen
Adam Breed
Lockheed Martin
Posts: 1382
Joined: Mon Sep 20, 2010 6:17 pm

Re: WeatherSetObservation

Post by Adam Breed »

Thanks for the reports.
Opus Software wrote: Wed Jan 31, 2018 10:01 am Problem 1.

In FSX when you use the WeatherSetModeCustom SimConnect function it changes the mode but has no effect on the current weather. In P3D this function always destroys all weather, resetting the weather to 'clear skies'. In P3D this function is almost unusable.
If custom stations are not set before changing the mode, they will be uninitialized causing the 'clear skies' effect. This was changed in to ensure weather add-on developers were getting exactly what they expected for custom stations.
Opus Software wrote: Wed Jan 31, 2018 10:01 am Problem 2.

In FSX when using the WeatherSetObservation SimConnect function with a zero second delay to inject 'distant' weather, the sim injects the weather correctly with absolutely no visible changes to the observed weather at your current location. The weather changes are 'local' to the specified weather station. In P3D you get cloud shifts even when over 100 miles away from the specified weather station.
We can investigate this one further, but likely has to do with changes to better interpolate weather changes between stations. Do you have a SimConnect sample you can provide? Have you tried it in previous Prepar3D releases?
Opus Software wrote: Wed Jan 31, 2018 10:01 am Problem 3.

In FSX when using the WeatherSetObservation SimConnect function to inject weather the sim injects the weather correctly filling a zone about 5 miles radius centred on the weather station (as expected). In P3D the sim injects a small blob of weather which can even be several miles away from the specified weather station. In P3D any injected cloud cover may not even cover the weather station site.
Same comment as before. Do you have a SimConnect sample you can provide? Have you tried it in previous Prepar3D releases?
Opus Software wrote: Wed Jan 31, 2018 10:01 am Problem 4.

In both FSX and P3D the WeatherSetObservation SimConnect function used with a non-zero second delay parameter only works when applied to 'existing pre-defined weather stations'. The function does NOT work at temporary 'user created' weather stations, at these sites the function has no affect and does not inject the specified weather.
This is in regards to SimConnect_WeatherCreateStation created stations, correct?
Opus Software wrote: Wed Jan 31, 2018 10:01 am Problem 5.

In both FSX and P3D the procedure to remove temporary 'user created' weather stations (with the WeatherRemoveStation function) is very inefficient and the SimConnect function is practically unusable. The process of removing 'distant' temporary weather stations should be both efficient and have no visible effect on the weather (no local cloud shifts) at the aircraft location.
Are you saying it is inefficient because it causes lag or simply takes a long time? How often are you doing this and what is the concept/process for removing them in your add-on?

Thanks again for the reports and please let us know,
Adam
Prepar3D® Engineering Project Manager
User avatar
Opus Software
Posts: 35
Joined: Tue Apr 17, 2012 1:08 pm
Contact:

Re: WeatherSetObservation

Post by Opus Software »

Hi Adam,

Many thanks for the reply. I hope the following notes and clarification helps.

Problem 1.

Use of the WeatherSetModeCustom function destroys previously injected weather...

Firstly, this problem is minor in comparison to the use of the WeatherSetObservation and WeatherSetModeTheme SimConnect functions. It is of secondary consideration, we have actually disabled its use in P3D mode although it is needed in FSX as certain weather injection does not work unless this mode is set.

Up to recent times, this function has always worked without destroying the previously injected weather. I am referring to FSX and early versions of P3D. It did function correctly in early P3D versions but became unusable (because it destroys any injected weather) in the later versions (I think from v3 onwards).

Developers have come to expect the change of mode to have absolutely no effect on any previously injected weather. This weather could have been injected as METARS to individual stations or using dynamically created weather themes. Developers assume all injected weather is the current 'desired' weather. Bare in mind that injecting METARs to Weather Stations is currently problematic (see below).

Previously mode changes did not destroy any previously injected weather, nor have they had any drastic or visible changes to the displayed weather. Weather add-on developers do not want their injected weather destroyed by such changes if possible. If 'clear skies' are desired then 'clear skies' can be injected using METAR(s) or a 'clear sky' weather theme loaded.

If however, the use of this function is to be redefined (or corrected) then it doesn't really matter too much as long as live weather can be injected as expected using the WeatherSetObservation and WeatherSetModeTheme SimConnect functions.

Problem 2.

Use of the WeatherSetObservation SimConnect function with a zero seconds delay...

I think the problem with the use of the WeatherSetObservation SimConnect function (with a zero second delay parameter) is quite severe. I'm not sure when this functions use or effect actually changed in P3D. Its action and effect are now different, different enough to prevent it being of much use. Injecting a distant METAR update using this function (with zero second delay parameter) should not cause any visible effect locally (i.e. it should not cause any local cloud shifts).

For example, injecting a METAR update (with zero second delay parameter) for EGKK (London Gatwick) whilst sat on the ground at EGNX (East Midlands) should not cause visible changes or cloud shifts at the EGNX location. Gatwick is over 200km away (over 100 nautical miles) but injecting an updated METAR there will still cause visible cloud shifts at East Midlands. Developers are needing the weather injection methods (WeatherSetObservation and WeatherSetModeTheme functions) to capable of being used without causing any sudden or immediate visible cloud shifts, ambient wind direction shifts etc.

The use of any of the weather inject SimConnect methods should never cause 'sudden' visible or immediate changes to the local weather (unless done deliberately). There should be no immediate cloud shifts, no immediate ambient wind direction shifts causing overspeeds etc. Irrespective of whether the WeatherSetObservation SimConnect function is used to inject a new METAR (either for distant updates with zero seconds delay, or local updates with a non-zero seconds gradual delay), or using the WeatherSetModeTheme SimConnect function to inject a new or updated Dynamic Weather Theme. Neither of these functions should cause sudden immediate cloud or ambient wind shifts. All changes should be gradually introduced or perhaps a zone of no change specified for the injection of an updated weather theme.

Problem 3.

Use of the WeatherSetObservation SimConnect function with a non-zero second delay...

To clarify this problem I should say I am referring to injecting weather (with cloud changes) to a pre-defined Weather Station (e.g. EGNX) using the WeatherSetObservation SimConnect function with a non-zero second delay parameter (e.g. 5 seconds). I refer to an in-built Weather Station as the function does not work with non-zero delays to user created weather stations. Of course I have used the WeatherSetDynamicUpdateRate( 5 ) function to set max rate of weather change allowing the weather changes to take place.

For example, with a clear skies theme injected, I can inject METARs with different cloud patterns to the above in-built weather station (EGNX) whilst airborne and located some distance from the weather station. Located far enough away to get a good look at the effect (Slew mode is most helpful here). In FSX and early P3D the cloud changes would appear overhead and in the immediate vicinity of the weather station. In the current P3D version the clouds changes appear some distance away and off to one side from the station.

The function works perfectly fine when a zero delay parameter is used and the changes are immediate. Its just when a non-zero delay is used to gradually bleed in the cloud changes.

Problem 4.

Use of the WeatherSetObservation SimConnect function with a non-zero second delay...

Yes its in regard to user stations created using the WeatherCreateStation function. The WeatherSetObservation SimConnect function with a non-zero second delay simply does not work at all to these sites. Furthermore the function cannot be used for distant stations with a zero delay as that causes cloud shifts locally.

Problem 5.

In order to provide full varied, detailed and accurate weather during a long flight a large number of user created weather stations are required (only of use if Problems 2 and/or 4 above are corrected, preferably both). The process of removing these stations used to cause a great deal of lag in the sim. I have not used this method of weather update in P3D due to the problems mentioned above (weather cannot be injected without the unwanted side effect, e.g. cloud shifts).

This may not be such a problem with the latest 64-bit P3D if creating thousands of user weather stations has no adverse effect on the sims performance. Of course, removing a distant user weather station must not cause cloud shifts locally. If weather could be injected at a user specified lat/lon location instead, without the need of a weather station then that would be ideal.

In summary...

The problems mainly lie with the use of the WeatherSetObservation SimConnect function, used with either a zero or a non-zero seconds delay parameter.

When used with a zero seconds delay (immediate changes) the function would be useful in changing distant (beyond the horizon) weather provided no visible changes (cloud shifts) occurred locally which can ruin immersion for the pilot.

When used with a non-zero seconds delay (gradual change, especially to cloud formations) the function can only be of use if it works equally well applied to both in-built and user created weather stations.

The aim is to inject and update the live weather without causing sudden cloud shifts or shifts in ambient wind direction (resulting in over or under speeds of the aircraft). The injection of weather using dynamically created weather themes injected using the WeatherSetModeTheme SimConnect function is most desirable and efficient, however what is needed is some method to inject a theme without causing the above sudden cloud and wind direction shifts. It would be great if a theme could be injected with a user specified dead or no change zone, or if any changes could be introduced gradually over a period of time, just as it is with the corrected WeatherSetObservation function.

Many thanks for looking into these matters Adam.

Best regards
Stephen
Locked