Merge pull request #40 from webknjaz/bugfix/wind-dir-calc

Reimplement wind direction detection properly
This commit is contained in:
streetturtle 2018-04-01 18:01:23 -04:00 committed by GitHub
commit 7eafdb21a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 24 deletions

View File

@ -67,33 +67,30 @@ end
-- Return wind direction as a string.
function to_direction(degrees)
local directions = {
{ "N", 348.75, 360 },
{ "N", 0, 11.25 },
{ "NNE", 11.25, 33.75 },
{ "NE", 33.75, 56.25 },
{ "ENE", 56.25, 78.75 },
{ "E", 78.75, 101.25 },
{ "ESE", 101.25, 123.75 },
{ "SE", 123.75, 146.25 },
{ "SSE", 146.25, 168.75 },
{ "S", 168.75, 191.25 },
{ "SSW", 191.25, 213.75 },
{ "SW", 213.75, 236.25 },
{ "WSW", 236.25, 258.75 },
{ "W", 258.75, 281.25 },
{ "WNW", 281.25, 303.75 },
{ "NW", 303.75, 326.25 },
{ "NNW", 326.25, 348.75 },
}
-- Ref: https://www.campbellsci.eu/blog/convert-wind-directions
if degrees == nil then
return "Unknown dir"
end
for i, dir in ipairs(directions) do
if degrees > dir[2] and degrees < dir[3] then
return dir[1]
end
end
local directions = {
"N",
"NNE",
"NE",
"ENE",
"E",
"ESE",
"SE",
"SSE",
"S",
"SSW",
"SW",
"WSW",
"W",
"WNW",
"NW",
"NNW",
"N",
}
return directions[math.floor((degrees % 360) / 22.5) + 1]
end
local weather_timer = timer({ timeout = 60 })