# PM2.5 spectrometer tests
library('ggplot2')
library('openair')
## Loading required package: maps
## 
##  # maps v3.1: updated 'world': all lakes moved to separate new #
##  # 'lakes' database. Type '?world' or 'news(package="maps")'.  #
library('lubridate')
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
## 
##     date
library('corrplot')

# ODIN-SD-1 data ####
odin.sd.1.data <- read.delim("/home/gustavo/data/ODIN_SD/LAB_test1/odin_sd_1.txt")
odin.sd.1.data$date <- as.POSIXct(paste(odin.sd.1.data$Day,odin.sd.1.data$Time),tz='Pacific/Auckland')
odin.sd.1.data$Day<-NULL
odin.sd.1.data$Time<-NULL

# Date correction
# Real time: 2016-05-31 17:11:12

tdiff = (as.POSIXct("2016-05-31 17:11:12",format = "%Y-%m-%d %H:%M:%S") - odin.sd.1.data$date[1])
odin.sd.1.data$date <- odin.sd.1.data$date + tdiff

# Rename data fields to prepare for merging

names(odin.sd.1.data) <- c('FrameLength.1',
                           'PM1.1',
                           'PM2.5.1',
                           'PM10.1',
                           'Data4.1',
                           'Data5.1',
                           'Data6.1',
                           'Data7.1',
                           'Data8.1',
                           'Data9.1',
                           'Temperature.1',
                           'RH.1',
                           'date')

# ODIN-SD-2 data ####
odin.sd.2.data <- read.delim("/home/gustavo/data/ODIN_SD/LAB_test1/odin_sd_2.txt")
odin.sd.2.data$date <- as.POSIXct(paste(odin.sd.2.data$Day,odin.sd.2.data$Time),tz='Pacific/Auckland')
odin.sd.2.data$Day<-NULL
odin.sd.2.data$Time<-NULL

# Date correction
# Real time: 2016-05-31 17:11:43

tdiff = (as.POSIXct("2016-05-31 17:11:43",format = "%Y-%m-%d %H:%M:%S") - odin.sd.2.data$date[1])
odin.sd.2.data$date <- odin.sd.2.data$date + tdiff

# Rename data fields to prepare for merging

names(odin.sd.2.data) <- c('FrameLength.2',
                           'PM1.2',
                           'PM2.5.2',
                           'PM10.2',
                           'Data4.2',
                           'Data5.2',
                           'Data6.2',
                           'Data7.2',
                           'Data8.2',
                           'Data9.2',
                           'Temperature.2',
                           'RH.2',
                           'date')

# ODIN-SD-3 data ####
odin.sd.3.data <- read.delim("/home/gustavo/data/ODIN_SD/LAB_test1/odin_sd_3.txt")
odin.sd.3.data$date <- as.POSIXct(paste(odin.sd.3.data$Day,odin.sd.3.data$Time),tz='Pacific/Auckland')
odin.sd.3.data$Day<-NULL
odin.sd.3.data$Time<-NULL

# Date correction
# Real time: 2016-05-31 17:12:15

tdiff = (as.POSIXct("2016-05-31 17:12:15",format = "%Y-%m-%d %H:%M:%S") - odin.sd.3.data$date[1])
odin.sd.3.data$date <- odin.sd.3.data$date + tdiff

# Rename data fields to prepare for merging

names(odin.sd.3.data) <- c('FrameLength.3',
                           'PM1.3',
                           'PM2.5.3',
                           'PM10.3',
                           'Data4.3',
                           'Data5.3',
                           'Data6.3',
                           'Data7.3',
                           'Data8.3',
                           'Data9.3',
                           'Temperature.3',
                           'RH.3',
                           'date')

# ODIN-SD-4 data ####
odin.sd.4.data <- read.delim("/home/gustavo/data/ODIN_SD/LAB_test1/odin_sd_4.txt")
odin.sd.4.data$date <- as.POSIXct(paste(odin.sd.4.data$Day,odin.sd.4.data$Time),tz='Pacific/Auckland')
odin.sd.4.data$Day<-NULL
odin.sd.4.data$Time<-NULL

# Date correction
# Real time: 2016-05-31 17:13:17

tdiff = (as.POSIXct("2016-05-31 17:13:17",format = "%Y-%m-%d %H:%M:%S") - odin.sd.4.data$date[1])
odin.sd.4.data$date <- odin.sd.4.data$date + tdiff

# Rename data fields to prepare for merging

names(odin.sd.4.data) <- c('FrameLength.4',
                           'PM1.4',
                           'PM2.5.4',
                           'PM10.4',
                           'Data4.4',
                           'Data5.4',
                           'Data6.4',
                           'Data7.4',
                           'Data8.4',
                           'Data9.4',
                           'Temperature.4',
                           'RH.4',
                           'date')

# ODIN-SD-5 data ####
odin.sd.5.data <- read.delim("/home/gustavo/data/ODIN_SD/LAB_test1/odin_sd_5.txt")
odin.sd.5.data$date <- as.POSIXct(paste(odin.sd.5.data$Day,odin.sd.5.data$Time),tz='Pacific/Auckland')
odin.sd.5.data$Day<-NULL
odin.sd.5.data$Time<-NULL

# Date correction
# Real time: 2016-05-31 17:18:40

tdiff = (as.POSIXct("2016-05-31 17:18:40",format = "%Y-%m-%d %H:%M:%S") - odin.sd.5.data$date[1])
odin.sd.5.data$date <- odin.sd.5.data$date + tdiff

# Rename data fields to prepare for merging

names(odin.sd.5.data) <- c('FrameLength.5',
                           'PM1.5',
                           'PM2.5.5',
                           'PM10.5',
                           'Data4.5',
                           'Data5.5',
                           'Data6.5',
                           'Data7.5',
                           'Data8.5',
                           'Data9.5',
                           'Temperature.5',
                           'RH.5',
                           'date')

# ODIN-SD-6 data ####
odin.sd.6.data <- read.delim("/home/gustavo/data/ODIN_SD/LAB_test1/odin_sd_6.txt")
odin.sd.6.data$date <- as.POSIXct(paste(odin.sd.6.data$Day,odin.sd.6.data$Time),tz='Pacific/Auckland')
odin.sd.6.data$Day<-NULL
odin.sd.6.data$Time<-NULL

# Date correction
# Real time: 2016-05-31 17:15:40

tdiff = (as.POSIXct("2016-05-31 17:15:40",format = "%Y-%m-%d %H:%M:%S") - odin.sd.6.data$date[1])
odin.sd.6.data$date <- odin.sd.6.data$date + tdiff

# Rename data fields to prepare for merging

names(odin.sd.6.data) <- c('FrameLength.6',
                           'PM1.6',
                           'PM2.5.6',
                           'PM10.6',
                           'Data4.6',
                           'Data5.6',
                           'Data6.6',
                           'Data7.6',
                           'Data8.6',
                           'Data9.6',
                           'Temperature.6',
                           'RH.6',
                           'date')

# Merging the data
merged.data <- merge(odin.sd.1.data,odin.sd.2.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.3.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.4.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.5.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.6.data,by = 'date',all = TRUE)


# Plotting
avgtime = '1 hour'
timePlot(merged.data,pollutant = c('Temperature.1',
                                   'Temperature.2',
                                   'Temperature.3',
                                   'Temperature.4',
                                   'Temperature.5',
                                   'Temperature.6'),
         avg.time = avgtime,
         group = TRUE)

timePlot(merged.data,pollutant = c('RH.1',
                                   'RH.2',
                                   'RH.3',
                                   'RH.4',
                                   'RH.5',
                                   'RH.6'),
         avg.time = avgtime,
         group = TRUE)

timePlot(merged.data,pollutant = c('PM1.1',
                                   'PM1.2',
                                   'PM1.3',
                                   'PM1.4',
                                   'PM1.5',
                                   'PM1.6'),
         avg.time = avgtime,
         group = TRUE)

timePlot(merged.data,pollutant = c('PM10.1',
                                   'PM10.2',
                                   'PM10.3',
                                   'PM10.4',
                                   'PM10.5',
                                   'PM10.6'),
         avg.time = avgtime,
         group = TRUE)

timePlot(merged.data,pollutant = c('PM2.5.1',
                                   'PM2.5.2',
                                   'PM2.5.3',
                                   'PM2.5.4',
                                   'PM2.5.5',
                                   'PM2.5.6'),
         avg.time = avgtime,
         group = TRUE)

timePlot(merged.data,pollutant = c('Data8.1',
                                   'Data8.2',
                                   'Data8.3',
                                   'Data8.4',
                                   'Data8.5',
                                   'Data8.6'),
         avg.time = avgtime,
         group = TRUE)

timePlot(merged.data,pollutant = c('Data7.1',
                                   'Data7.2',
                                   'Data7.3',
                                   'Data7.4',
                                   'Data7.5',
                                   'Data7.6'),
         avg.time = avgtime,
         group = TRUE)

save(merged.data,file = './odin-sd-data.RData')