1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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')