如何根据每天的净辐射时间序列(在FluxNet / AMERIFlux站点上计算)确定特定的日子是多云还是晴朗的天空?我在某处看到晴朗的天空辐射具有正弦行为。如果我们得到不同的行为,则意味着它是由云引起的。我不知道如何精确地解决这个问题?以下是示例数据:https://drive.google.com/file/d/1f1YfWgPbg3fxhFG1DTNH9Ex3lTDqLBZp/view?usp=sharing
答案 0 :(得分:2)
如果我们获取您的原始数据并将Time
列从文本转换为可以使用的实际日期,这将有助于分析。我们还将删除具有NaN
值的行:
df <- read.csv("net_rad.csv")
df$Date <- as.POSIXct(strptime(df$Time, "%m/%d/%Y"))
df <- df[!is.nan(df$NET_RAD),]
如果我们绘制每日净辐射图,我们会看到一个清晰的季节性模式:
library(ggplot2)
ggplot(df, aes(Date, NET_RAD)) + geom_line()
我们可以使用季节性分解来查看这些季节性影响,甚至可以将它们删除:
net_rad_ts <- ts(df$NET_RAD, frequency = 365)
net_rad_decomp <- stats::decompose(net_rad_ts)
plot(net_rad_decomp)
我们可以看到,除了季节变化外,每个季节内都有背景趋势和相当大的随机变化。我们还可以看到,夏季的方差似乎大于冬季的方差(这是有道理的)
如果没有清晰的界限来定义“阴天”在净辐射方面的含义,我们可以简单地指定,在考虑了一年中的时间和随时间变化的趋势之后,我们想要确定太阳辐射低于平均水平的日子。 。因此,我们可以这样做:
df$cloudy <- as.logical(net_rad_decomp$random < 0)
这使我们能够绘制数据,显示黄色的季节异常明亮,而灰色的季节异常暗:
ggplot(df, aes(Date, NET_RAD, colour = cloudy)) +
geom_point() +
scale_color_manual(values = c("gold", "gray40")) +
theme_bw()
这使我们对您的答案有一个大概的近似,直到您对“阴天”有了一个很好的定义为止,这才足够。