【问题标题】:How do I plot a Wind Rose in R?如何在 R 中绘制风玫瑰图?
【发布时间】:2017-06-26 23:16:45
【问题描述】:

我想在 R 中绘制风玫瑰图。我正在尝试使用“openair”包。 我的数据库是度数/10(在 0 和 36 之间),如果我绘制这个值(但它没有意义),它就可以工作。但如果我是真正的度数(度*10),它会说:

e2[[j]] 中的错误:超出限制(它是什么?)

我的代码是:

windRose(meteo, ws = "Int Viento [Nudos]", wd = "Dir Viento", ws2 = NA, wd2 = NA, 
               ws.int = 3, angle = 3, type = "default", bias.corr = TRUE, cols= "default", 
              grid.line = NULL, width = 1, seg = NULL, auto.text= TRUE, 
              offset = 0, normalise = FALSE, max.freq =NULL, 
              paddle = FALSE, key.header = NULL, key.footer = "Nudos", 
               key.position = "bottom", key = TRUE, dig.lab = 5, statistic = "prop.count",
              pollutant = NULL, annotate = TRUE, border = NA)

我尝试了 Openair 的示例数据库,它可以工作:

windRose(mydata, ws = "ws", wd = "wd", ws2 = NA, wd2 = NA, 
     ws.int = 2, angle = 30, type = "default", bias.corr = TRUE, cols
     = "default", grid.line = NULL, width = 1, seg = NULL, auto.text 
     = TRUE, breaks = 4, offset = 10, normalise = FALSE, max.freq = 
       NULL, paddle = TRUE, key.header = NULL, key.footer = "(m/s)", 
     key.position = "bottom", key = TRUE, dig.lab = 5, statistic = 
       "prop.count", pollutant = NULL, annotate = TRUE, angle.scale = 
       360, border = NA)

比较两者:

summary(mydata$wd)

 Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  0     140     210     200     270     360     219 


summary(meteo$`Dir Viento`)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
0.0    90.0   140.0   175.5   270.0   360.0      43 

【问题讨论】:

  • 它需要 360,还是只需要值 0 --> 359?我会检查一下。
  • Openair 通常将 360 视为北。所以,很可能是别的东西……
  • 如果您不打算提供数据,我们只能鼓励您学习自己调试。使用traceback()options(error=recover)

标签: r openair


【解决方案1】:

在尝试使用我自己的数据创建 windRose() 时,我遇到了完全相同(相当模糊)的错误,即:

Error in e2[[j]] : subscript out of bounds

当我的风向 (wd) 精确表示为 0 到 360 度之间的 10 度单位的倍数时,似乎会发生此错误。在 windRose() 函数的帮助下,我注意到 bias.corr 参数的以下内容:

bias.corr 当角度不精确地划分为 360 度时,当风向已被提供为最接近的 10 度时,频率中会引入偏差,这通常是这种情况。例如,如果角度 = 22.5,则 N、E、S、W 将包括 3 个风扇区,而所有其他角度将为 2。可以进行偏差校正来纠正这个问题。根据 Applequist (2012) 的一种简单方法用于调整频率

通过设置参数bias.corr=F,我设法使windRose没有任何错误,即

windRose(mydata, ws, wd, bias.corr=F)

PS 我使用 R 3.3.2 和 openair 2.1-5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2014-03-07
    相关资源
    最近更新 更多