Output directory name
output.dir <- "Output/"
Additional R packages
library(data.table)
library(dplyr)
library(ggplot2)
library(lubridate)
library(scales)
## Warning: package 'scales' was built under R version 3.3.2
Define weather station parameters
station <- list(name="02712")
Data pool used for cloudiness, precipitaion, and humidity.
data = list()
Read data from file
data$cloudiness <- read.csv("Analytical Data/Cloudiness 02712.csv", as.is = TRUE)
nrow(data$cloudiness)
## [1] 379883
Reorder day part
data$cloudiness$daypart <- factor(data$cloudiness$daypart, levels = c("Daytime", "Twilight", "Nighttime"))
Add season
data$cloudiness$season <- season(data$cloudiness$month)
Calculate cloudiness by season
df <- data$cloudiness %>%
filter(daypart != "Twilight") %>%
group_by(season, daypart) %>%
summarize(value = 12.5* mean(cloudiness, na.rm = TRUE))
Differences of diurnal cloudiness
data.table(diff.diurnal(df))
## season daypart1 value1 daypart2 value2 delta
## 1: Winter Daytime 80.94934 Nighttime 77.79297 3.156370
## 2: Spring Daytime 68.24326 Nighttime 61.67766 6.565601
## 3: Summer Daytime 60.44897 Nighttime 54.84742 5.601547
## 4: Autumn Daytime 73.37257 Nighttime 68.40463 4.967943
Differences of seasonal cloudiness
data.table(diff.seasonal(df))
## daypart season1 value1 season2 value2 delta
## 1: Daytime Winter 80.94934 Spring 68.24326 12.706078
## 2: Nighttime Winter 77.79297 Spring 61.67766 16.115309
## 3: Daytime Spring 68.24326 Summer 60.44897 7.794295
## 4: Nighttime Spring 61.67766 Summer 54.84742 6.830241
## 5: Daytime Summer 60.44897 Autumn 73.37257 -12.923604
## 6: Nighttime Summer 54.84742 Autumn 68.40463 -13.557208
## 7: Daytime Autumn 73.37257 Winter 80.94934 -7.576769
## 8: Nighttime Autumn 68.40463 Winter 77.79297 -9.388342
Calculate average cloud cover by day
df <- data$cloudiness %>%
# Group by month, and day.
group_by(month, day, daypart) %>%
# Average cloudiness in %.
summarize(cloudiness.mean = 12.5* mean(cloudiness, na.rm = TRUE),
cloudiness.sd = sd(cloudiness, na.rm = TRUE)) %>%
# Add date column (year value is a dummy).
mutate(date=as.Date(paste(2016, month, day, sep = "-"))) %>%
# Select columns.
ungroup() %>%
select(date, cloudiness.mean, cloudiness.sd, daypart)
Plot average cloud cover by day
p <- ggplot(df) +
geom_point(aes(x = date, y = cloudiness.mean, color = daypart), alpha = 0.5) +
geom_errorbar(aes(x = date,
ymin = cloudiness.mean - cloudiness.sd,
ymax = cloudiness.mean + cloudiness.sd, color = daypart),
alpha = 0.3) +
geom_smooth(aes(x = date, y = cloudiness.mean, color = daypart),
span = 0.3,
alpha = 0.3,
method = "loess",
se = FALSE) +
scale_color_discrete(name = "") +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Average Cloud Cover / Weather Station", station$name,
paste0("(",
min(data$cloudiness$year, na.rm = TRUE),
"-",
max(data$cloudiness$year, na.rm = TRUE),
")")),
x = "Month",
y = "Cloud Cover [%]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Cloudiness 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Cloudiness 02712.png"))
## quartz_off_screen
## 2
Clean up
rm(df, p)
Read data from file
data$precipitation <- read.csv("Analytical Data/Precipitation 02712.csv", as.is = TRUE)
nrow(data$precipitation)
## [1] 177712
Reorder day part
data$precipitation$daypart <- factor(data$precipitation$daypart, levels = c("Daytime", "Twilight", "Nighttime"))
Add season
data$precipitation$season <- season(data$precipitation$month)
Calculate sum of precipitation height by season
df <- data$precipitation %>%
filter(daypart != "Twilight") %>%
group_by(season, daypart) %>%
summarize(value = sum(height, na.rm = TRUE))
Differences of diurnal precipitation
data.table(diff.diurnal(df))
## season daypart1 value1 daypart2 value2 delta
## 1: Winter Daytime 962.4 Nighttime 1510.5 -548.1
## 2: Spring Daytime 1985.8 Nighttime 1059.8 926.0
## 3: Summer Daytime 3259.0 Nighttime 968.7 2290.3
## 4: Autumn Daytime 1611.0 Nighttime 1777.9 -166.9
Differences of seasonal precipitation
data.table(diff.seasonal(df))
## daypart season1 value1 season2 value2 delta
## 1: Daytime Winter 962.4 Spring 1985.8 -1023.4
## 2: Nighttime Winter 1510.5 Spring 1059.8 450.7
## 3: Daytime Spring 1985.8 Summer 3259.0 -1273.2
## 4: Nighttime Spring 1059.8 Summer 968.7 91.1
## 5: Daytime Summer 3259.0 Autumn 1611.0 1648.0
## 6: Nighttime Summer 968.7 Autumn 1777.9 -809.2
## 7: Daytime Autumn 1611.0 Winter 962.4 648.6
## 8: Nighttime Autumn 1777.9 Winter 1510.5 267.4
Calculate average precipitation height by day
df <- data$precipitation %>%
# Sum precipitation height per day.
group_by(year, month, day, daypart) %>%
summarize(height = sum(height, na.rm = TRUE)) %>%
# Average precipitation height by day over all years.
group_by(month, day, daypart) %>%
summarize(height.mean = mean(height, na.rm = TRUE),
height.sd = sd(height, na.rm = TRUE)) %>%
# Add date column (year value is a dummy).
mutate(date = as.Date(paste(2016, month, day, sep = "-"))) %>%
# Select columns.
ungroup() %>%
select(date, height.mean, height.sd, daypart)
Plot average precipitation height by day
p <- ggplot(df) +
geom_point(aes(x = date, y = height.mean, color = daypart), alpha = 0.5) +
geom_errorbar(aes(x = date,
ymin = ifelse(height.mean - height.sd >= 0, height.mean - height.sd, 0),
ymax = height.mean + height.sd,
color = daypart),
alpha = 0.3) +
geom_smooth(aes(x = date, y = height.mean, color = daypart),
span = 0.3,
alpha = 0.3,
method = "loess",
se = FALSE) +
facet_grid(. ~ daypart) +
scale_color_discrete(guide = FALSE) +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Average Precipitation / Weather Station", station$name,
paste0("(",
min(data$precipitation$year, na.rm = TRUE),
"-",
max(data$precipitation$year, na.rm = TRUE),
")")),
x = "Month",
y = "Height [mm]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Precipitation 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Precipitation 02712.png"))
## quartz_off_screen
## 2
Read data from file
data$temperature <- read.csv("Analytical Data/Temperature 02712.csv", as.is = TRUE)
nrow(data$temperature)
## [1] 394190
Reorder day part
data$temperature$daypart <- factor(data$temperature$daypart, levels = c("Daytime", "Twilight", "Nighttime"))
Add season
data$temperature$season <- season(data$temperature$month)
Calculate average temperature by season
df <- data$temperature %>%
filter(daypart != "Twilight") %>%
group_by(season, daypart) %>%
summarize(value = mean(temperature, na.rm = TRUE))
Differences of diurnal temperature
data.table(diff.diurnal(df))
## season daypart1 value1 daypart2 value2 delta
## 1: Winter Daytime 1.874211 Nighttime 0.7895658 1.084645
## 2: Spring Daytime 10.950334 Nighttime 6.8197910 4.130543
## 3: Summer Daytime 19.379825 Nighttime 16.3336091 3.046216
## 4: Autumn Daytime 11.266041 Nighttime 8.2169834 3.049057
Differences of seasonal temperature
data.table(diff.seasonal(df))
## daypart season1 value1 season2 value2 delta
## 1: Daytime Winter 1.8742110 Spring 10.9503344 -9.076123
## 2: Nighttime Winter 0.7895658 Spring 6.8197910 -6.030225
## 3: Daytime Spring 10.9503344 Summer 19.3798252 -8.429491
## 4: Nighttime Spring 6.8197910 Summer 16.3336091 -9.513818
## 5: Daytime Summer 19.3798252 Autumn 11.2660405 8.113785
## 6: Nighttime Summer 16.3336091 Autumn 8.2169834 8.116626
## 7: Daytime Autumn 11.2660405 Winter 1.8742110 9.391829
## 8: Nighttime Autumn 8.2169834 Winter 0.7895658 7.427418
Calculate average temperature by day
df <- data$temperature %>%
# Group by month, and day.
group_by(month, day, daypart) %>%
# Average temperature.
summarize(temperature.mean = mean(temperature, na.rm = TRUE),
temperature.sd = sd(temperature, na.rm = TRUE)) %>%
# Add date column (year value is a dummy).
mutate(date=as.Date(paste(2016, month, day, sep = "-"))) %>%
# Select columns.
ungroup() %>%
select(date, temperature.mean, temperature.sd, daypart)
Plot average temperature by day
p <- ggplot(df) +
geom_point(aes(x = date, y = temperature.mean, color = daypart), alpha = 0.5) +
geom_errorbar(aes(x= date,
ymin = temperature.mean - temperature.sd,
ymax = temperature.mean + temperature.sd,
color = daypart),
alpha = 0.3) +
geom_smooth(aes(x = date, y = temperature.mean, color = daypart),
span = 0.3,
alpha = 0.3,
method = "loess",
se = FALSE) +
facet_grid(. ~ daypart) +
scale_color_discrete(guide = FALSE) +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Average Temperature / Weather Station", station$name,
paste0("(",
min(data$temperature$year, na.rm = TRUE),
"-",
max(data$temperature$year, na.rm = TRUE),
")")),
x = "Month",
y = "Temperature [°C]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Temperature 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Temperature 02712.png"))
## quartz_off_screen
## 2
Read data from file
data$humidity <- read.csv("Analytical Data/Humidity 02712.csv", as.is = TRUE)
nrow(data$humidity)
## [1] 394190
Reorder day part
data$humidity$daypart <- factor(data$humidity$daypart, levels = c("Daytime", "Twilight", "Nighttime"))
Add season
data$humidity$season <- season(data$humidity$month)
Calculate average humidity by season
df <- data$humidity %>%
filter(daypart != "Twilight") %>%
group_by(season, daypart) %>%
summarize(value = mean(humidity, na.rm = TRUE))
Differences of diurnal humidity
data.table(diff.diurnal(df))
## season daypart1 value1 daypart2 value2 delta
## 1: Winter Daytime 82.02312 Nighttime 87.88503 -5.861908
## 2: Spring Daytime 67.03168 Nighttime 79.35380 -12.322118
## 3: Summer Daytime 67.51415 Nighttime 82.62562 -15.111467
## 4: Autumn Daytime 79.27744 Nighttime 89.31034 -10.032907
Differences of seasonal humidity
data.table(diff.seasonal(df))
## daypart season1 value1 season2 value2 delta
## 1: Daytime Winter 82.02312 Spring 67.03168 14.9914363
## 2: Nighttime Winter 87.88503 Spring 79.35380 8.5312272
## 3: Daytime Spring 67.03168 Summer 67.51415 -0.4824685
## 4: Nighttime Spring 79.35380 Summer 82.62562 -3.2718175
## 5: Daytime Summer 67.51415 Autumn 79.27744 -11.7632886
## 6: Nighttime Summer 82.62562 Autumn 89.31034 -6.6847294
## 7: Daytime Autumn 79.27744 Winter 82.02312 -2.7456793
## 8: Nighttime Autumn 89.31034 Winter 87.88503 1.4253197
Calculate aerage humidity by day
df <- data$humidity %>%
# Group by month, and day.
group_by(month, day, daypart) %>%
# Average humidity.
summarize(humidity.mean = mean(humidity, na.rm = TRUE),
humidity.sd = sd(humidity, na.rm = TRUE)) %>%
# Add date column (year value is a dummy).
mutate(date=as.Date(paste(2016, month, day, sep = "-"))) %>%
# Select columns.
ungroup() %>%
select(date, humidity.mean, humidity.sd, daypart)
Plot average humidity by day of year
p <- ggplot(df) +
geom_point(aes(x = date, y = humidity.mean, color = daypart), alpha = 0.5) +
geom_errorbar(aes(x = date,
ymin = humidity.mean - humidity.sd,
ymax = humidity.mean + humidity.sd,
color = daypart),
alpha = 0.3) +
geom_smooth(aes(x = date, y = humidity.mean, color = daypart),
span = 0.3,
alpha = 0.3,
method = "loess",
se = FALSE) +
facet_grid(. ~ daypart) +
scale_color_discrete(guide = FALSE) +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Average Humidity / Weather Station", station$name,
paste0("(",
min(data$humidity$year, na.rm = TRUE),
"-",
max(data$humidity$year, na.rm = TRUE),
")")),
x = "Month",
y = "Humidity [%]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Humidity 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Humidity 02712.png"))
## quartz_off_screen
## 2
Read data from file
data$wind <- read.csv("Analytical Data/Wind 02712.csv", as.is = TRUE)
nrow(data$wind)
## [1] 494772
Reorder day part
data$wind$daypart <- factor(data$wind$daypart, levels = c("Daytime", "Twilight", "Nighttime"))
Add season
data$wind$season <- season(data$wind$month)
Calculate average wind by season
df <- data$wind %>%
filter(daypart != "Twilight") %>%
group_by(season, daypart) %>%
summarize(value = mean(speed, na.rm = TRUE))
Differences of diurnal wind
data.table(diff.diurnal(df))
## season daypart1 value1 daypart2 value2 delta
## 1: Winter Daytime 2.361793 Nighttime 2.152585 0.2092075
## 2: Spring Daytime 2.373692 Nighttime 1.910112 0.4635804
## 3: Summer Daytime 2.031986 Nighttime 1.497790 0.5341961
## 4: Autumn Daytime 1.919832 Nighttime 1.682902 0.2369304
Differences of seasonal wind
data.table(diff.seasonal(df))
## daypart season1 value1 season2 value2 delta
## 1: Daytime Winter 2.361793 Spring 2.373692 -0.01189947
## 2: Nighttime Winter 2.152585 Spring 1.910112 0.24247341
## 3: Daytime Spring 2.373692 Summer 2.031986 0.34170611
## 4: Nighttime Spring 1.910112 Summer 1.497790 0.41232183
## 5: Daytime Summer 2.031986 Autumn 1.919832 0.11215355
## 6: Nighttime Summer 1.497790 Autumn 1.682902 -0.18511222
## 7: Daytime Autumn 1.919832 Winter 2.361793 -0.44196019
## 8: Nighttime Autumn 1.682902 Winter 2.152585 -0.46968302
Calculate average wind speed by day
df <- data$wind %>%
# Group by month, and day.
group_by(month, day, daypart) %>%
# Average wind
summarize(speed.mean = mean(speed, na.rm = TRUE),
speed.sd = sd(speed, na.rm = TRUE)) %>%
# Add date column (year value is a dummy).
mutate(date=as.Date(paste(2016, month, day, sep = "-"))) %>%
# Select columns.
ungroup() %>%
select(date, speed.mean, speed.sd, daypart)
Plot average wind speed by day
p <- ggplot(df) +
geom_point(aes(x = date, y = speed.mean, color = daypart), alpha = 0.5) +
geom_errorbar(aes(x = date,
ymin = speed.mean - speed.sd,
ymax = speed.mean + speed.sd,
color = daypart),
alpha = 0.3) +
geom_smooth(aes(x = date, y = speed.mean, color = daypart),
span = 0.3,
alpha = 0.3,
method = "loess",
se = FALSE) +
facet_grid(. ~ daypart) +
scale_color_discrete(guide = FALSE) +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Average Wind Speed / Weather Station", station$name,
paste0("(",
min(data$wind$year, na.rm = TRUE),
"-",
max(data$wind$year, na.rm = TRUE),
")")),
x = "Month",
y = "Wind Speed [m/s]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Wind 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Wind 02712.png"))
## quartz_off_screen
## 2
Read data from file
data$daypartlength <- read.csv("Analytical Data/Day Part Length 02712.csv", as.is = TRUE)
nrow(data$daypartlength)
## [1] 8760
Reorder day part
data$daypartlength$daypart <- factor(data$daypartlength$daypart, levels = c("Daytime", "Twilight", "Nighttime"))
Add season
data$daypartlength$season <- season(data$daypartlength$month)
Calculate average day part length by season
df <- data$daypartlength %>%
filter(daypart != "Twilight") %>%
group_by(season, month, day, daypart) %>%
summarize(length = n()) %>%
group_by(season, daypart) %>%
summarize(value = mean(length))
Differences of diurnal day part length
data.table(diff.diurnal(df))
## season daypart1 value1 daypart2 value2 delta
## 1: Winter Daytime 8.833333 Nighttime 11.333333 -2.500000
## 2: Spring Daytime 13.434783 Nighttime 6.402174 7.032609
## 3: Summer Daytime 15.228261 Nighttime 3.532609 11.695652
## 4: Autumn Daytime 10.725275 Nighttime 9.560440 1.164835
Differences of seasonal day part length
data.table(diff.seasonal(df))
## daypart season1 value1 season2 value2 delta
## 1: Daytime Winter 8.833333 Spring 13.434783 -4.601449
## 2: Nighttime Winter 11.333333 Spring 6.402174 4.931159
## 3: Daytime Spring 13.434783 Summer 15.228261 -1.793478
## 4: Nighttime Spring 6.402174 Summer 3.532609 2.869565
## 5: Daytime Summer 15.228261 Autumn 10.725275 4.502986
## 6: Nighttime Summer 3.532609 Autumn 9.560440 -6.027831
## 7: Daytime Autumn 10.725275 Winter 8.833333 1.891941
## 8: Nighttime Autumn 9.560440 Winter 11.333333 -1.772894
Calculate average day part length by month
df <- data$daypartlength %>%
# Group by month, and day.
group_by(month, day, daypart) %>%
# Calculate day part length by day.
summarize(length = n()) %>%
# Group by month.
group_by(month, daypart) %>%
# Calcluate average day part length by month.
summarize(length = mean(length)) %>%
# Add date column (year value is a dummy).
mutate(date=as.Date(paste(2016, month, 1, sep = "-"))) %>%
# Select columns.
ungroup() %>%
select(date, length, daypart)
Plot average day part length by month
p <- ggplot(df) +
geom_bar(aes(x = date, y = length, fill = daypart), alpha = 0.5, stat = "identity", position="dodge") +
facet_grid(. ~ daypart) +
scale_fill_discrete(name = "") +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Average Day Part Length / Weather Station",
station$name,
"(2015)"),
x = "Month",
y = "Day Part Length [h]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Day Part Length 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Day Part Length 02712.png"))
## quartz_off_screen
## 2
Clean up
rm(df, p)
clear.sky = list()
cloudiness.threshold <- 2 # 2 * 12.5% = 25%
Nightly hours with cloud cover of 25% or less
clear.sky$cloudiness <- data$cloudiness %>%
filter(year == 2015) %>%
filter(daypart == "Nighttime") %>%
filter(cloudiness <= cloudiness.threshold) %>%
select(-quality, -daypart)
nrow(clear.sky$cloudiness)
## [1] 964
Nightly hours without percipitation
clear.sky$precipitation <- data$precipitation %>%
filter(year == 2015) %>%
filter(daypart == "Nighttime") %>%
filter(indicator == FALSE) %>%
select(-height, -quality, -daypart)
nrow(clear.sky$precipitation)
## [1] 2175
humidity.threshold <- 85
Nightly hours with humidity of 85% or less
clear.sky$humidity <- data$humidity %>%
filter(year == 2015) %>%
filter(daypart == "Nighttime") %>%
filter(humidity <= humidity.threshold) %>%
select(-quality, -daypart)
nrow(clear.sky$humidity)
## [1] 1292
I want at least 3 hours of clear sky per night
length.threshold <- 3
Nights without precipitations and a cloud cover of 25% or less and a humidity of 85% or less for at least 3 hours
df <- merge(merge(clear.sky$cloudiness, clear.sky$precipitation), clear.sky$humidity) %>%
group_by(year, month, day) %>%
summarize(length = n()) %>%
filter(length >= length.threshold)
nrow(df)
## [1] 83
Calculate hours of clear sky by month
df<- df %>% group_by(year, month) %>%
summarize(length = sum(length)) %>%
mutate(date = as.Date(paste(year, month, 1, sep = "-"))) %>%
ungroup %>%
select(date, length)
months <- seq(1,12)
missing <- months[!(months %in% (as.POSIXlt(df$date)$mon+1))]
if (length(missing > 0)) {
df <- rbind(df, data.frame(date=as.Date(paste(2015, missing, 1, sep = "-")), length=c(0)))
df <- df[order(df$date),]
}
data.table(df %>% mutate(month=strftime(date,"%b")))
## date length month
## 1: 2015-01-01 11 Jan
## 2: 2015-02-01 31 Feb
## 3: 2015-03-01 98 Mar
## 4: 2015-04-01 60 Apr
## 5: 2015-05-01 7 May
## 6: 2015-06-01 0 Jun
## 7: 2015-07-01 17 Jul
## 8: 2015-08-01 69 Aug
## 9: 2015-09-01 66 Sep
## 10: 2015-10-01 18 Oct
## 11: 2015-11-01 42 Nov
## 12: 2015-12-01 8 Dec
Plot hours of clear sky by month
p <- ggplot(df) +
geom_bar(aes(x = date, y = length), stat = "identity") +
scale_x_date(breaks = date_breaks("3 months"),
labels = date_format("%b"),
minor_breaks = date_breaks("1 month")) +
labs(title = paste("Clear Sky / Weather Station", station$name, "(2015)"),
x = "Month",
y = "Clear Sky [h]") +
theme_bw()
p
Write result to files
if (!dir.exists(output.dir)) dir.create(output.dir)
write.csv(df, paste0(output.dir, "Clear Sky 02712.csv"), row.names = FALSE)
write.plot(p, paste0(output.dir, "Clear Sky 02712.png"))
## quartz_off_screen
## 2
diff.diurnal <- function(data) {
dayparts <- c("Daytime", "Nighttime")
seasons <- c("Winter", "Spring", "Summer", "Autumn")
diffs <- data.frame(character(), character(), numeric(), numeric(), character(), numeric())
for (i in seq(1, length(dayparts)-1)) {
for (j in seq(1, length(seasons))) {
x <- data %>% filter(daypart == dayparts[i]) %>% filter(season == seasons[j])
y <- data %>% filter(daypart == dayparts[i+1]) %>% filter(season == seasons[j])
diffs <- rbind(diffs,data.frame(season = x$season,
daypart1 = x$daypart,
value1 = x$value,
daypart2 = y$daypart,
value2 = y$value,
delta = x$value - y$value))
}
}
diffs
}
diff.seasonal <- function(data) {
diffs <- data.frame(character(), character(), numeric(), numeric(), character(), numeric())
seasons <- c("Winter", "Spring", "Summer", "Autumn", "Winter")
dayparts <- c("Daytime", "Nighttime")
for (i in seq(1, length(seasons)-1)) {
for (j in seq(1, length(dayparts))) {
x <- data %>% filter(season == seasons[i]) %>% filter(daypart == dayparts[j])
y <- data %>% filter(season == seasons[i+1]) %>% filter(daypart == dayparts[j])
diffs <- rbind(diffs,data.frame(daypart = x$daypart,
season1 = x$season,
value1 = x$value,
season2 = y$season,
value2 = y$value,
delta = x$value - y$value))
}
}
diffs
}
season <- function(x) {
y <- cut(x, breaks=c(-1,2,5,8,11,12), labels=c("A","B","C","D","E"))
levels(y) <- list("Winter"=c("A", "E"), "Spring"="B", "Summer"="C", "Autumn"="D")
y
}
write.plot <- function(p, filename, width = 1024, height = 576, font.size = 16) {
png(filename,width, height)
print(p + theme_bw(base_size=font.size))
dev.off()
}