扇形意味着R中的风速和方向

时间:2017-08-17 10:30:20

标签: r

我试图根据扇区内的平均方向得到数据集的平均风速。这很简单,下面的程序可以解决问题。但是,我无法自动化它,这意味着我每次都必须手动输入splitfsector的值。此外,输出不是我想要的。请告诉我一个更好的方法或帮助我改进这个。

esector

如果我可以选择扇区数并自动生成平均风速和平均方向列表,那就太棒了。感谢。

2 个答案:

答案 0 :(得分:1)

实际上我正在使用相同的数据。 首先我像这样做一个风玫瑰: enter image description here

然后,根据方向,我把数据放在:

max(Windspeed[direc >=11.25 & direc <= 33.75])
min(Windspeed[direc >=11.25 & direc <= 33.75])
mean(Windspeed[direc >=11.25 & direc <= 33.75])

我把他指向了学位。 如果你没有搜索,我会在这里等你的帮助。

答案 1 :(得分:0)

好的,@ monse-aleman和她的类似问题here正在研究这个想法。我能够自动化程序以提供所需的答案。列出的功能如下:

 in_interval <- function(x, interval){
stopifnot(length(interval) == 2L)
interval[1] < x & x < interval[2]
}

在我们得到的数据集上使用上面的代码。

##Consider a dummy Wind Speed and Direction Data.
ws<-c(seq(1,25,by=0.5))
wd<-c(seq(0,360,by=7.346939))
## Determine the sector starting and end points.    
a<-rbind(0.0  ,22.5  ,45.0  ,67.5  ,90.0 ,112.5 ,135.0 ,157.5 ,180.0 ,202.5 ,225.0 ,247.5 ,270.0 ,292.5 ,315.0,337.5)
b<-rbind(22.5  ,45.0  ,67.5  ,90.0 ,112.5 ,135.0 ,157.5 ,180.0 ,202.5 ,225.0 ,247.5 ,270.0 ,292.5 ,315.0,337.5,360)
sectors<-cbind(a,b)
sectors
## See the table of the sector.

      [,1]  [,2]
 [1,]   0.0  22.5
 [2,]  22.5  45.0
 [3,]  45.0  67.5
 [4,]  67.5  90.0
 [5,]  90.0 112.5
 [6,] 112.5 135.0
 [7,] 135.0 157.5
 [8,] 157.5 180.0
 [9,] 180.0 202.5
[10,] 202.5 225.0
[11,] 225.0 247.5
[12,] 247.5 270.0
[13,] 270.0 292.5
[14,] 292.5 315.0
[15,] 315.0 337.5
[16,] 337.5 360.0

for(o in 1:16){

    mean[o]<-mean(ws[in_interval(wd, c(sectors[o,1], sectors[o,2]))])

  }
mean
[1]  2.0  3.5  5.0  6.5  8.0  9.5 11.0 12.5 14.0 15.5 17.0 18.5 20.0 21.5 23.0 24.5

这是结果。效果很好。