Negative wind strength values
-
See attached screenshot. Wind speed goes negative.
-
Funny! probably due to interpolation based on some high-order approach without limitation to the range of input values?
-
@cyrilleSP
@Ftjwinfs
At same location in the mobile app.But I never saw that for several years. It is definitively a bug.
-
I saw something roughly similar on a sailing trip this year (windy v38). The region where I was, was at the boundary of the forecast region of the UKV model. At the edge of this forecast region I also saw some negative values.
Such corrupt values should not appear, neither along the edge of the forecast region of a model nor (obviously) somewhere within.
I am very sure, that there is a problem with interpolation. Windy gets raw model data from the forecast providers and needs to interpolate to user specified locations. As I wrote above, calculating a "bounded" interpolation on a discrete grid of values is not t trivial task. Bounded means, that all interpolated values should lie with the range of the "raw" values, that are used to interpolate values in between the original grid points of a model. An interpolation should only generate values, that lie within the range of original values that are used as input for the interpolation.
Observing negative values pretty obviously indicates a problem, here corrupt values are easily detectable. It is quite possible, that other interpolated values can sometimes also be wrong by +/- a few knots. But if these interpolated values "appear" plausible, it is impossible for us users to identify this.
@Windy: Are you aware of this issue? Do you use a bounded interpolation scheme to interpolate forecasts from the raw model data to specific locations of interest?
The issue of bounded/unbounded interpolation is a standard problem in computational fluid dynamics / numerics. The principal problem is quite identical to interpolating raw weather model data within a given grid. If of interest I can provide literature on this.
-
Just googled a bit regarding "interpolation weather model data". Its a huge field with many publications out there.
Thinking about it, depending on the interpolation scheme Windy decided to use, locally Windy can create "its own weather", meaning that the interpolation can have strong impact on the local data shown to us for specific locations. So due care is necessary for this interpolation process.
-
@Ftjwinfs
It’s obvious that at forecast location the parameter value is interpolated between the data at the 4 nearest grid points provided by the model. For the wind direction and speed at grid points the data is provided as U and V vectors.
But these values for Wind should never be negative. So with any type of interpolation, how 4 positive values could result in a negative local speed ?? -
Do you have some insight here? Does Windy actually only use the four neighbors of a location?
I'm wondering what mathematical interpolation approach is used. A linear interpolation (bounded by definition) would be overdetermined by four points. A higher-order polynomial approach could generate over-/under-shoots (e.g., negative values)
-
@Ftjwinfs said in Negative wind strength values:
A higher-order polynomial approach could generate over-/under-shoots (e.g., negative values)
Sorry my math knowledge is not good enough to understand what you mean.
I just know that the interpolation process to get a continuous weather map from discrete gridded values is based on bilinear interpolation:
https://en.m.wikipedia.org/wiki/Bilinear_interpolation
I assume this is the method used by Windy. This process is available in computer languages such as python for example.BTW it is used in numerical picture programs such as Photoshop to upgrade the resolution of a poor resolution image at 75dpi to a higher resolution of 300dpi for professional printing. But you don’t get a sharper picture, the added pixels are just “blended” from the original ones.
Same with the interpolation of weather grid data, the resulting data between the grid points are “blended” giving the resulting maps a smoothed look.
Again I can’t understand that positive values of wind speed at grid points can lead to negative values between the grid points.
-
@idefix37
Good point with bilinear interpolation. But I'm not sure if Windy actually uses this approach. There are many interpolation schemes available.Another scheme is for example bicubic interpolation: https://en.wikipedia.org/wiki/Bicubic_interpolation
Regarding a possible source for negative values see the last section of the wiki article on bicubic interpolation. There they talk about the application for computer graphics and "overshoots" that can appear. Essentially that is what I mean: Interpolated values that are outside the range of values, that the interpolation is based upon. -
@Ftjwinfs
Yes, your link is really interesting. So the interpolation is probably done from 16 grid points, not from 4.
In fact, I had heard about the use of bilinear interpolation from a weather professional on a forum. But that wasn't about Windy.
In the Wikipedia article, the 2 images showing the 2 types of interpolation show that the bicubic offers a more realistic and softened picture because the bilinear still shows the pattern of the grid.
And it seems that this type of interpolation can lead to negative values when the 4 nearest grid points are close to 0 but the surrounding values at grid points are much higher. -
@idefix37
Exactly!In CFD the usual approach is to clip the interpolated value to the range of input values used for the interpolation. Since obviously wind velocity is always >=0, doing so would also avoid negative interpolated values.
Still, I do not say that this is THE approach. Its pretty "pragmatic". As said before, there are many, many approaches out there. Kriging to name only one more (very sophisticated) approach.
Whatever happens under the hood of Windy: There is a bug at the moment that leads to negative speeds. And I assume that only here we realize this since it leads to non-plausible (negative) values. If it is an interpolation bug as I assume, this can lead to over-/underestimated values that might appear plausible, but are actually not contained in the raw weather model data. Also, this can happen for any interpolated quantity, not only wind speed.
@Windy-team, what do you think about this?
-
@Ftjwinfs said in Negative wind strength values:
If it is an interpolation bug as I assume, this can lead to over-/underestimated values that might appear plausible, but are actually not contained in the raw weather model data. Also, this can happen for any interpolated quantity, not only wind speed.
If we assume the interpolation is based on the bicubic interpolation, not sure there is general a bug
I refer to the sketches in your Wikipedia link and to show what I mean I’m just using the “cubic” sketch to simplify.If a parameter is near 0 at the nearest grid points, it can lead to negative values. For temperature it is not an issue, but for wind it is. In this case it should be necessary to keep all negative interpolated values equal to 0.
-
The overshoots are certainly not bugs in a mathematical sense. Mathematically they are to be expected and correct.
But I see the overshoots as "bug" in terms of plausibility of the interpolated wind velocity field. You are right, for temperature this is not necessarily an issue.
The crucial thing is, that it is not a good idea to apply "some" interpolation technique, but the interpolation technique needs to be chosen wisely, reflecting what the impact on the interpolated quantity might be.To summarize what we observed:
- Negative values "within" the forecast region of a weather model
- Negative values at the boundary of the forecast region of a weather model
While I think, that the bespoken overshoots might be ok for e.g. the temperature within the forecast region, I'm afraid that it is difficult to predict what happens along the boundary of the forecast region.
(Still: I do not know what is state-of-the-art for interpolation of weather data and I also do not know, what Windy actually uses at the moment. The bicubic approach only visualises what I suspect as problem here. Probably there are smarter approaches than bicubic.)
-
@cyrilleSP @Ftjwinfs @idefix37
Thank you for reporting this issue, I am not able to describe the actual logic behind this, however, it is already forwarded to colleagues for the fix.Thank you for your patience.
-
@idefix37 I think this is not quite how it works for wind where what is actually interpolated are the u and v values of wind speed (x and y coordinates if you will). Because they are coordinates it is perfectly fine that they become negative.
Then the actual wind speed is computed at the end with TWS = SQRT(uu+vv).
This can obviously never be negative. -
I guess you are right in principle, but this does not change the principal issue.
And yes, what we were actually talking about (at least that's what I meant), is that the magnitude of the wind vector cannot be
-
@cyrilleSP
You say that the U and V velocity components are first interpolated, and then the speed and direction of wind at any location are calculated from the interpolated U/V values. May be you are right. But that does not explain why negative speed may occur at the end. -
I expect, that the weather models do not deliver u-,v-components of the wind vector, but instead deliver the magnitude (i.e. the wind speed) and the direction of the wind.
Interpolating the magnitude then yields the problem of potentially negative wind speeds.
But I think, that the Windy guys have opened a ticket and it makes not much sense to further speculate (although it is an interesting topic).
-
-
Oh, indeed!