The new VR wind system
Post by iconPost by Alexblond2005 | 2016-11-24 | 08:38:21

Hello Master Cvetan.
I invite everyone to give something to your site, which is very helpful. You certainly are able to know how many players on VDG2016 are routed by zezo.
I note a difference between speed in first infobox and my real speed when I change direction in the game, ex 15.3 vs 15.1 in the same conditions. What could be the reason: polars? Grib? Game engine aleas?
I'm certain that you have an idea.
Best regards

commenticon 6 Comments
Post by iconPost by zezo | 2016-11-24 | 12:58:03
The polars should be OK, but there are small differences in wind speed and direction because of the details of the implementation of the interpolation algorithm.

I'm still investigating the following points :

- The game transfers the wind data in some specific way that creates some rounding error

- The interface downloads two sets of GRIB files with 6 hours difference - "old" and "new" forecast. Not sure how exactly they are used and if those affect the "current" weather or only the predicted track.

- I'm probably doing the temporal interpolation in a different way

In general in more stable conditions we see smaller error, but in dynamic weather the error becomes bigger. Should not affect the general strategy, but may be unreliable for minute-for-minute routing.

I already have better idea how things work and will be improving the accuracy in the future.
Post by iconPost by Pennard-Bed-BZH- | 2016-11-24 | 13:06:52
Hi all,

About the 2nd point you mentionned Cvetan in your previous post, I read this from the club house (weather folder), wrote by VR Addmin :

Voici comment fonctionnent les vents sur Virtual Regatta Offshore :

● Les vents sont interpolés c’est à dire qu’ils sont évolutifs spatialement. Les vents visibles sur l’interface restent valables pendant 12 heures. Le bateau utilise la force de vent et l'angle au vent du point géographique où il se trouve pour calculer son segment d’avancement de 10 minutes. Au point d’arrivée suivant, il utilise la force et l’angle du vent pour calculer le prochain segment et ainsi de suite.

● L’évolution du vent, sa vitesse et optionnellement la direction peuvent être directement lues sur la carte en survolant les flèches de vent avec la souris.

● Les prévisions météo sont fournies par la NOAA et reflètent les vents qui sont prévus sur la zone.

● La météo est actualisée deux fois par jour et active sur le jeu à 8h00 et 20h00 (UTC+2 en heure d'été et UTC+1 en heure d'hiver). En dehors de ces actualisations, les prévisions à +12h et au delà sont mises à jour 4 fois par jour, à 0h, 6h, 12h et 18h (Heure de Paris).

● Les vents à 12, 24, 36, 48, 3J, 4J, 5J, 6J et 7J sont également fournis par VR pour vous donner une idée de ce qu'ils pourraient devenir et vous permettre de prévoir une route à moyen terme. Les vents à 12 h deviennent certains dès 6h00 et 18h00. En effet, à partir de ces heures, les vents affichés seront effectivement ceux qui seront utilisés lors de la bascule.

Le vent donné peut changer brutalement lors de la bascule. Il est donc fortement recommandé d'être présent derrière votre écran à ces deux moments cruciaux de la journée.
Post by iconPost by zezo | 2016-11-24 | 21:32:44
Moving it into separate because it's quite important.

WTF? I thought they have implemented proper wind interpolation when there is no fixed weather for 12 hours and folks in Brazil are not at disadvantage because of it.

And because of the local time instead of UTC the switch does not even correspond to GFS model output.
Post by iconPost by guigui | 2016-11-24 | 22:27:33
Hi there,

The system described by Pennard-Bed-BZH from VR admin is from April 18th.

It was asked and answered about it yesterday and confirmed to be out of date.
Community Manager

172 posts
Posted yesterday at 4:04 PM · Report post

Le post de Crew du 18 avril n'est plus d'actualité.

Lire notre aide en ligne à ce sujet:

Bonne journée!
The links do not offer any precise explanation of how the new system works.

I can't remember where I read (maybe here ?) they use the 3h / 1º stuff.
The hard part is to know how they mix it. I have no clue myself, sorry.
Post by iconPost by joebar | 2016-11-25 | 02:08:00
Hi all,

From what I understood, winds interpolation works as follows:
- for a given point M=(long,lat) and a time T, first calculate the round coordinates (around M)
-> this gives you a cell defined with 4 points on a 1° grid. let's say (x,y),(x+1,y),(x,y+1),(x+1,y+1).

- for each of these points (ABCD), read the wind in the available wind datasets around the time T considered, and linearly interpolate (in time dimension) the u,v values for each of the 4 points.
- we now have 4 (u,v) pairs around our point. (Ui,Vi)=>(Speed_i,Dir_i)
- bilinear interpolation of those (u,v) pairs gives an interpolated (um,vm) pair at point M, from which the wind angle can be computed (dir=atan2(ym,um)).

- the norm (speed) is more complex:
- take S1 = norm(|um,vm|)
- take S2 = bilinearinterpolation at M(Speed_i)
- then use the formula that used to be present in iwind.js (see post
- final_speed = S2 * Pow(S1/S2, 1.0 - Pow(coeff, 0.7))

where coeff is based on a division of the cell in 4 even quadrants (using the centroid point of the cell). According to the quadrant M belongs to.

..(X,Y) A --- AB --- B (X+1,Y)
........| .... | ....|
........| .... | ....|
.......AC ---- G --- BD
........| .....| .M .|
........| .....| ....|
(X,Y+1) C --- CD --- D (X+1,Y+1)

coeff = bilinearinterp on pos M in subcell (
G = norm(mean(Ui),mean(Vi))/mean(Speed_i),
BD = abs(sin(dir_B-dir_D)),
CD = abs(sin(dir_C-dir_D)),
D = 1)

Sorry for the poor explanations, but this what I reversed engineered so far.
I hope it helps.
Good luck with that ;-)
Post by iconPost by zezo | 2016-11-25 | 07:14:37

Please contact me off-list if you want to discuss some details.
Topics list
Copyright 2009 by ZEZO.ORG. All Rights Reserved.