library(RPostgreSQL)
## Loading required package: DBI
library(reshape2)
library(ggmap)
## Warning: package 'ggmap' was built under R version 3.4.3
## Loading required package: ggplot2
library(ggplot2)

# Set working directory
setwd("c:\\Users\\Hammo\\Documents\\smoke emissions project\\repo")
# Database login details (not in GitHub repo)
load("access.Rda")
# Connect to database
p <- dbDriver("PostgreSQL")
con <- dbConnect(p,
                 user=access$user,
                 password=access$pwd,
                 host='penap-data.dyndns.org',
                 dbname='cona',
                 port=5432)

Site Locations

locs <- dbGetQuery(con,"SELECT fs.id,
  ST_X(ST_TRANSFORM(fs.geom::geometry,4326)) as lon,
  ST_Y(ST_TRANSFORM(fs.geom::geometry,4326)) as lat
  FROM admin.fixedsites as fs
  ORDER BY fs.id;")

for (i in 1:nrow(locs)) {
  locs[i,'str'] <- paste0(locs[i,'lon'],'E, ',-locs[i,'lat'],'S')
}

locs[,'id'] <- as.character(locs[,'id'])

locs
##    id      lon       lat                                  str
## 1   1 172.6053 -43.30952              172.605284E, 43.309524S
## 2   2 172.5742 -43.31359               172.57421E, 43.313593S
## 3   3 172.5995 -43.29968              172.599541E, 43.299683S
## 4   4 172.5948 -43.31419              172.594795E, 43.314193S
## 5   5 172.6490 -43.31359               172.64904E, 43.313589S
## 6   6 172.5906 -43.30965              172.590573E, 43.309652S
## 7   7 172.3151 -43.36616              172.315086E, 43.366162S
## 8   8 172.5778 -43.29445              172.577819E, 43.294454S
## 9   9 172.5911 -43.30065              172.591124E, 43.300646S
## 10 10 172.5907 -43.31509              172.590738E, 43.315095S
## 11 11 172.5954 -43.29726              172.595377E, 43.297256S
## 12 12 172.5969 -43.31373              172.596891E, 43.313731S
## 13 13 172.5794 -43.29892              172.579389E, 43.298921S
## 14 14 172.5688 -43.29909                172.5688E, 43.299086S
## 15 15 172.5654 -43.31063              172.565379E, 43.310626S
## 16 16 172.6046 -43.29752              172.604574E, 43.297522S
## 17 17 172.5692 -43.29135              172.569245E, 43.291354S
## 18 18 172.5953 -43.30752              172.595317E, 43.307517S
## 19 19 172.6112 -43.32696               172.611194E, 43.32696S
## 20 27 172.5953 -43.30752              172.595317E, 43.307517S
## 21 28 172.5836 -43.30670 172.583590918011E, 43.3067023731761S
## 22 29 172.5839 -43.29754 172.583934184952E, 43.2975446787469S
## 23 30 172.5961 -43.32248  172.59607544068E, 43.3224842123003S
## 24 31 172.6118 -43.31628 172.611792679447E, 43.3162759946766S
## 25 32 172.6127 -43.30244 172.612727456717E, 43.3024350703913S

Note that both site 18 and site 27 denote the ECan instrument location.

for (z in c(10,12,13,14)) {
  map <- get_map(location = c(mean(locs$lon),mean(locs$lat)),zoom = z)
  
  m <- ggmap(map) +
    geom_point(data=locs,aes(x=lon,y=lat),col="red",size=1) +
    geom_text(data=locs,aes(label=id),hjust=0,vjust=0)
  print(m)
}

## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).

## Warning: Removed 2 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_text).

## Warning: Removed 5 rows containing missing values (geom_point).
## Warning: Removed 5 rows containing missing values (geom_text).

ODIN-SD Locations

# only take samples at noon (or midnight in NZT)
odin.raw <- dbGetQuery(con," SELECT d.recordtime AT TIME ZONE 'NZT' AS date,
                         i.serialn as serial, d.siteid as site
                         FROM data.fixed_data as d,  
                         admin.sensor as s, admin.instrument as i
                         WHERE s.id = d.sensorid
                         AND s.instrumentid = i.id
                         AND i.name = 'ODIN-SD-3'
                         AND s.name = 'PM2.5'
                         AND (d.recordtime BETWEEN '2016-01-01 00:00 NZT'
                         AND '2018-01-01 00:00 NZT')
                         AND (date_part('hour',d.recordtime) BETWEEN 0 AND 0.1)
                         AND (date_part('minute',d.recordtime) BETWEEN 0 AND 0.9)
                         ORDER BY date, serial;")
odin <- odin.raw
odin$date <- trunc(odin$date,'day') # get rid of the seconds
odin$date <- as.POSIXct(odin$date)
first <- function(x){x[1]}
odin.wide <- dcast(odin,date~serial,value.var='site',fun.aggregate=first)

2016

odin.2016.plot <- subset(odin,as.POSIXlt(date)$year+1900==2016)
ggplot(odin.2016.plot) +
  geom_point(aes(x=date,y=serial,colour=factor(site))) +
  ggtitle("2016 ODIN Sites")

nice.print <- function(data) {
  # 6 ODINs per table for readability
  i <- 2
  while (i<ncol(data)) {
    upto <- min(ncol(data),i+5)
    print( data[,c(1,i:upto)] )
    i <- i + 6
    print('')
  }
}

odin.2016 <- subset(odin.wide,as.POSIXlt(date)$year+1900==2016)
nice.print( odin.2016 )
##           date ODIN-100 ODIN-101 ODIN-102 ODIN-103 ODIN-104 ODIN-105
## 1   2016-07-09       12       NA       NA       NA       NA       NA
## 2   2016-07-10       12       NA       NA       NA       NA       NA
## 3   2016-07-11       12       NA       NA       NA       NA       NA
## 4   2016-07-12       12       NA       18       18       27       27
## 5   2016-07-13       12       NA       18       18       13       18
## 6   2016-07-14       12       NA       18       18       13       18
## 7   2016-07-15       12       NA       18       18       13       18
## 8   2016-07-16       12       NA       18       18       13       18
## 9   2016-07-17       12       NA       18       18       13       18
## 10  2016-07-18       12       NA       18       18       13       18
## 11  2016-07-19       12       NA       18       18       13       18
## 12  2016-07-20       12       NA       18       18       13       18
## 13  2016-07-21       12       NA       18       18       13       18
## 14  2016-07-22       12       NA       18       18       13       18
## 15  2016-07-23       12       NA       18       18       13       18
## 16  2016-07-24       12       NA       18       18       13       18
## 17  2016-07-25       12       NA       NA       17       13       NA
## 18  2016-07-26       12       NA       10       17       13        1
## 19  2016-07-27       12       NA       10       17       13        1
## 20  2016-07-28       12       NA       10       17       13        1
## 21  2016-07-29       12       NA       10       17       NA        1
## 22  2016-07-30       12       NA       10       17       13        1
## 23  2016-07-31       12       NA       10       17       13        1
## 24  2016-08-01       12       NA       10       17       13        1
## 25  2016-08-02       12       NA       10       17       13        1
## 26  2016-08-03       12       NA       10       17       13        1
## 27  2016-08-04       12       NA       10       17       13        1
## 28  2016-08-05       12       11       10       17       13        1
## 29  2016-08-06       12       11       10       17       13        1
## 30  2016-08-07       12       11       10       17       13        1
## 31  2016-08-08       12       11       10       17       13        1
## 32  2016-08-09       12       11       10       17       13        1
## 33  2016-08-10       12       11       10       17       13        1
## 34  2016-08-11       12       11       10       17       13        1
## 35  2016-08-12       12       11       10       17       13        1
## 36  2016-08-13       12       11       10       17       13        1
## 37  2016-08-14       12       11       10       17       13        1
## 38  2016-08-15       12       11       10       17       13        1
## 39  2016-08-16       12       11       10       17       13        1
## 40  2016-08-17       12       11       10       17       13        1
## 41  2016-08-18       12       11       10       17       13        1
## 42  2016-08-19       12       11       10       17       13        1
## 43  2016-08-20       12       11       10       17       13        1
## 44  2016-08-21       12       11       10       17       13        1
## 45  2016-08-22       12       11       10       17       13        1
## 46  2016-08-23       12       11       10       17       13        1
## 47  2016-08-24       12       11       10       17       13        1
## 48  2016-08-25       12       11       10       17       13        1
## 49  2016-08-26       12       11       10       17       13        1
## 50  2016-08-27       12       11       10       17       13        1
## 51  2016-08-28       12       11       10       17       13        1
## 52  2016-08-29       12       11       10       17       13        1
## 53  2016-08-30       12       11       10       17       13        1
## 54  2016-08-31       12       11       10       17       13        1
## 55  2016-09-01       12       11       10       17       13        1
## 56  2016-09-02       12       11       10       17       13        1
## 57  2016-09-03       12       11       10       17       13        1
## 58  2016-09-04       12       11       10       17       13        1
## 59  2016-09-05       12       11       10       17       13        1
## 60  2016-09-06       12       11       10       17       13        1
## 61  2016-09-07       12       11       10       17       13        1
## 62  2016-09-08       12       11       10       17       13        1
## 63  2016-09-09       12       11       10       17       NA        1
## 64  2016-09-10       12       11       10       17       13        1
## 65  2016-09-11       12       11       10       17       13        1
## 66  2016-09-12       12       11       10       17       13        1
## 67  2016-09-13       12       11       10       17       13        1
## 68  2016-09-14       12       11       10       17       13        1
## 69  2016-09-15       NA       11       10       17       13        1
## 70  2016-09-16       12       11       10       17       13        1
## 71  2016-09-17       12       11       10       17       13        1
## 72  2016-09-18       12       11       10       17       13        1
## 73  2016-09-19       12       11       10       17       13        1
## 74  2016-09-20       12       11       10       17       13        1
## 75  2016-09-21       12       11       10       17       13        1
## 76  2016-09-22       12       11       10       17       13        1
## 77  2016-09-23       12       11       10       17       13        1
## 78  2016-09-24       12       11       10       17       13        1
## 79  2016-09-25       12       11       10       17       13        1
## 80  2016-09-26       12       11       10       17       13        1
## 81  2016-09-27       12       11       10       17       13        1
## 82  2016-09-28       12       11       10       17       13        1
## 83  2016-09-29       12       11       10       17       13        1
## 84  2016-09-30       12       11       10       17       13       27
## 85  2016-10-01       12       18       18       17       13       18
## 86  2016-10-02       12       18       18       17       13       18
## 87  2016-10-03       12       18       18       17       27       18
## 88  2016-10-04       12       18       18       17       18       18
## 89  2016-10-05       12       18       18       NA       18       18
## 90  2016-10-06       12       18       18       NA       18       18
## 91  2016-10-07       12       18       18       NA       18       18
## 92  2016-10-08       12       18       18       NA       18       18
## 93  2016-10-09       12       18       18       NA       18       18
## 94  2016-10-10       12       18       18       NA       18       18
## 95  2016-10-11       12       18       18       NA       18       18
## 96  2016-10-12       12       18       18       NA       18       18
## 97  2016-10-13       12       18       18       NA       18       18
## 98  2016-10-14       12       18       18       NA       18       18
## 99  2016-10-15       12       18       18       NA       18       18
## 100 2016-10-16       12       18       18       NA       18       18
## 101 2016-10-17       NA       18       18       NA       18       18
## 102 2016-10-18       18       18       18       NA       18       18
## 103 2016-10-19       18       18       18       NA       18       18
## 104 2016-10-20       18       18       18       NA       18       18
## 105 2016-10-21       18       18       18       NA       18       18
## 106 2016-10-22       18       18       18       NA       18       18
## 107 2016-10-23       18       18       18       NA       18       18
## 108 2016-10-24       18       18       18       NA       18       18
## 109 2016-10-25       18       18       18       NA       18       18
## 110 2016-10-26       18       18       18       NA       18       18
## 111 2016-10-27       18       18       18       NA       18       18
## 112 2016-10-28       18       18       18       NA       18       18
## 113 2016-10-29       18       18       18       NA       18       18
## 114 2016-10-30       18       18       18       NA       18       18
## 115 2016-10-31       18       18       18       NA       18       18
## 116 2016-11-01       18       18       18       NA       18       18
## 117 2016-11-02       18       18       18       NA       18       18
## 118 2016-11-03       18       18       18       NA       18       18
## 119 2016-11-04       27       27       27       NA       27       27
## [1] ""
##           date ODIN-106 ODIN-107 ODIN-108 ODIN-109 ODIN-110 ODIN-111
## 1   2016-07-09       NA       NA       NA       NA       NA       NA
## 2   2016-07-10       NA       NA       NA       NA       NA       NA
## 3   2016-07-11       NA       NA       NA       NA       NA       NA
## 4   2016-07-12       NA       27       27       27       NA       27
## 5   2016-07-13       NA       18       18       18       NA       18
## 6   2016-07-14       NA       18       18       18       NA       18
## 7   2016-07-15       NA       18       18       18       NA       18
## 8   2016-07-16       NA       18       18       18       NA       18
## 9   2016-07-17       NA       18       18       18       NA       18
## 10  2016-07-18       NA       18       18       18       NA       18
## 11  2016-07-19       NA       18       18       18       NA       18
## 12  2016-07-20       NA       18       18       18       NA       18
## 13  2016-07-21       NA       18       18       18       NA       18
## 14  2016-07-22       NA       18       18       18       NA       18
## 15  2016-07-23       NA       18       18       18       NA       NA
## 16  2016-07-24       NA       18       18       18       NA       NA
## 17  2016-07-25       NA       27       27       18       NA       NA
## 18  2016-07-26       NA       15       16       18       NA       NA
## 19  2016-07-27       NA       15       16       18       NA       NA
## 20  2016-07-28       NA       15       16       18       NA       NA
## 21  2016-07-29       NA       15       16       18       NA       NA
## 22  2016-07-30       NA       15       16       18       NA       NA
## 23  2016-07-31       NA       15       16       18       NA       NA
## 24  2016-08-01       NA       15       16       18       NA       NA
## 25  2016-08-02       NA       15       16       18       NA       NA
## 26  2016-08-03       NA       15       16       18       NA       NA
## 27  2016-08-04       NA       15       16       18       NA       NA
## 28  2016-08-05       NA       15       16       18       NA       NA
## 29  2016-08-06       NA       15       16       18       NA       NA
## 30  2016-08-07       NA       15       16       18       NA       NA
## 31  2016-08-08       NA       15       16       18       NA       NA
## 32  2016-08-09       NA       15       16       18       NA       NA
## 33  2016-08-10       NA       15       16       18       NA       NA
## 34  2016-08-11       NA       15       16       18       NA       NA
## 35  2016-08-12       27       15       16       NA       NA       NA
## 36  2016-08-13        6       15       16       18       14       NA
## 37  2016-08-14        6       15       16       18       14       NA
## 38  2016-08-15        6       15       16       18       14       NA
## 39  2016-08-16        6       15       16       18       14       NA
## 40  2016-08-17        6       15       16       18       14       NA
## 41  2016-08-18        6       15       16       18       14       NA
## 42  2016-08-19        6       15       16       18       14       NA
## 43  2016-08-20        6       15       16       18       14       NA
## 44  2016-08-21        6       15       16       18       14       NA
## 45  2016-08-22        6       15       16       18       14       NA
## 46  2016-08-23        6       15       16       18       14       NA
## 47  2016-08-24        6       15       16       18       14       NA
## 48  2016-08-25        6       15       16       18       14       NA
## 49  2016-08-26        6       15       16       18       14       NA
## 50  2016-08-27        6       15       16       18       14       NA
## 51  2016-08-28        6       15       16       18       14       NA
## 52  2016-08-29        6       15       16       18       14       NA
## 53  2016-08-30        6       15       16       18       14       NA
## 54  2016-08-31        6       15       16       18       14        3
## 55  2016-09-01        6       15       16       18       14        3
## 56  2016-09-02        6       15       16       18       14        3
## 57  2016-09-03        6       15       16       18       14        3
## 58  2016-09-04        6       15       16       18       14        3
## 59  2016-09-05        6       15       16       18       14        3
## 60  2016-09-06        6       15       16       18       14        3
## 61  2016-09-07        6       15       16       NA       14        3
## 62  2016-09-08        6       15       16       18       14        3
## 63  2016-09-09        6       15       16       18       14        3
## 64  2016-09-10        6       15       16       18       14        3
## 65  2016-09-11        6       15       16       18       14        3
## 66  2016-09-12        6       15       16       18       14        3
## 67  2016-09-13        6       NA       16       18       14        3
## 68  2016-09-14        6       15       16       18       14        3
## 69  2016-09-15        6       15       16       18       14        3
## 70  2016-09-16        6       15       16       18       14       NA
## 71  2016-09-17        6       15       16       18       14       NA
## 72  2016-09-18        6       15       16       18       14       NA
## 73  2016-09-19        6       15       16       18       14       NA
## 74  2016-09-20        6       15       16       18       14       NA
## 75  2016-09-21        6       15       16       18       14       NA
## 76  2016-09-22        6       15       16       18       14       NA
## 77  2016-09-23        6       15       16       18       14       NA
## 78  2016-09-24        6       15       16       18       14       NA
## 79  2016-09-25        6       15       16       18       14       NA
## 80  2016-09-26        6       15       16       18       14       NA
## 81  2016-09-27        6       15       16       18       14       NA
## 82  2016-09-28        6       15       16       18       14       NA
## 83  2016-09-29        6       15       16       18       14       NA
## 84  2016-09-30       27       15       16       18       27       NA
## 85  2016-10-01       18       15       16       18       18       NA
## 86  2016-10-02       18       15       16       18       18       NA
## 87  2016-10-03       18       15       27       18       18       NA
## 88  2016-10-04       18       18       18       18       18       NA
## 89  2016-10-05       18       18       18       18       18       NA
## 90  2016-10-06       18       18       18       18       18       NA
## 91  2016-10-07       18       18       18       18       18       NA
## 92  2016-10-08       18       18       18       18       18       NA
## 93  2016-10-09       18       18       18       18       18       NA
## 94  2016-10-10       18       18       18       18       18       NA
## 95  2016-10-11       18       18       18       18       18       NA
## 96  2016-10-12       18       18       18       18       18       NA
## 97  2016-10-13       18       18       18       18       18       NA
## 98  2016-10-14       18       18       18       18       18       NA
## 99  2016-10-15       18       18       18       18       18       NA
## 100 2016-10-16       18       18       18       18       18       NA
## 101 2016-10-17       NA       18       NA       18       18       NA
## 102 2016-10-18       12       18       12       18       18       NA
## 103 2016-10-19       12       18       12       18       18       NA
## 104 2016-10-20       12       18       12       18       18       NA
## 105 2016-10-21       12       18       12       18       18       NA
## 106 2016-10-22       12       18       12       18       18       NA
## 107 2016-10-23       12       18       12       18       18       NA
## 108 2016-10-24       12       18       12       18       18       NA
## 109 2016-10-25       12       18       12       18       18       NA
## 110 2016-10-26       12       18       12       18       18       NA
## 111 2016-10-27       12       18       12       18       18       NA
## 112 2016-10-28       12       18       12       18       18       NA
## 113 2016-10-29       12       18       12       18       18       NA
## 114 2016-10-30       12       18       12       18       18       NA
## 115 2016-10-31       12       18       12       18       18       NA
## 116 2016-11-01       12       18       12       18       18       NA
## 117 2016-11-02       12       18       12       18       18       NA
## 118 2016-11-03       27       18       27       18       18       NA
## 119 2016-11-04       NA       27       NA       27       27       NA
## [1] ""
##           date ODIN-112 ODIN-113 ODIN-114 ODIN-115 ODIN-116 ODIN-117
## 1   2016-07-09       NA       NA       NA       NA       NA       NA
## 2   2016-07-10       NA       NA       NA       NA       NA       NA
## 3   2016-07-11       NA       NA       NA       NA       NA       NA
## 4   2016-07-12       NA       27       27       27       NA       NA
## 5   2016-07-13       NA       18       18       18       NA       NA
## 6   2016-07-14       27       18       18       18       NA       NA
## 7   2016-07-15        4       18       18       18       NA       NA
## 8   2016-07-16        4       18       18       18       NA       NA
## 9   2016-07-17        4       18       18       18       NA       NA
## 10  2016-07-18        4       18       18       18       NA       NA
## 11  2016-07-19        4       18       18       18       NA       NA
## 12  2016-07-20        4       18       18       18       NA       NA
## 13  2016-07-21        4       18       18       18       NA       NA
## 14  2016-07-22        4       18       18       18       NA       NA
## 15  2016-07-23        4       18       18       18       NA       NA
## 16  2016-07-24        4       18       NA       NA       NA       NA
## 17  2016-07-25        4       27       NA       NA       NA       NA
## 18  2016-07-26        4        9       NA       NA       NA       NA
## 19  2016-07-27        4        9       NA       NA       NA       NA
## 20  2016-07-28        4        9       NA       NA       NA       NA
## 21  2016-07-29        4        9       NA       NA       NA       NA
## 22  2016-07-30        4        9       NA       NA       NA       NA
## 23  2016-07-31        4        9       NA       NA       NA       NA
## 24  2016-08-01        4        9       NA       NA       NA       NA
## 25  2016-08-02        4        9        8       NA       NA       NA
## 26  2016-08-03        4        9        8       NA       NA       NA
## 27  2016-08-04        4        9        8       NA       NA       NA
## 28  2016-08-05        4        9        8       NA       NA       NA
## 29  2016-08-06        4        9        8       NA       NA       NA
## 30  2016-08-07        4        9        8       NA       NA       NA
## 31  2016-08-08        4        9        8       NA       NA       NA
## 32  2016-08-09        4        9        8       NA       NA       NA
## 33  2016-08-10        4        9        8       NA       NA       NA
## 34  2016-08-11        4        9        8       NA       NA       NA
## 35  2016-08-12        4        9        8       NA       NA       NA
## 36  2016-08-13        4        9        8        2       NA       NA
## 37  2016-08-14        4        9        8        2       NA       NA
## 38  2016-08-15        4        9        8        2       NA       NA
## 39  2016-08-16        4        9        8        2       NA       NA
## 40  2016-08-17        4        9        8        2       NA       NA
## 41  2016-08-18        4        9        8        2       NA       NA
## 42  2016-08-19        4        9        8        2       NA       NA
## 43  2016-08-20        4        9        8        2       NA       NA
## 44  2016-08-21        4        9        8        2       NA       NA
## 45  2016-08-22        4        9        8        2       NA       NA
## 46  2016-08-23        4        9        8        2       NA       NA
## 47  2016-08-24        4        9        8        2        5        7
## 48  2016-08-25        4        9        8        2        5        7
## 49  2016-08-26        4        9        8        2        5        7
## 50  2016-08-27        4        9        8        2        5        7
## 51  2016-08-28        4        9        8        2        5        7
## 52  2016-08-29        4        9        8        2        5        7
## 53  2016-08-30        4        9        8        2        5        7
## 54  2016-08-31       NA        9        8        2        5        7
## 55  2016-09-01       NA        9        8        2        5        7
## 56  2016-09-02       NA        9        8        2        5        7
## 57  2016-09-03       NA        9        8        2        5        7
## 58  2016-09-04       NA        9        8        2        5        7
## 59  2016-09-05       NA        9        8        2        5        7
## 60  2016-09-06       NA        9        8        2        5        7
## 61  2016-09-07       18        9        8        2        5        7
## 62  2016-09-08       18        9        8        2        5        7
## 63  2016-09-09       18        9        8        2        5        7
## 64  2016-09-10       18        9        8        2        5        7
## 65  2016-09-11       18        9        8        2        5        7
## 66  2016-09-12       18        9        8        2        5        7
## 67  2016-09-13       18        9        8        2        5       NA
## 68  2016-09-14       18        9        8        2        5        7
## 69  2016-09-15       18        9        8        2        5        7
## 70  2016-09-16       18        9        8        2        5        7
## 71  2016-09-17       18        9        8        2        5        7
## 72  2016-09-18       18        9        8        2        5        7
## 73  2016-09-19       18        9        8        2        5        7
## 74  2016-09-20       18        9        8        2        5        7
## 75  2016-09-21       18        9        8        2        5        7
## 76  2016-09-22       18        9        8        2        5        7
## 77  2016-09-23       18        9        8        2        5        7
## 78  2016-09-24       18        9        8        2        5        7
## 79  2016-09-25       18        9        8        2        5        7
## 80  2016-09-26       18        9        8        2        5        7
## 81  2016-09-27       18        9        8        2        5        7
## 82  2016-09-28       18        9        8        2        5        7
## 83  2016-09-29       18        9        8        2        5        7
## 84  2016-09-30       18       27        8       18       NA       27
## 85  2016-10-01       18       18        8       18       NA       18
## 86  2016-10-02       18       18        8       18       NA       18
## 87  2016-10-03       18       18        8       18       NA       18
## 88  2016-10-04       18       18        8       18       NA       18
## 89  2016-10-05       18       18        8       18       NA       18
## 90  2016-10-06       18       18        8       18       NA       18
## 91  2016-10-07       18       18        8       18       NA       18
## 92  2016-10-08       18       18        8       18       NA       18
## 93  2016-10-09       18       18        8       18       NA       18
## 94  2016-10-10       18       18        8       18       NA       18
## 95  2016-10-11       18       18        8       18       NA       18
## 96  2016-10-12       18       18        8       18       NA       18
## 97  2016-10-13       18       18        8       18       NA       18
## 98  2016-10-14       18       18        8       18       NA       18
## 99  2016-10-15       18       18        8       18       NA       18
## 100 2016-10-16       18       18        8       18       NA       18
## 101 2016-10-17       18       18       NA       18       NA       18
## 102 2016-10-18       18       18       18       18       NA       18
## 103 2016-10-19       18       18       18       18       NA       18
## 104 2016-10-20       18       18       18       18       NA       18
## 105 2016-10-21       18       18       18       18       NA       18
## 106 2016-10-22       18       18       18       18       NA       18
## 107 2016-10-23       18       18       18       18       NA       18
## 108 2016-10-24       18       18       18       18       NA       18
## 109 2016-10-25       18       18       18       18       NA       18
## 110 2016-10-26       18       18       18       18       NA       18
## 111 2016-10-27       18       18       18       18       NA       18
## 112 2016-10-28       18       18       NA       18       NA       18
## 113 2016-10-29       18       18       NA       18       NA       18
## 114 2016-10-30       18       18       NA       18       NA       18
## 115 2016-10-31       18       18       NA       18       NA       18
## 116 2016-11-01       18       18       NA       18       NA       18
## 117 2016-11-02       18       18       NA       18       NA       18
## 118 2016-11-03       18       18       NA       18       NA       18
## 119 2016-11-04       27       27       NA       27       NA       27
## [1] ""
##           date ODIN-120 ODIN-121 ODIN-122 ODIN-123
## 1   2016-07-09       NA       NA       NA       NA
## 2   2016-07-10       NA       NA       NA       NA
## 3   2016-07-11       NA       NA       NA       NA
## 4   2016-07-12       NA       NA       NA       NA
## 5   2016-07-13       NA       NA       NA       NA
## 6   2016-07-14       NA       NA       NA       NA
## 7   2016-07-15       NA       NA       NA       NA
## 8   2016-07-16       NA       NA       NA       NA
## 9   2016-07-17       NA       NA       NA       NA
## 10  2016-07-18       NA       NA       NA       NA
## 11  2016-07-19       NA       NA       NA       NA
## 12  2016-07-20       NA       NA       NA       NA
## 13  2016-07-21       NA       NA       NA       NA
## 14  2016-07-22       NA       NA       NA       NA
## 15  2016-07-23       NA       NA       NA       NA
## 16  2016-07-24       NA       NA       NA       NA
## 17  2016-07-25       NA       NA       NA       NA
## 18  2016-07-26       NA       NA       NA       NA
## 19  2016-07-27       NA       NA       NA       NA
## 20  2016-07-28       NA       NA       NA       NA
## 21  2016-07-29       NA       NA       NA       NA
## 22  2016-07-30       NA       NA       NA       NA
## 23  2016-07-31       NA       NA       NA       NA
## 24  2016-08-01       NA       NA       NA       NA
## 25  2016-08-02       NA       NA       NA       NA
## 26  2016-08-03       NA       NA       NA       NA
## 27  2016-08-04       NA       NA       NA       NA
## 28  2016-08-05       NA       NA       NA       NA
## 29  2016-08-06       NA       NA       NA       NA
## 30  2016-08-07       NA       NA       NA       NA
## 31  2016-08-08       NA       NA       NA       NA
## 32  2016-08-09       NA       NA       NA       NA
## 33  2016-08-10       NA       NA       NA       NA
## 34  2016-08-11       NA       NA       NA       NA
## 35  2016-08-12       NA       NA       NA       NA
## 36  2016-08-13       NA       NA       NA       NA
## 37  2016-08-14       NA       NA       NA       NA
## 38  2016-08-15       NA       NA       NA       NA
## 39  2016-08-16       NA       NA       NA       NA
## 40  2016-08-17       NA       NA       NA       NA
## 41  2016-08-18       NA       NA       NA       NA
## 42  2016-08-19       NA       NA       NA       NA
## 43  2016-08-20       NA       NA       NA       NA
## 44  2016-08-21       NA       NA       NA       NA
## 45  2016-08-22       NA       NA       NA       NA
## 46  2016-08-23       NA       NA       NA       NA
## 47  2016-08-24       NA       NA       NA       NA
## 48  2016-08-25       NA       NA       NA       NA
## 49  2016-08-26       NA       NA       NA       NA
## 50  2016-08-27       NA       NA       NA       NA
## 51  2016-08-28       NA       NA       NA       NA
## 52  2016-08-29       NA       NA       NA       NA
## 53  2016-08-30       NA       NA       NA       NA
## 54  2016-08-31       NA       NA       NA       NA
## 55  2016-09-01       NA       NA       NA       NA
## 56  2016-09-02       NA       NA       NA       NA
## 57  2016-09-03       NA       NA       NA       NA
## 58  2016-09-04       NA       NA       NA       NA
## 59  2016-09-05       NA       NA       NA       NA
## 60  2016-09-06       NA       NA       NA       NA
## 61  2016-09-07       NA       NA       NA       NA
## 62  2016-09-08       NA       NA       NA       NA
## 63  2016-09-09       NA       NA       NA       NA
## 64  2016-09-10       NA       NA       NA       NA
## 65  2016-09-11       NA       NA       NA       NA
## 66  2016-09-12       NA       NA       NA       NA
## 67  2016-09-13       NA       NA       NA       NA
## 68  2016-09-14       NA       NA       NA       NA
## 69  2016-09-15       NA       NA       NA       NA
## 70  2016-09-16       NA       NA       NA       NA
## 71  2016-09-17       NA       NA       NA       NA
## 72  2016-09-18       NA       NA       NA       NA
## 73  2016-09-19       NA       NA       NA       NA
## 74  2016-09-20       NA       NA       NA       NA
## 75  2016-09-21       NA       NA       NA       NA
## 76  2016-09-22       NA       NA       NA       NA
## 77  2016-09-23       NA       NA       NA       NA
## 78  2016-09-24       NA       NA       NA       NA
## 79  2016-09-25       NA       NA       NA       NA
## 80  2016-09-26       NA       NA       NA       NA
## 81  2016-09-27       NA       NA       NA       NA
## 82  2016-09-28       NA       NA       NA       NA
## 83  2016-09-29       NA       NA       NA       NA
## 84  2016-09-30       NA       NA       NA       NA
## 85  2016-10-01       NA       NA       NA       NA
## 86  2016-10-02       NA       NA       NA       NA
## 87  2016-10-03       NA       NA       NA       NA
## 88  2016-10-04       NA       NA       NA       NA
## 89  2016-10-05       NA       NA       NA       NA
## 90  2016-10-06       NA       NA       NA       NA
## 91  2016-10-07       NA       NA       NA       NA
## 92  2016-10-08       NA       NA       NA       NA
## 93  2016-10-09       NA       NA       NA       NA
## 94  2016-10-10       NA       NA       NA       NA
## 95  2016-10-11       NA       NA       NA       NA
## 96  2016-10-12       NA       NA       NA       NA
## 97  2016-10-13       NA       NA       NA       NA
## 98  2016-10-14       NA       NA       NA       NA
## 99  2016-10-15       NA       NA       NA       NA
## 100 2016-10-16       NA       NA       NA       NA
## 101 2016-10-17       NA       NA       NA       NA
## 102 2016-10-18       NA       NA       NA       NA
## 103 2016-10-19       NA       NA       NA       NA
## 104 2016-10-20       NA       NA       NA       NA
## 105 2016-10-21       NA       NA       NA       NA
## 106 2016-10-22       NA       NA       NA       NA
## 107 2016-10-23       NA       NA       NA       NA
## 108 2016-10-24       NA       NA       NA       NA
## 109 2016-10-25       NA       NA       NA       NA
## 110 2016-10-26       NA       NA       NA       NA
## 111 2016-10-27       NA       NA       NA       NA
## 112 2016-10-28       NA       NA       NA       NA
## 113 2016-10-29       NA       NA       NA       NA
## 114 2016-10-30       NA       NA       NA       NA
## 115 2016-10-31       NA       NA       NA       NA
## 116 2016-11-01       NA       NA       NA       NA
## 117 2016-11-02       NA       NA       NA       NA
## 118 2016-11-03       NA       NA       NA       NA
## 119 2016-11-04       NA       NA       NA       NA
## [1] ""

2017

odin.2017.plot <- subset(odin,as.POSIXlt(date)$year+1900==2017)
ggplot(odin.2017.plot) +
  geom_point(aes(x=date,y=serial,colour=factor(site))) +
  ggtitle("2017 ODIN Sites")

odin.2017 <- subset(odin.wide,as.POSIXlt(date)$year+1900==2017)
nice.print( odin.2017 )
##           date ODIN-100 ODIN-101 ODIN-102 ODIN-103 ODIN-104 ODIN-105
## 120 2017-06-07       18       18       18       NA       NA       NA
## 121 2017-06-08       18       18       18       NA       NA       NA
## 122 2017-06-09       18       18       18       NA       NA       NA
## 123 2017-06-10       18       18       18       NA       NA       NA
## 124 2017-06-11       18       18       18       NA       NA       NA
## 125 2017-06-12       18       18       18       NA       NA       NA
## 126 2017-06-13       18       18       18       NA       NA       NA
## 127 2017-06-14       18       18       18       NA       NA       NA
## 128 2017-06-15       18       18       18       NA       NA       NA
## 129 2017-06-16       18       18       18       NA       NA       NA
## 130 2017-06-17       18       18       18       NA       NA       NA
## 131 2017-06-18       18       18       18       NA       NA       NA
## 132 2017-06-19       18       18       18       NA       NA       NA
## 133 2017-06-20       27       NA       NA       NA       NA       NA
## 134 2017-06-21       32       17       18       NA       NA       NA
## 135 2017-06-22       32       17       18       NA       NA       NA
## 136 2017-06-23       32       17       18       NA       NA       NA
## 137 2017-06-24       32       17       18       NA       NA       NA
## 138 2017-06-25       32       17       18       NA       NA       NA
## 139 2017-06-26       32       17       18       NA       NA       NA
## 140 2017-06-27       32       17       18       NA       NA       NA
## 141 2017-06-28       32       17       18       NA       NA       NA
## 142 2017-06-29       32       17       18       NA       NA       NA
## 143 2017-06-30       32       17       18       NA       NA       NA
## 144 2017-07-01       32       17       18       NA       NA       NA
## 145 2017-07-02       32       17       18       NA       NA       NA
## 146 2017-07-03       32       17       18       NA       NA       NA
## 147 2017-07-04       32       17       18       NA       NA       NA
## 148 2017-07-05       32       17       18       NA       NA       NA
## 149 2017-07-06       32       17       18       NA       NA       NA
## 150 2017-07-07       32       17       18       NA       NA       NA
## 151 2017-07-08       32       17       18       NA       NA       NA
## 152 2017-07-09       32       17       18       NA       NA       NA
## 153 2017-07-10       32       17       18       NA       NA       NA
## 154 2017-07-11       32       17       18       NA       NA       NA
## 155 2017-07-12       32       17       18       NA       NA       NA
## 156 2017-07-13       32       17       18       NA       NA       NA
## 157 2017-07-14       32       17       18       NA       NA       NA
## 158 2017-07-15       32       17       18       NA       NA       NA
## 159 2017-07-16       32       17       18       NA       NA       NA
## 160 2017-07-17       32       17       18       NA       NA       NA
## 161 2017-07-18       NA       17       18       NA       NA       NA
## [1] ""
##           date ODIN-106 ODIN-107 ODIN-108 ODIN-109 ODIN-110 ODIN-111
## 120 2017-06-07       18       18       NA       NA       NA       NA
## 121 2017-06-08       18       18       NA       18       NA       NA
## 122 2017-06-09       18       18       NA       18       NA       NA
## 123 2017-06-10       18       18       NA       18       NA       NA
## 124 2017-06-11       18       18       NA       18       NA       NA
## 125 2017-06-12       18       18       NA       18       NA       NA
## 126 2017-06-13       18       18       NA       18       NA       NA
## 127 2017-06-14       18       18       NA       18       NA       NA
## 128 2017-06-15       18       18       NA       18       NA       NA
## 129 2017-06-16       18       18       NA       NA       NA       NA
## 130 2017-06-17       18       18       NA       NA       NA       NA
## 131 2017-06-18       18       18       NA       NA       NA       NA
## 132 2017-06-19       18       18       NA       NA       NA       NA
## 133 2017-06-20       27       NA       NA       NA       NA       NA
## 134 2017-06-21       29       28       NA       NA       NA       NA
## 135 2017-06-22       29       28       NA       NA       NA       NA
## 136 2017-06-23       29       28       NA       NA       NA       NA
## 137 2017-06-24       29       28       NA       NA       NA       NA
## 138 2017-06-25       29       28       NA       NA       NA       NA
## 139 2017-06-26       29       28       NA       NA       NA       NA
## 140 2017-06-27       29       28       NA       NA       NA       NA
## 141 2017-06-28       29       28       NA       NA       NA       NA
## 142 2017-06-29       29       28       NA       NA       NA       NA
## 143 2017-06-30       29       28       NA       NA       NA       NA
## 144 2017-07-01       29       28       NA       NA       NA       NA
## 145 2017-07-02       29       28       NA       NA       NA       NA
## 146 2017-07-03       29       28       NA       NA       NA       NA
## 147 2017-07-04       29       28       NA       NA       NA       NA
## 148 2017-07-05       29       28       NA       NA       NA       NA
## 149 2017-07-06       29       28       NA       NA       NA       NA
## 150 2017-07-07       29       28       NA       NA       NA       NA
## 151 2017-07-08       29       28       NA       NA       NA       NA
## 152 2017-07-09       29       28       NA       NA       NA       NA
## 153 2017-07-10       29       28       NA       NA       NA       NA
## 154 2017-07-11       29       28       NA       NA       NA       NA
## 155 2017-07-12       29       28       NA       NA       NA       NA
## 156 2017-07-13       29       28       NA       NA       NA       NA
## 157 2017-07-14       29       28       NA       NA       NA       NA
## 158 2017-07-15       29       28       NA       NA       NA       NA
## 159 2017-07-16       29       28       NA       NA       NA       NA
## 160 2017-07-17       29       28       NA       NA       NA       NA
## 161 2017-07-18       29       28       NA       NA       NA       NA
## [1] ""
##           date ODIN-112 ODIN-113 ODIN-114 ODIN-115 ODIN-116 ODIN-117
## 120 2017-06-07       NA       NA       NA       18       18       NA
## 121 2017-06-08       NA       NA       NA       18       18       NA
## 122 2017-06-09       NA       NA       NA       18       18       NA
## 123 2017-06-10       NA       NA       NA       18       18       NA
## 124 2017-06-11       NA       NA       NA       18       18       NA
## 125 2017-06-12       NA       NA       NA       18       18       NA
## 126 2017-06-13       NA       NA       NA       18       18       NA
## 127 2017-06-14       NA       NA       NA       18       18       NA
## 128 2017-06-15       NA       NA       NA       18       18       NA
## 129 2017-06-16       NA       NA       NA       18       18       NA
## 130 2017-06-17       NA       NA       NA       18       18       NA
## 131 2017-06-18       NA       NA       NA       18       18       NA
## 132 2017-06-19       NA       NA       NA       18       18       NA
## 133 2017-06-20       NA       NA       NA       NA       NA       NA
## 134 2017-06-21       NA       NA       NA       16        1       NA
## 135 2017-06-22       NA       NA       NA       16        1       NA
## 136 2017-06-23       NA       NA       NA       16        1       NA
## 137 2017-06-24       NA       NA       NA       16        1       NA
## 138 2017-06-25       NA       NA       NA       16        1       NA
## 139 2017-06-26       NA       NA       NA       16        1       NA
## 140 2017-06-27       NA       NA       NA       16        1       NA
## 141 2017-06-28       NA       NA       NA       16        1       NA
## 142 2017-06-29       NA       NA       NA       16        1       NA
## 143 2017-06-30       NA       NA       NA       16        1       NA
## 144 2017-07-01       NA       NA       NA       16        1       NA
## 145 2017-07-02       NA       NA       NA       16        1       NA
## 146 2017-07-03       NA       NA       NA       16        1       NA
## 147 2017-07-04       NA       NA       NA       16        1       NA
## 148 2017-07-05       NA       NA       NA       16        1       NA
## 149 2017-07-06       NA       NA       NA       16        1       NA
## 150 2017-07-07       NA       NA       NA       16        1       NA
## 151 2017-07-08       NA       NA       NA       16        1       NA
## 152 2017-07-09       NA       NA       NA       16        1       NA
## 153 2017-07-10       NA       NA       NA       16        1       NA
## 154 2017-07-11       NA       NA       NA       16        1       NA
## 155 2017-07-12       NA       NA       NA       16        1       NA
## 156 2017-07-13       NA       NA       NA       16        1       NA
## 157 2017-07-14       NA       NA       NA       16        1       NA
## 158 2017-07-15       NA       NA       NA       16        1       NA
## 159 2017-07-16       NA       NA       NA       16        1       NA
## 160 2017-07-17       NA       NA       NA       16        1       NA
## 161 2017-07-18       NA       NA       NA       NA       NA       NA
## [1] ""
##           date ODIN-120 ODIN-121 ODIN-122 ODIN-123
## 120 2017-06-07       18       18       18       18
## 121 2017-06-08       18       18       18       18
## 122 2017-06-09       18       18       18       18
## 123 2017-06-10       18       18       18       18
## 124 2017-06-11       18       18       18       18
## 125 2017-06-12       18       18       NA       18
## 126 2017-06-13       18       18       NA       18
## 127 2017-06-14       18       18       NA       18
## 128 2017-06-15       18       18       NA       18
## 129 2017-06-16       18       18       NA       18
## 130 2017-06-17       18       18       NA       18
## 131 2017-06-18       18       18       NA       18
## 132 2017-06-19       18       18       NA       18
## 133 2017-06-20       27       27       27       NA
## 134 2017-06-21       14        2       30       10
## 135 2017-06-22       14        2       30       10
## 136 2017-06-23       14        2       30       10
## 137 2017-06-24       14        2       30       10
## 138 2017-06-25       14        2       30       10
## 139 2017-06-26       14        2       30       10
## 140 2017-06-27       14        2       30       10
## 141 2017-06-28       14        2       30       10
## 142 2017-06-29       14        2       30       10
## 143 2017-06-30       14        2       30       10
## 144 2017-07-01       14        2       30       10
## 145 2017-07-02       14        2       30       10
## 146 2017-07-03       14        2       30       10
## 147 2017-07-04       14        2       30       10
## 148 2017-07-05       14        2       30       10
## 149 2017-07-06       14        2       30       10
## 150 2017-07-07       14        2       30       10
## 151 2017-07-08       14        2       NA       10
## 152 2017-07-09       14        2       NA       10
## 153 2017-07-10       14        2       NA       10
## 154 2017-07-11       14        2       NA       10
## 155 2017-07-12       14        2       NA       10
## 156 2017-07-13       14        2       NA       10
## 157 2017-07-14       14        2       NA       10
## 158 2017-07-15       14        2       NA       10
## 159 2017-07-16       14        2       NA       10
## 160 2017-07-17       14        2       NA       10
## 161 2017-07-18       14        2       NA       10
## [1] ""

Maps

draw.map <- function(data.row,zoom=14) {
  coord.table <- data.frame(id=NA,site.id=NA,lat=NA,lon=NA)
  j <- 1
  several <- ""
  for (i in 2:ncol(data.row)) {
    if (!is.na(data.row[1,i])) {
      id <- substr(names(data.row)[i],6,8)
      site.id <- data.row[1,i]
      if (site.id==27)
        site.id <- 18 # these are the same site
      # if there is already a ODIN with that site id
      x <- which(coord.table$site.id==site.id)
      if (length(x)>0) {
        if (several=="") {
          several <- paste0('several = ',coord.table[x[1],'id'])
          coord.table[x[1],'id'] <- "several"
        }
        several <- paste0(several,', ',id)
      } else {
        coord.table[j,] <- c(id,site.id,locs[locs$id==site.id,c(3,2)])
        j <- j+1
      }
    }
  }
  map <- get_map(location = c(mean(locs$lon),mean(locs$lat)),zoom = zoom)
  m <- ggmap(map) +
    geom_point(data=coord.table,aes(x=lon,y=lat),col="red",size=1) +
    geom_text(data=coord.table,aes(label=id),hjust=0,vjust=0) + 
    ggtitle(data.row[1,'date'])
  if (several != "")
    print(several)
  print(m)
}

2016

draw.map(odin.2016[50,])
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=-43.309301,172.582313&zoom=14&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false
## Warning: Removed 2 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_text).

draw.map(odin.2016[50,],12)
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=-43.309301,172.582313&zoom=12&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).

draw.map(odin.2016[50,],10)
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=-43.309301,172.582313&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false

draw.map(odin.2016[60,])
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=-43.309301,172.582313&zoom=14&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false
## Warning: Removed 2 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_text).

draw.map(odin.2016[110,])
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=-43.309301,172.582313&zoom=14&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false
## [1] "several = 100, 101, 102, 104, 105, 107, 108, 109, 110, 112, 113, 114, 115, 117"