经过雅各布·戴维斯|更新:2016年1月6日|评论:2

筛选以度列出的风向数据时,您会感到迷失吗?例如,您能在想象自己的心中哪个方向195度?如果您的数据记录器可以将数据放在指南针方向上,会更容易吗?在本文中,我将与您分享一种简单的方法,可以使用CRBASIC编程语言将风向数据从学位转换为指南针方向。
如果您像我一样,指南针的方向(北,南,东和西)比学位更容易理解。例如,如果有人问我前进的路线,我不会说:“ 270度的前进五个街区。”对我来说,这更容易,如果我说,失落的司机“去西边五个街区”。
同样,在描述风向时,指南针点往往比学位更容易理解。气象学家在天气预报中使用指南针点,因为人们更容易可视化和记住。例如,气象学家可能会说:“风暴将从西方吹进去。”
就风向而言,既幸运又不幸的是,数据记录仪不会像我们人类那样“思考”。
为了脱离风向数据,lET在我们的转换过程中开始。为了将学位转换为指南针方向,我首先将指南针分为16个扇区,分别为22.5度。这些部门就像派的切片,以指南针为中心。
提示:如果您想使用八个扇区而不是16个扇区,则使用一个较短的查找表,则除以45度而不是22.5度。
要进行转换,我使用索引数组作为查找表,而不是案子操作说明。我更喜欢索引的数组,因为代码比A的代码更快,更紧凑案子操作说明。此外,索引阵列适用于均匀间隔的数据箱,例如一组数量。(数据箱是数字范围的类别。)相反,案子对于数据箱不均匀间隔的应用,指导是一个更好的选择,例如确定将水描述为热,温暖或冷的温度范围。(“热”和“冷”值将是较大的垃圾箱,“温暖”将是一个较小的垃圾箱。)
由于指南针上的北部可以描述为0度或360度,因此我们必须为其使用两个数据箱。这意味着,对于我们的16个指南针扇区,我们实际上在查找表中需要17个值。第一个值和最后一个值均为北方。下表显示了具有16个不同指南针扇区的17个值:
| 值 | 指南针部门 |
1 |
n |
2 |
nne |
3 |
NE |
4 |
恩 |
5 |
e |
6 |
ESE |
7 |
se |
8 |
SSE |
9 |
s |
10 |
SSW |
11 |
SW |
12 |
WSW |
13 |
w |
14 |
wnw |
15 |
西北 |
16 |
nnw |
17 |
n |
您可以将数据记录程序中的数组用作查找表。填充数组的一种简单方法是分配初始值。确保您使用类型细绳并将每个值包装在报价中。代码线有点长,但是很简单:
DIM扇区(17)为字符串 * 3 = {“ n”,“ nne”,“ ne”,“ ene”,“ e”,“ es”,“ se”,“ sse”,“ sse”,“ s”,“ s”,“ ssw”,“ SW”,“ WSW”,“ W”,“ WNW”,“ NW”,“ NNW”,“ N”}
现在,我们需要将风向转换为与数组中17个索引值相对应的整数值。
为了将风向限制在360度,我们需要执行模量操作以在将总学位除以360后找到其余部分。
例如,如果我们正在使用405度,我们将该值除以360。这样做为我们提供了1个,其余(或模量)为45:
在此示例中,其余45度是需要转换为指南针的方向。 |
笔记:尽管大多数传感器都不需要此步骤,但是如果您将其包含在程序中,则不会引起任何问题。
如果我们将风向除以22.5(每个扇区的度)和圆形,我们的数字范围从0到16。
index = winddir mod 360 index = round(index/ 22.5,0)+1 compassdir = sector(index)
在上一个示例中,如果我们以45度的剩余时间除以22.5,我们将获得2:2:
如果我们添加1,结果为3:
在我们的表上,“ 3”的值对应于“ ne”的方向。 因此,我们的剩余45度转换为东北方向。 |
我们可以将整个数学函数放在数组的索引参数中。括号迫使从内而外的操作顺序:
COMPANSDIR =扇区(圆形((Winddir mod 360)/ 22.5,0)+1)
将所有部分放在一起,我们将获得以下数据记录程序程序。只需添加您的测量和数据表即可。
'将公共变量宣布为float单位winddir = digrees dim sector(17)为字符串 * 3 = {“ n”,“ nne”,“ ne”,“ ne”,“ ene”,“ ene”,“ e”,“ e”,“ es”,“ se”,“ se”,“ SSE”,“ S”,“ SSW”,“ SW”,“ WSW”,“ W”,“ WNW”,“ NW”,“ NNW”,“ N”} public Compassdir作为字符串 * 3'主要程序BeginProg扫描(1,SEC,0,0)'添加风传感器测量在这里CompassDir = sector(圆形((Winddir mod 360)/ 22.5,0)+1)'将风向转向17个扇区。部门1和17都是N. NextScan Endprog
在本文中,我希望我能帮助您找到使用一些CRBASIC编程代码更好地理解,使用和共享风向数据的方法。如果你有我们的RTMC软件产品,该软件能够获取风向数据,并将学位直接转换为指南针显示。
随意分享您想使用指南针点来报告风向的情况。您能想到可以使用此方法的类似案例带有均匀间隔的数据箱吗?在下面发布您的想法。
评论
Thiago|10/31/2018在01:11 pm
好贴。
如何将计算指南数据写入表格?
我需要从风传感器E计算出30分钟的平均数据数据,将其从表中写入指南针数据。我不知道该怎么做。
杰达维斯|2018年10月31日下午01:29
指南针扇区是字符串变量,只能通过示例指令将其保存到表中。困难,在您的情况下,必须先计算风的矢量平均值。可以从数据表中读取值。但是,您无法将该指南针扇区保存到同一桌子上。
以前,我们通过仅与风车向量制作桌子来解决局限性。然后,您将其读取该值,并可以在主表中使用其他数据保存。GetRecord是从表中读取值的最简单方法。
请登录或注册评论。