Outerra forum
User mods, screenshots & videos => Aircraft => Topic started by: bomber on March 28, 2015, 03:31:13 pm
-
Update to the flight model to come..... We need to work on a wind map...
-
Update to the flight model to come..... We need to work on a wind map...
Is that like a static map where at a given point on the map you would have x wind speed in y direction? and then air moving up and down as well?
-
Yes something like that.... Colour index map...
If it has to start out as static, then so be it, but over time if expect this map to be server derived so as we're all experiencing the same thing.
-
That would be so cool!!!! a bit or a lot of unexpected would add so much to the experience of flying.
-
I just think it's not outside the boundaries of our abilities to develop a system that looks at the layout of the land and calculates expected wind, shear , eddies etc ... not in real time, produces a 'map'. That can be then easily used by jsbsim to adjust certain inbuilt property values in real time.
It doesn't have to be real complicated to start with... 256 colours speeds from 0-what ever. another map 256 colours for direction (360 would be better but heck computers weren't thought of when the compass was created) and a grey scale map for speed of rising or sinking air.
Of course this has to be sync'd into the terrain such that for a given grid position we get a colour number, colour number, greyscale number.
The rest is JSBsim.
Look this is just an idea of how I'd go about doing it... if someone has a better idea great
-
I just think it's not outside the boundaries of our abilities to develop a system that looks at the layout of the land and calculates expected wind, shear , eddies etc ... not in real time, produces a 'map'. That can be then easily used by jsbsim to adjust certain inbuilt property values in real time.
It doesn't have to be real complicated to start with... 256 colours speeds from 0-what ever. another map 256 colours for direction (365 would be better but heck computers weren't thought of when the compass was created) and a grey scale map for speed of rising or sinking air.
Of course this has to be sync'd into the terrain such that for a given grid position we get a colour number, colour number, greyscale number.
The rest is JSBsim.
Look this is just an idea of how I'd go about doing it... if someone has a better idea great
I think, and that thought has become firmer in the last few weeks, that Outerra is close to functional equivalency with Aerofly, which is already on sale on Steam, and has been for quite some time. I wonder how much further things will go before a kickstarter moves from just talk to something actually on the horizon?
-
I just think it's not outside the boundaries of our abilities to develop a system that looks at the layout of the land and calculates expected wind, shear , eddies etc ... not in real time, produces a 'map'. That can be then easily used by jsbsim to adjust certain inbuilt property values in real time.
It doesn't have to be real complicated to start with... 256 colours speeds from 0-what ever. another map 256 colours for direction (365 would be better but heck computers weren't thought of when the compass was created) and a grey scale map for speed of rising or sinking air.
Of course this has to be sync'd into the terrain such that for a given grid position we get a colour number, colour number, greyscale number.
The rest is JSBsim.
I'm just curious of the implication. The first implimentation would be a 2d map but in the best world, it would be in 3d ? volumetric data from 0 to 30000 meters in altitude or something. And if a 100m resolution for world geometry equal to 12 Gig then say a 1000m resolution for wind map in 3d could be similar at 10Gig or more? Then the user could download only the wind data map for it's location the same way you can download the geometry at the moment?
-
We really need this discussion oiking out into a separate thread.... Admin can you help here please...
Anyway have a look at this.
http://www.glidinghotspots.eu/index.php?module=simple&options=view;0002.xml#6
http://www.cugc.org.uk/node/45
Back to my thoughts...
First of all we need to separate out 'weather' from 'wind' , they're related sure in the same way as tides and waves are for the sea, but they're not the same thing...
So weathers a separate issue...
My thoughts are lets say we need something 'local' to an area.. a mountain range that describes the winds, thermals, shears etc within this set area
Also let me explain unlike the terrain (that everyone has to have) this is optional for those that want to use it during their flight... lets say a glider community want to set up a competition between point A and B for an event. They simply pre-run an app to generate a series of maps which are then distributed to the competitors prior to flight.
So I'm not thinking massive download for everyone.
-
Hmmmmmmm..... any Idea how fsx, X-plane etc accomplish this in their worlds, without massive download sizes?
-
X-Plane provides a (near) real-time global weather option which is based on global METAR reports obtained online from http://weather.noaa.gov/pub/data/observations/metar/cycles/. However, I'm not sure if it interpolates the conditions in-between METAR stations or if it just uses the METAR of the nearest station as you fly along.
But what's really cool in X-Plane is the modeling of turbulence (e.g. up- and down-draft) caused by wind blowing over sloped terrain. It's really great for soaring and mountain flying...
Also, there are a number of free plugins which control X-Plane weather parameters in their own way (like for example [XPGFS] NOAA Weather (http://x-plane.joanpc.com/plugins/xpgfs-noaa-weather))
-
Yes weather has been solved using meta data for planet earth in xplane and flightgear, so for weather we could follow the same path...
Wind and turbulence have also had some work done in these app, the question is how good is it really and how does it work in cities and in mountainous areas
-
Just found this site :
https://earth.nullschool.net/#current/wind/surface/level/orthographic=21.00,45.58,495 (https://earth.nullschool.net/#current/wind/surface/level/orthographic=21.00,45.58,495)
... seems interesting.
-
Just found this site :
https://earth.nullschool.net/#current/wind/surface/level/orthographic=21.00,45.58,495 (https://earth.nullschool.net/#current/wind/surface/level/orthographic=21.00,45.58,495)
... seems interesting.
That's really cool, it can even display the wind at different heights or the waves and currents. It says the source for the wind map "GFS / NCEP / US National Weather Service", maybe making the heightmap as Bomber suggested isn't that hard. If we eventually get water physic simulation, having waves and currents based on real information would be way too awesome.
I also noticed it shows temperature and humidity, I'm not a planes expert, but could that be used as input for the simulation?
-
Im sure there could be a way to get that info somehow, boht temparatures and winds and at different altitudes ... would be awesome to have this in OT !
As for oceans ... im not sure how oceanic data is gained, probably hasnt enough localized data to see the whole ocean-volume properly in currents just as good as winds, especially if depth should be in mind too. But definitely would be a great thing.
-
Hi,
You may be interested in this:
https://youtu.be/eDS3Ft7TlAw
The quality of the video is pretty bad but I think you'll get the idea.
I'll 'release' the plugin shortly. It's definitely still a work in progress but I would be curious to get some feedback.
The METAR data is free from NOAA. The data in the video is pulled down (about 1 Mb) when Outerra loads so there's a bit of a start delay. METAR has surface winds. I grab the 3 closest points and interpolate to get a value at the current Lat/Lon.
I've got Cloud Coverage, Surface Wind. Direction, Precipitation, Cloud Base and height. Outerra only has one level of clouds so I use the lowest base and the highest high for cloud height.
The wind data at different altitudes is also available but it's currently an ~38Mb download, so I need to figure out how to compress it and just take the bits that are local to my current position.
L
-
I think it's amazing....
-
I'm hunting down all the JSBsim properties such that your meta data can be used directly to adjust....
atmosphere/P-psf
atmosphere/P-sl-psf
atmosphere/T-R
atmosphere/T-sl-R
atmosphere/T-sl-dev-F
atmosphere/a-fps
atmosphere/a-ratio
atmosphere/a-sl-fps
atmosphere/crosswind-fps
atmosphere/delta
atmosphere/delta-T
atmosphere/density-altitude
atmosphere/gust-down-fps
atmosphere/gust-east-fps
atmosphere/gust-north-fps
atmosphere/headwind-fps
atmosphere/p-turb-rad_sec
atmosphere/psiw-rad
atmosphere/q-turb-rad_sec
atmosphere/r-turb-rad_sec
atmosphere/rho-sl-slugs_ft3
atmosphere/rho-slugs_ft3
atmosphere/sigma
atmosphere/theta
atmosphere/turb-gain
atmosphere/turb-rate
atmosphere/turb-rhythmicity
atmosphere/wind-from-cw
I'm trying to get a better handle on these properties
-
I'm hunting down all the JSBsim properties such that your meta data can be used directly to adjust....
They will be already, since the OT weather ia plugged into JSBSim directly through FGWinds.
-
I think it's amazing....
Agreed. Good stuff!
-
I can't find the property FGWinds
-
Outerra handles the wind globally right now, so it will effect all locations the same, but using langdon's technique or another implementation through the Outerra API will are able to control the wind locally for each JSBSim instance in the world. There should also in the future be localised weather in Outerra.
Langdon, where are we going to get a peek at what you've been working on on? :D
From JSBSim Class List:
http://jsbsim.sourceforge.net/JSBSim/classJSBSim_1_1FGWinds.html
http://jsbsim.sourceforge.net/JSBSim/FGWinds_8cpp_source.html
00482 // User-specified steady, constant, wind properties (local navigational/geographic frame: N-E-D)
00483 PropertyManager->Tie("atmosphere/psiw-rad", this, &FGWinds::GetWindPsi, &FGWinds::SetWindPsi);
00484 PropertyManager->Tie("atmosphere/wind-north-fps", this, eNorth, (PMF)&FGWinds::GetWindNED,
00485 (PMFd)&FGWinds::SetWindNED);
00486 PropertyManager->Tie("atmosphere/wind-east-fps", this, eEast, (PMF)&FGWinds::GetWindNED,
00487 (PMFd)&FGWinds::SetWindNED);
00488 PropertyManager->Tie("atmosphere/wind-down-fps", this, eDown, (PMF)&FGWinds::GetWindNED,
00489 (PMFd)&FGWinds::SetWindNED);
00490 PropertyManager->Tie("atmosphere/wind-mag-fps", this, &FGWinds::GetWindspeed,
00491 &FGWinds::SetWindspeed);
00492
00493 // User-specifieded gust (local navigational/geographic frame: N-E-D)
00494 PropertyManager->Tie("atmosphere/gust-north-fps", this, eNorth, (PMF)&FGWinds::GetGustNED,
00495 (PMFd)&FGWinds::SetGustNED);
00496 PropertyManager->Tie("atmosphere/gust-east-fps", this, eEast, (PMF)&FGWinds::GetGustNED,
00497 (PMFd)&FGWinds::SetGustNED);
00498 PropertyManager->Tie("atmosphere/gust-down-fps", this, eDown, (PMF)&FGWinds::GetGustNED,
00499 (PMFd)&FGWinds::SetGustNED);
00500
00501 // User-specified 1 - cosine gust parameters (in specified frame)
00502 PropertyManager->Tie("atmosphere/cosine-gust/startup-duration-sec", this, (Ptr)0L, &FGWinds::StartupGustDuration);
00503 PropertyManager->Tie("atmosphere/cosine-gust/steady-duration-sec", this, (Ptr)0L, &FGWinds::SteadyGustDuration);
00504 PropertyManager->Tie("atmosphere/cosine-gust/end-duration-sec", this, (Ptr)0L, &FGWinds::EndGustDuration);
00505 PropertyManager->Tie("atmosphere/cosine-gust/magnitude-ft_sec", this, (Ptr)0L, &FGWinds::GustMagnitude);
00506 PropertyManager->Tie("atmosphere/cosine-gust/frame", this, (PMFt)0L, (PMFi)&FGWinds::GustFrame);
00507 PropertyManager->Tie("atmosphere/cosine-gust/X-velocity-ft_sec", this, (Ptr)0L, &FGWinds::GustXComponent);
00508 PropertyManager->Tie("atmosphere/cosine-gust/Y-velocity-ft_sec", this, (Ptr)0L, &FGWinds::GustYComponent);
00509 PropertyManager->Tie("atmosphere/cosine-gust/Z-velocity-ft_sec", this, (Ptr)0L, &FGWinds::GustZComponent);
00510 PropertyManager->Tie("atmosphere/cosine-gust/start", this, (PMFt)0L, (PMFi)&FGWinds::StartGust);
00511
00512 // User-specified Up- Down-burst parameters
00513 PropertyManager->Tie("atmosphere/updownburst/number-of-cells", this, (PMFt)0L, &FGWinds::NumberOfUpDownburstCells);
00514 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00515 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00516 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00517 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00518 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00519 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00520 // PropertyManager->Tie("atmosphere/updownburst/", this, (Ptr)0L, &FGWinds::);
00521
00522 // User-specified turbulence (local navigational/geographic frame: N-E-D)
00523 PropertyManager->Tie("atmosphere/turb-north-fps", this, eNorth, (PMF)&FGWinds::GetTurbNED,
00524 (PMFd)&FGWinds::SetTurbNED);
00525 PropertyManager->Tie("atmosphere/turb-east-fps", this, eEast, (PMF)&FGWinds::GetTurbNED,
00526 (PMFd)&FGWinds::SetTurbNED);
00527 PropertyManager->Tie("atmosphere/turb-down-fps", this, eDown, (PMF)&FGWinds::GetTurbNED,
00528 (PMFd)&FGWinds::SetTurbNED);
00529 // Experimental turbulence parameters
00530 PropertyManager->Tie("atmosphere/p-turb-rad_sec", this,1, (PMF)&FGWinds::GetTurbPQR);
00531 PropertyManager->Tie("atmosphere/q-turb-rad_sec", this,2, (PMF)&FGWinds::GetTurbPQR);
00532 PropertyManager->Tie("atmosphere/r-turb-rad_sec", this,3, (PMF)&FGWinds::GetTurbPQR);
00533 PropertyManager->Tie("atmosphere/turb-type", this, (PMFt)&FGWinds::GetTurbType, (PMFi)&FGWinds::SetTurbType);
00534 PropertyManager->Tie("atmosphere/turb-rate", this, &FGWinds::GetTurbRate, &FGWinds::SetTurbRate);
00535 PropertyManager->Tie("atmosphere/turb-gain", this, &FGWinds::GetTurbGain, &FGWinds::SetTurbGain);
00536 PropertyManager->Tie("atmosphere/turb-rhythmicity", this, &FGWinds::GetRhythmicity,
00537 &FGWinds::SetRhythmicity);
00538
00539 // Parameters for milspec turbulence
00540 PropertyManager->Tie("atmosphere/turbulence/milspec/windspeed_at_20ft_AGL-fps",
00541 this, &FGWinds::GetWindspeed20ft,
00542 &FGWinds::SetWindspeed20ft);
00543 PropertyManager->Tie("atmosphere/turbulence/milspec/severity",
00544 this, &FGWinds::GetProbabilityOfExceedence,
00545 &FGWinds::SetProbabilityOfExceedence);
00546
00547 // Total, calculated winds (local navigational/geographic frame: N-E-D). Read only.
00548 PropertyManager->Tie("atmosphere/total-wind-north-fps", this, eNorth, (PMF)&FGWinds::GetTotalWindNED);
00549 PropertyManager->Tie("atmosphere/total-wind-east-fps", this, eEast, (PMF)&FGWinds::GetTotalWindNED);
00550 PropertyManager->Tie("atmosphere/total-wind-down-fps", this, eDown, (PMF)&FGWinds::GetTotalWindNED);
-
I'm not sure this is the right place to post.
Maybe there's a PLUGINS category somewhere?
Anyway feel free to do as you please with this:
http://www.siliconroad.com.au/ot/siliconsky_01_plugin.zip
I actually started to upload this and thought to myself, I should probably check it with an aircraft...Uhoh! Problem.. It turns out that position info isn't sent to the IGC plugin when you're in a vehicle, so a couple more hours and 1 hack later and here I go again.
As it stands the plugin will work in what I call superman mode, ie. when you are not in a vehicle. To have it work when you're in a vehicle I need to add a few lines of code to the vehicle script and change a setting in the plugin config (.cfg) file.
change_with_vehicle=0 <-Superman mode
change_with_vehicle=1 <-works when you're in a specially modified vehicle.
There are ways to make this more automatic but for a first 'proof of concept' type version, this'll have to do.
If you do feel like adjusting the config file then you can download a modified Mig-29 here:
http://www.siliconroad.com.au/ot/mig29.siliconsky.zip
Any suggestions, requests, criticisms are most welcome. Some of the settings just don't seem correct to me. Example. FEW - few clouds should be around 15 percent coverage but in Outerra scattered is more like 6 percent, so things like that need some tweaking.
I suck badly at anything graphical so if someone has an idea for an interface or layout just draw me a picture. The next version of this should come with a multiplayer option as well. I've now got my second machine back up and running so I should have something cobbled together in the next few days.
There's a readme.txt but here it is for those who don't wish to download.
CLOUD COVERAGE...
=================
CAVOK = 0 percent
CLR = 0 percent
SKC = 0 percent
FEW = 15 percent
SCT = 40 percent
BKN = 75
OVC = 100 percent
OVX = 100 percent ???
CLOUD BASE is first indicated BASE
CLOUD HEIGHT is 1000ft or highest base minus lowest base
WIND....
=============
Wind speed is knots. Can be adjusted by multiplier in cfg. Trees/grass don't seem to move enough at low speeds. Aircraft are affected correctly.
IE. landing a cessna in a 9 kt headwind with a 10x multiplier turns it into a helo.
Wind currently has no gusting or variable direction component. No turbulence.
Soft interpolation essentially means no shear either.
PRECIP....
===========
Rain is precip_in/30 to give a more realistic look.
No Snow yet.
FOG...
==========
No fog yet.
At this point only using METAR info. Large weather stations ie. Large airports. Download is approx (1Mb) on startup.
Plan to incorporate TAF info as well.
Winds aloft data is available. Approx 40Mb. Need to find a way to decrease the download size.
CONFIG FILE...
==============
wind_multiplier=1 // Increase wind by a factor of
weather_interpolation_time=5000 //Time in milliseconds it takes for the weather to transition from one state to the next.
change_with_vehicle=0 // 0=weather changes as user moves around in 'superman' mode. 1=weather changes as user moves around in specially adapted aircraft.
FUTURE...
=========
Obviously a better interface (:
Plan to have save/load weather/enviroment profiles.
Want to try a 'weather architect' similar to REX.
NOTES....
===========
If you have the metar.cache.csv open in say Excel when Outerra starts, the download will fail.
Outerra throws an error on exit. This is a known bug. Something to do with the SINGLETON cleanup.
One last thing. These are dll's. So it's all 'at your own risk'. I run virus checkers but nothings ever 100% safe.
L
-
JSBsim comes with it's own turbulence code... all we need is to turn it on.
This is the difference between 'weather' and 'atmospheric conditions'... so if the weather code says 'thunderstorm' JSBsim should be able to provide the turbulence to match this condition.
Anyway I'm asking the guys at JSBsim how to turn it on....
The thing we don't have is thermals and ridge lift which are the staple diet of gliders.
Simon
-
Just a note, the entire folder insides Langdon's zip has to be copied inside the plugin folder, in your Outerra install directory (C:\Program Files (x86)\Outerra\Anteworld\plugins for example) :)
Edit: had time to test it and wow... Having dynamic weather, even in this early state changes a lot of things. Really promising, great project! Only bug so far is OT crashing when exiting the engine, but you already know that.
-
Quick note...
In my routine that converts ECEF to LatLon I typed an 8 instead of a 3 into my flattening constant.
What this means is that the Lat/Lons are being computed wrongly.
It'll be correct in the next update.
L