# 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-01 data ####
odin.sd.01.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_01.txt")
odin.sd.01.data$date <- as.POSIXct(paste(odin.sd.01.data$Day,odin.sd.01.data$Time),tz='Pacific/Auckland')
odin.sd.01.data$Day<-NULL
odin.sd.01.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:42:55
tdiff = (as.POSIXct("2016-06-02 16:42:55",format = "%Y-%m-%d %H:%M:%S") - odin.sd.01.data$date[1])
odin.sd.01.data$date <- odin.sd.01.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.01.data) <- c('FrameLength.01',
'PM1.01',
'PM2.5.01',
'PM10.01',
'Data4.01',
'Data5.01',
'Data6.01',
'Data7.01',
'Data8.01',
'Data9.01',
'Temperature.01',
'RH.01',
'date')
# ODIN-SD-02 data ####
odin.sd.02.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_02.txt")
odin.sd.02.data$date <- as.POSIXct(paste(odin.sd.02.data$Day,odin.sd.02.data$Time),tz='Pacific/Auckland')
odin.sd.02.data$Day<-NULL
odin.sd.02.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:39:10
tdiff = (as.POSIXct("2016-06-02 16:39:10",format = "%Y-%m-%d %H:%M:%S") - odin.sd.02.data$date[1])
odin.sd.02.data$date <- odin.sd.02.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.02.data) <- c('FrameLength.02',
'PM1.02',
'PM2.5.02',
'PM10.02',
'Data4.02',
'Data5.02',
'Data6.02',
'Data7.02',
'Data8.02',
'Data9.02',
'Temperature.02',
'RH.02',
'date')
# ODIN-SD-03 data ####
odin.sd.03.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_03.txt")
odin.sd.03.data$date <- as.POSIXct(paste(odin.sd.03.data$Day,odin.sd.03.data$Time),tz='Pacific/Auckland')
odin.sd.03.data$Day<-NULL
odin.sd.03.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:42:10
tdiff = (as.POSIXct("2016-06-02 16:42:10",format = "%Y-%m-%d %H:%M:%S") - odin.sd.03.data$date[1])
odin.sd.03.data$date <- odin.sd.03.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.03.data) <- c('FrameLength.03',
'PM1.03',
'PM2.5.03',
'PM10.03',
'Data4.03',
'Data5.03',
'Data6.03',
'Data7.03',
'Data8.03',
'Data9.03',
'Temperature.03',
'RH.03',
'date')
# ODIN-SD-05 data ####
odin.sd.05.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_05.txt")
odin.sd.05.data$date <- as.POSIXct(paste(odin.sd.05.data$Day,odin.sd.05.data$Time),tz='Pacific/Auckland')
odin.sd.05.data$Day<-NULL
odin.sd.05.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:43:55
tdiff = (as.POSIXct("2016-06-02 16:43:55",format = "%Y-%m-%d %H:%M:%S") - odin.sd.05.data$date[1])
odin.sd.05.data$date <- odin.sd.05.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.05.data) <- c('FrameLength.05',
'PM1.05',
'PM2.5.05',
'PM10.05',
'Data4.05',
'Data5.05',
'Data6.05',
'Data7.05',
'Data8.05',
'Data9.05',
'Temperature.05',
'RH.05',
'date')
# ODIN-SD-06 data ####
odin.sd.06.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_06.txt")
odin.sd.06.data$date <- as.POSIXct(paste(odin.sd.06.data$Day,odin.sd.06.data$Time),tz='Pacific/Auckland')
odin.sd.06.data$Day<-NULL
odin.sd.06.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:40:10
tdiff = (as.POSIXct("2016-06-02 16:40:10",format = "%Y-%m-%d %H:%M:%S") - odin.sd.06.data$date[1])
odin.sd.06.data$date <- odin.sd.06.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.06.data) <- c('FrameLength.06',
'PM1.06',
'PM2.5.06',
'PM10.06',
'Data4.06',
'Data5.06',
'Data6.06',
'Data7.06',
'Data8.06',
'Data9.06',
'Temperature.06',
'RH.06',
'date')
# ODIN-SD-07 data ####
odin.sd.07.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_07.txt")
odin.sd.07.data$date <- as.POSIXct(paste(odin.sd.07.data$Day,odin.sd.07.data$Time),tz='Pacific/Auckland')
odin.sd.07.data$Day<-NULL
odin.sd.07.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:41:30
tdiff = (as.POSIXct("2016-06-02 16:41:30",format = "%Y-%m-%d %H:%M:%S") - odin.sd.07.data$date[1])
odin.sd.07.data$date <- odin.sd.07.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.07.data) <- c('FrameLength.07',
'PM1.07',
'PM2.5.07',
'PM10.07',
'Data4.07',
'Data5.07',
'Data6.07',
'Data7.07',
'Data8.07',
'Data9.07',
'Temperature.07',
'RH.07',
'date')
# ODIN-SD-08 data ####
odin.sd.08.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_08.txt")
odin.sd.08.data$date <- as.POSIXct(paste(odin.sd.08.data$Day,odin.sd.08.data$Time),tz='Pacific/Auckland')
odin.sd.08.data$Day<-NULL
odin.sd.08.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:46:55
tdiff = (as.POSIXct("2016-06-02 16:46:55",format = "%Y-%m-%d %H:%M:%S") - odin.sd.08.data$date[1])
odin.sd.08.data$date <- odin.sd.08.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.08.data) <- c('FrameLength.08',
'PM1.08',
'PM2.5.08',
'PM10.08',
'Data4.08',
'Data5.08',
'Data6.08',
'Data7.08',
'Data8.08',
'Data9.08',
'Temperature.08',
'RH.08',
'date')
# ODIN-SD-09 data ####
odin.sd.09.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_09.txt")
odin.sd.09.data$date <- as.POSIXct(paste(odin.sd.09.data$Day,odin.sd.09.data$Time),tz='Pacific/Auckland')
odin.sd.09.data$Day<-NULL
odin.sd.09.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:48:00
tdiff = (as.POSIXct("2016-06-02 16:48:00",format = "%Y-%m-%d %H:%M:%S") - odin.sd.09.data$date[1])
odin.sd.09.data$date <- odin.sd.09.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.09.data) <- c('FrameLength.09',
'PM1.09',
'PM2.5.09',
'PM10.09',
'Data4.09',
'Data5.09',
'Data6.09',
'Data7.09',
'Data8.09',
'Data9.09',
'Temperature.09',
'RH.09',
'date')
# ODIN-SD-10 data ####
odin.sd.10.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_10.txt")
odin.sd.10.data$date <- as.POSIXct(paste(odin.sd.10.data$Day,odin.sd.10.data$Time),tz='Pacific/Auckland')
odin.sd.10.data$Day<-NULL
odin.sd.10.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:48:50
tdiff = (as.POSIXct("2016-06-02 16:48:50",format = "%Y-%m-%d %H:%M:%S") - odin.sd.10.data$date[1])
odin.sd.10.data$date <- odin.sd.10.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.10.data) <- c('FrameLength.10',
'PM1.10',
'PM2.5.10',
'PM10.10',
'Data4.10',
'Data5.10',
'Data6.10',
'Data7.10',
'Data8.10',
'Data9.10',
'Temperature.10',
'RH.10',
'date')
# ODIN-SD-11 data ####
odin.sd.11.data <- read.delim("/home/gustavo/data/ODIN_SD/20160603/odin_sd_11.txt")
odin.sd.11.data$date <- as.POSIXct(paste(odin.sd.11.data$Day,odin.sd.11.data$Time),tz='Pacific/Auckland')
odin.sd.11.data$Day<-NULL
odin.sd.11.data$Time<-NULL
# Date correction
# Real time: 2016-06-02 16:49:55
tdiff = (as.POSIXct("2016-06-02 16:49:55",format = "%Y-%m-%d %H:%M:%S") - odin.sd.11.data$date[1])
odin.sd.11.data$date <- odin.sd.11.data$date + tdiff
# Rename data fields to prepare for merging
names(odin.sd.11.data) <- c('FrameLength.11',
'PM1.11',
'PM2.5.11',
'PM10.11',
'Data4.11',
'Data5.11',
'Data6.11',
'Data7.11',
'Data8.11',
'Data9.11',
'Temperature.11',
'RH.11',
'date')
# Merging the data ####
merged.data <- merge(odin.sd.01.data,odin.sd.02.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.03.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.05.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.06.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.07.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.08.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.09.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.10.data,by = 'date',all = TRUE)
merged.data <- merge(merged.data,odin.sd.11.data,by = 'date',all = TRUE)
# Plotting ####
avgtime = '30 min'
timePlot(merged.data,pollutant = c('Temperature.01',
'Temperature.02',
'Temperature.03',
'Temperature.05',
'Temperature.06',
'Temperature.07',
'Temperature.08',
'Temperature.09',
'Temperature.10',
'Temperature.11'),
avg.time = avgtime,
group = TRUE)

timePlot(merged.data,pollutant = c('RH.01',
'RH.02',
'RH.03',
'RH.05',
'RH.06',
'RH.07',
'RH.08',
'RH.09',
'RH.10',
'RH.11'),
avg.time = avgtime,
group = TRUE)

timePlot(merged.data,pollutant = c('PM1.01',
'PM1.02',
'PM1.03',
'PM1.05',
'PM1.06',
'PM1.07',
'PM1.08',
'PM1.09',
'PM1.10',
'PM1.11'),
avg.time = avgtime,
group = TRUE)

timePlot(merged.data,pollutant = c('PM2.5.01',
'PM2.5.02',
'PM2.5.03',
'PM2.5.05',
'PM2.5.06',
'PM2.5.07',
'PM2.5.08',
'PM2.5.09',
'PM2.5.10',
'PM2.5.11'),
avg.time = avgtime,
group = TRUE)

timePlot(merged.data,pollutant = c('PM10.01',
'PM10.02',
'PM10.03',
'PM10.05',
'PM10.06',
'PM10.07',
'PM10.08',
'PM10.09',
'PM10.10',
'PM10.11'),
avg.time = avgtime,
group = TRUE)

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