首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于净辐射资料的多云日数识别

基于净辐射资料的多云日数识别
EN

Stack Overflow用户
提问于 2020-09-13 15:01:41
回答 1查看 66关注 0票数 1

根据每日净辐射时间序列(在FluxNet/AMERIFlux站点计算),我如何确定某一天是多云或晴天?我在某个地方读到,晴朗的天空辐射具有正弦行为。如果我们有不同的行为,那就意味着它是由云引起的。我不知道该怎么处理这个问题?下面是示例数据:https://drive.google.com/file/d/1f1YfWgPbg3fxhFG1DTNH9Ex3lTDqLBZp/view?usp=sharing

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-13 16:49:52

如果我们获取原始数据并将Time列从文本转换为我们可以处理的实际日期,这将有助于分析。我们还将删除带有NaN值的行:

代码语言:javascript
复制
df <- read.csv("net_rad.csv")

df$Date <- as.POSIXct(strptime(df$Time, "%m/%d/%Y"))
df <- df[!is.nan(df$NET_RAD),]

如果我们绘制每日净辐射图,我们可以看到一个明显的季节模式:

代码语言:javascript
复制
library(ggplot2)

ggplot(df, aes(Date, NET_RAD)) + geom_line()

我们可以利用季节分解来观察这些季节性影响,甚至消除它们:

代码语言:javascript
复制
net_rad_ts <- ts(df$NET_RAD, frequency = 365)
net_rad_decomp <- stats::decompose(net_rad_ts)
plot(net_rad_decomp)

我们可以看到,除了季节变化外,每个季节都有一个背景趋势和相当大的随机变化。我们还可以看到,夏季的变化似乎高于冬季(这是合理的)。

如果没有明确的截断来定义“多云”在净辐射方面的含义,我们可以简单地说明,在考虑到一年中的时间和随时间变化趋势之后,我们只想确定太阳辐射低于平均值的日子。所以我们可以:

代码语言:javascript
复制
df$cloudy <- as.logical(net_rad_decomp$random < 0)

这样,我们就可以绘制数据,显示那些在黄色中异常明亮的日子,以及那些在灰色中显得异常暗淡的日子:

代码语言:javascript
复制
ggplot(df, aes(Date, NET_RAD, colour = cloudy)) + 
  geom_point() +
  scale_color_manual(values = c("gold", "gray40")) +
  theme_bw()

这给了我们一个粗略的近似你的答案,这将足够,直到你想出一个很好的定义“多云”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63872225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档