【发布时间】:2018-08-19 01:19:26
【问题描述】:
我正在尝试在 Flask 应用程序中创建天气小部件。我一直坚持以度(角度)为单位处理风向。
如果我们用下图作为表示:
风向
在处理风向时,我们被限制在 360 度范围内。我想根据我获得的 360 度范围内的风向分配一个图标,以帮助您了解以下信息:
| Cardinal Direction | Degree Direction |
|:------------------:|------------------|
| N | 348.75 - 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 |
我会将键/值存储在 dict 中并创建一个 if elif else 循环,该循环将执行以下操作:
from numpy import arange
degrees = the_json_response['wind']['deg']
wind_directions = {
'N': arange(348.75, 11.25, 0.25),
...
}
degrees_range = range(0, 360)
if degrees in wind_direction['N']:
dirction = north_icon
elif degrees in wind_direction['NNE']:
direction = north_north_east_icon
以上只是伪代码.. 总而言之,我该如何应用它,以便我们只在 360 度范围内工作,因为显然它在处理北风方向时会抛出错误,因为它在一个范围内348.75 - 11.25,我们需要告诉它我们正在使用 360 度。
我无法为我的身材生活的原因是我从未学过复杂的数学(对我来说就是这样)。如果有人对我如何以更好的方式应用它有任何建议,我非常愿意接受这些建议。
【问题讨论】:
-
取模运算符?
-
你为什么使用
arange? -
@MadPhysicist 我正在使用 arange 所以我可以以 0.25 的步长使用一系列浮点数..
-
@MadPhysicist 你愿意详细说明你的评论吗?
-
@JamieLindsey 为了确保我理解正确:给定范围 [0,360] 的度数,您想根据表格为其分配一个基本方向,对吧?
标签: python python-3.x numpy