# Flags
require(dplyr)
require(ggplot2)
require(tidyr)
require(reshape2)
require(lemon)
require(plotly)
require(data.table)
require(geobr)
require(terra)
require(openxlsx)
rrs = read.xlsx('Data/rrs.xlsx', detectDates = T)
rrs$negatives = 0
for(i in 1:nrow(rrs)) {
neg_value = rrs[i,-1] %>% t() %>% as.numeric()
rrs$negatives[i] = neg_value[neg_value < 0] %>% length()
}
waves = data.frame(WV = c(400:900))
waves$Neg_per_WV = NA
for(i in 2:ncol(rrs)) {
wv = rrs[,i] %>% as.numeric() %>% na.omit()
negativos = wv[wv < 0] %>% length()
waves$Neg_per_WV[i] = negativos
print(negativos)
}
par(cex = 2)
matplot(x = waves$WV, y = waves$Neg_per_WV, type = 'l', xlab = 'Wavelength (nm)', ylab = 'Number of Negative values')
## Plotar as flags
flags2 = fread('Data/flags.csv')
par(mfrow=c(1,2))
matplot(x = waves$WV, y = waves$Neg_per_WV, type = 'l', xlab = 'Wavelength (nm)', ylab = 'Number of Negative values')
df = data.frame(Baseline_Shift = sum(flags2$Baseline_shift),
Oxygen_signal = sum(flags2$Oxygen_signal),
Suspicious = sum(flags2$Suspicious),
Noisy_red = sum(na.omit(flags2$Noisy_red), na.omit = T),
Negative = max(waves$Neg_per_WV,na.rm = T)) %>% melt()
require(ggplot2)
df$variable = gsub(df$variable, pattern = 'Baseline_Shift', replacement = "BS")
df$variable = gsub(df$variable, pattern = 'Oxygen_signal', replacement = "OS")
df$variable = gsub(df$variable, pattern = 'Noisy_red', replacement = "NR")
df$variable = gsub(df$variable, pattern = 'Negative', replacement = "Neg")
df$variable = gsub(df$variable, pattern = 'Suspicious', replacement = "Susp")
pt1 = ggplot(df, aes(x = variable, y = value, fill = variable)) +
geom_bar(stat = "identity", color = 'black', linewidth = 2) +
labs(y = 'Number of Flagged Spectra', x = 'Flags') +
scale_fill_manual(values = c("#0000FF", "#F0E442", "#D55E00", '#FF0000', 'darkgreen')) +
#scale_x_discrete(breaks = 1:7, labels = 1:7, expand = c(0, 0)) + # Expande o eixo X para garantir que apareçam todos os rótulos
theme_bw() +
theme(panel.grid.major = element_line(colour = "#d3d3d3"),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
text = element_text(family = "Tahoma"),
axis.title = element_text(size = 30),
axis.text.x = element_text(colour = "black", size = size_axis, margin = margin(10,10,10,10)),
axis.text.y = element_text(colour = "black", size = size_axis, margin = margin(10,10,10,10)),
axis.line = element_line(size = 2, colour = "black"),
strip.text = element_text(size = 40)) +
theme(plot.margin = unit(c(4, 4, 4, 4), "lines")) +
guides(color = guide_legend(override.aes = list(size = 15))) +
theme(legend.position = "none")
pt2 = ggplot(waves, aes(x = WV, y = Neg_per_WV, color = 'red')) +
geom_line(color = 'red', linewidth = 1, cex = 0.5) +
geom_point(color = 'red', linewidth = 1.5) +
labs(y = 'Number of Negatives', x = 'Wavelength (nm)') +
#scale_x_discrete(breaks = 1:7, labels = 1:7, expand = c(0, 0)) + # Expande o eixo X para garantir que apareçam todos os rótulos
theme_bw() +
theme(panel.grid.major = element_line(colour = "#d3d3d3"),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
text = element_text(family = "Tahoma"),
axis.title = element_text(size = 30),
axis.text.x = element_text(colour = "black", size = size_axis, margin = margin(10,10,10,10)),
axis.text.y = element_text(colour = "black", size = size_axis, margin = margin(10,10,10,10)),
axis.line = element_line(size = 2, colour = "black"),
strip.text = element_text(size = 40)) +
theme(plot.margin = unit(c(5, 5, 5,5), "lines")) +
guides(color = guide_legend(override.aes = list(size = 15))) +
theme(legend.position = "none")
a = ggarrange(pt1, pt2, nrow = 1)
ggsave(plot = a, filename = 'Outputs/Figures/flags.jpeg',
width = 20, height = 10, dpi = 200, units = 'in')