如何在R中绘制风玫瑰?
我想在R里画一朵风玫瑰。我正在用“露天”这个软件包。 我的数据库以度/10为单位(在0和36之间),如果我绘制这个值(但没有意义),它会工作。但如果我用真实的度数(度数*10)表示: e2[[j]]中的错误:超出限制(是什么?) 我的代码是:如何在R中绘制风玫瑰?,r,openair,R,Openair,我想在R里画一朵风玫瑰。我正在用“露天”这个软件包。 我的数据库以度/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 =
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
我只是在尝试对自己的数据生成windRose()时遇到了完全相同的错误(相当模糊),即:
e2[[j]]中的错误:下标超出范围
当我的风向(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我使用R3.3.2和openair 2.1-5它需要360,还是只需要0-->359?我查一下。Openair通常将360度视为北面。所以,这可能是另外一件事……如果您不打算提供数据,我们只有机会鼓励您学习自己调试。使用
traceback()
和选项(错误=恢复)