Post by iconPost by eo | 2014-11-05 | 21:33:38

Hi and sorry to bother you for the 43rd time with a wind related question. I somehow found myself today in a tiny cyclone trapped in one of the grids, just as I was trying to position the boat via the simulator I've realized that interpolated intermediate wind grid data (specifically intermediate ones) both direction and magnitude (although exactly matches with the game) a bit confusing. Made a guess that directional interpolation is made via resolved vectors (u/v) and wind magnitude as scalar interpolation but hovering the cursor over the grid there was actually a "low magnitude" point in between the main grids as if a parabolic or a cubic interpolation was being performed along the longitudinal direction. Just scratching my head after reading section 3.2 of this article as well..

glad if you enlighten me about the matter
thanks in advance

commenticon 12 Comments
Post by iconPost by zezo | 2014-11-05 | 22:26:48
Yep, direction is bi-linear u/v. Speed is weird formula on u/v, average and magnitude interpolation. One of the js files used by (iwind.js) contains the details.
Post by iconPost by Kiralamure | 2014-11-08 | 12:44:58
Impressive calculation for the wind speed.
While I can understand the computation of the average speed from the speed at each of the 4 nodes of the wind square, the formulas to get the speed coefficient are quite weird.
What can be the explanation of a double exponentiation (math.pow) ???
In addition, such complex formulas are quite time-consuming.
I don't understand VR reasons to use them.

But many thanks for the info.
Post by iconPost by zezo | 2014-11-08 | 13:03:53
I guess there is good reason for that, probably it's the proper approach.

There are problems with simpler approaches -

- Bi-linear UV tends to underestimate the wind speed. Let's say you have 10kt W in one corner, 10kt N in the other, you would get 7 knots in the middle (1/sqrt(2)). Even worse if the wind is closer to the opposite. In the physical sense that air has to go somewhere.

- The previous game used average of the speeds, but the direction came by averaging the wind directions in degrees, which causes massive problems when you average winds with close to 180 degree difference. There was an algorithm to resolve such cases. but it was far from perfect, causing abrupt artificial ridges.

The current algorithm gives quite realistic results and is the best I've seen so far.
Post by iconPost by Kiralamure | 2014-11-08 | 14:47:45
You can't invent a formula like:
s_coeff = (speed_s > 0)?Math.pow(speed_uv/speed_s , 1 - Math.pow(c_coeff, 0.7)):1;
without serious mathematical background and reasoning.

As VR is a very small company with limited resources, I guess the formula has been copied from a commercial sailing software or may-be from a new Phd thesis.
Post by iconPost by eo | 2014-11-09 | 20:13:07
Hi, nice point, for anyone interested here are some researches and papers between 80`s and up to date.

Almost all call for an (r^-2) inverse 2nd degree polynomial distance weighting scheme type of interpolation.

Especially the first paper is quite interesting.
Post by iconPost by WaterHammer | 2014-11-09 | 10:10:29
Hi Cvetan, your example of how the wind speed gets 7 knots in between the two corners with those 90 degree off 10 knots winds in the corners is correct. It works also with e.g. 10 knots SW in the left corner and 10 knots NW in the right corner. However the resulting 7 knots is quite defendable as you are closer to the centre of the low (or high) at that point. If you have the situation of 10 knots in the four clockwise corners in SW, NW, NE and SE, the result is circular wind about the centre of the square, with zero wind in the centre. So I do not understand why one should not apply the velocity interpolation based on u/v interpolation as well (with maybe some lower limit of 0.5 knots to have the boats always moving at least a little bit).
Just my $0.02
Post by iconPost by zezo | 2014-11-09 | 11:46:44
The algorithm checks the difference between the uv interpolation and magnitude interpolation for the chosen point, and also average magnitude and speed for the center of the square, and makes decision based on that data.

I think there is also an if() in the original algorithm which sets the minimum speed to 1 knot, which I have not implemented. Only saw the difference once before the start of Leg 1 in a very weak wind square.
Post by iconPost by WaterHammer | 2014-11-10 | 11:50:31
Thanks for the further explanation. I just wanted to make clear that the lower speed in between the wind points, if it occurs, is not actually a problem but quite realistic. In a cyclone the air in the middle indeed goes somewhere: up! :-)
Post by iconPost by eo | 2014-11-06 | 01:07:48
)) weirder than I could have ever imagined.. thanks for the info!
Post by iconPost by Forrest | 2014-11-10 | 15:05:07
Hi, what "toggle tracks" does and how it works?
Post by iconPost by zezo | 2014-11-10 | 15:12:27
It just enables and disables the track projection tool - red, green and blue lines. The tool guide is here
Post by iconPost by Forrest | 2014-11-10 | 16:38:54
Thank you Zero, the red line is a vertical projection on a plan perpendicular to the point, am i thinking right?
Topics list
Copyright 2009 by ZEZO.ORG. All Rights Reserved.