This notebook takes the data from the ATCHU campaign and generates plots for use in the presentation of the results.

Load Libraries

library(librarian)
shelf(openair,
      reshape2,
      ggplot2,
      readr)

Load data

data.wide <- read_delim("~/data/ATCHU/ATCHU_dataset.csv",delim = ',',
                        col_types = cols(col_datetime(format = ""),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double(),
                                      col_double()),progress = FALSE)
number of columns of result is not a multiple of vector length (arg 1)16635 parsing failures.
row # A tibble: 5 x 5 col     row col   expected   actual     file                             expected   <int> <chr> <chr>      <chr>      <chr>                            actual 1     1 <NA>  16 columns 17 columns '~/data/ATCHU/ATCHU_dataset.csv' file 2     2 <NA>  16 columns 17 columns '~/data/ATCHU/ATCHU_dataset.csv' row 3     3 <NA>  16 columns 17 columns '~/data/ATCHU/ATCHU_dataset.csv' col 4     4 <NA>  16 columns 17 columns '~/data/ATCHU/ATCHU_dataset.csv' expected 5     5 <NA>  16 columns 17 columns '~/data/ATCHU/ATCHU_dataset.csv'
... ................. ... .................................................................... ........ .................................................................... ...... .................................................................... .... .................................................................... ... .................................................................... ... .................................................................... ........ ....................................................................
See problems(...) for more details.
attr(data.wide$date,"tzone") <- "NZST"

Calculate extra vars

data.wide$NOxHS <- data.wide$NOHS + data.wide$NO2HS
data.wide$NOxMP <- data.wide$NOMP + data.wide$NO2MP
data.wide$BC.NOxHS <- data.wide$BCHS / data.wide$NOxHS

Plots

All pollution roses are normalised so that the fraction of measurements of certain level is shown.

Describe Halsley Drive

pollutionRose(data.wide,
              pollutant = 'BCHS',
              ws='wsHS',
              wd='wdHS',
              normalise = TRUE,
              cols = 'heat',
              breaks = c(0,500,1500,3000),
              statistic = 'prop.count')
Some values are below minimum break.

pollutionRose(data.wide,
              pollutant = 'NOHS',
              ws='wsHS',
              wd='wdHS',
              normalise = TRUE,
              cols = 'heat',
              breaks = c(0,2,4,6),
              statistic = 'prop.count')

Describe UoA

pollutionRose(data.wide,
              pollutant = 'BCUoA',
              ws='wsHS',
              wd='wdHS',
              normalise = TRUE,
              cols = 'heat',
              breaks = c(0,500,1500,3000),
              statistic = 'prop.count')

Describe Musick Point

pollutionRose(data.wide,
              pollutant = 'NOMP',
              ws='wsMP',
              wd='wdMP',
              normalise = TRUE,
              cols = 'heat',
              breaks = c(0,2,4,6),
              statistic = 'prop.count')
Some values are below minimum break.

LS0tCnRpdGxlOiAiSUVDIDIwMTggcGxvdHMiCm91dHB1dDogaHRtbF9ub3RlYm9vawphdXRob3I6IEd1c3Rhdm8gT2xpdmFyZXMKLS0tClRoaXMgbm90ZWJvb2sgdGFrZXMgdGhlIGRhdGEgZnJvbSB0aGUgQVRDSFUgY2FtcGFpZ24gYW5kIGdlbmVyYXRlcyBwbG90cyBmb3IgdXNlIGluIHRoZSBwcmVzZW50YXRpb24gb2YgdGhlIHJlc3VsdHMuCgojIExvYWQgTGlicmFyaWVzCmBgYHtyfQpsaWJyYXJ5KGxpYnJhcmlhbikKc2hlbGYob3BlbmFpciwKICAgICAgcmVzaGFwZTIsCiAgICAgIGdncGxvdDIsCiAgICAgIHJlYWRyKQpgYGAKCiMgTG9hZCBkYXRhICMjIyMKYGBge3IgbG9hZF9kYXRhfQpkYXRhLndpZGUgPC0gcmVhZF9kZWxpbSgifi9kYXRhL0FUQ0hVL0FUQ0hVX2RhdGFzZXQuY3N2IixkZWxpbSA9ICcsJywKICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyhjb2xfZGF0ZXRpbWUoZm9ybWF0ID0gIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9kb3VibGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfZG91YmxlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2RvdWJsZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9kb3VibGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfZG91YmxlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2RvdWJsZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9kb3VibGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfZG91YmxlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2RvdWJsZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9kb3VibGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfZG91YmxlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2RvdWJsZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9kb3VibGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfZG91YmxlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2RvdWJsZSgpKSxwcm9ncmVzcyA9IEZBTFNFKQphdHRyKGRhdGEud2lkZSRkYXRlLCJ0em9uZSIpIDwtICJOWlNUIgpgYGAKIyMgQ2FsY3VsYXRlIGV4dHJhIHZhcnMKYGBge3IgZXh0cmFfdmFyc30KZGF0YS53aWRlJE5PeEhTIDwtIGRhdGEud2lkZSROT0hTICsgZGF0YS53aWRlJE5PMkhTCmRhdGEud2lkZSROT3hNUCA8LSBkYXRhLndpZGUkTk9NUCArIGRhdGEud2lkZSROTzJNUApkYXRhLndpZGUkQkMuTk94SFMgPC0gZGF0YS53aWRlJEJDSFMgLyBkYXRhLndpZGUkTk94SFMKYGBgCgojIFBsb3RzCkFsbCBwb2xsdXRpb24gcm9zZXMgYXJlIG5vcm1hbGlzZWQgc28gdGhhdCB0aGUgZnJhY3Rpb24gb2YgbWVhc3VyZW1lbnRzIG9mIGNlcnRhaW4gbGV2ZWwgaXMgc2hvd24uCgojIyBEZXNjcmliZSBIYWxzbGV5IERyaXZlCgpgYGB7ciBwbG90c19IU30KcG9sbHV0aW9uUm9zZShkYXRhLndpZGUsCiAgICAgICAgICAgICAgcG9sbHV0YW50ID0gJ0JDSFMnLAogICAgICAgICAgICAgIHdzPSd3c0hTJywKICAgICAgICAgICAgICB3ZD0nd2RIUycsCiAgICAgICAgICAgICAgbm9ybWFsaXNlID0gVFJVRSwKICAgICAgICAgICAgICBjb2xzID0gJ2hlYXQnLAogICAgICAgICAgICAgIGJyZWFrcyA9IGMoMCw1MDAsMTUwMCwzMDAwKSwKICAgICAgICAgICAgICBzdGF0aXN0aWMgPSAncHJvcC5jb3VudCcpCgpwb2xsdXRpb25Sb3NlKGRhdGEud2lkZSwKICAgICAgICAgICAgICBwb2xsdXRhbnQgPSAnTk9IUycsCiAgICAgICAgICAgICAgd3M9J3dzSFMnLAogICAgICAgICAgICAgIHdkPSd3ZEhTJywKICAgICAgICAgICAgICBub3JtYWxpc2UgPSBUUlVFLAogICAgICAgICAgICAgIGNvbHMgPSAnaGVhdCcsCiAgICAgICAgICAgICAgYnJlYWtzID0gYygwLDIsNCw2KSwKICAgICAgICAgICAgICBzdGF0aXN0aWMgPSAncHJvcC5jb3VudCcpCmBgYAoKIyMgRGVzY3JpYmUgVW9BCmBgYHtyIHBsb3RzX1VvQX0KcG9sbHV0aW9uUm9zZShkYXRhLndpZGUsCiAgICAgICAgICAgICAgcG9sbHV0YW50ID0gJ0JDVW9BJywKICAgICAgICAgICAgICB3cz0nd3NIUycsCiAgICAgICAgICAgICAgd2Q9J3dkSFMnLAogICAgICAgICAgICAgIG5vcm1hbGlzZSA9IFRSVUUsCiAgICAgICAgICAgICAgY29scyA9ICdoZWF0JywKICAgICAgICAgICAgICBicmVha3MgPSBjKDAsNTAwLDE1MDAsMzAwMCksCiAgICAgICAgICAgICAgc3RhdGlzdGljID0gJ3Byb3AuY291bnQnKQpgYGAKCiMjIERlc2NyaWJlIE11c2ljayBQb2ludApgYGB7ciBwbG90X01QfQpwb2xsdXRpb25Sb3NlKGRhdGEud2lkZSwKICAgICAgICAgICAgICBwb2xsdXRhbnQgPSAnTk9NUCcsCiAgICAgICAgICAgICAgd3M9J3dzTVAnLAogICAgICAgICAgICAgIHdkPSd3ZE1QJywKICAgICAgICAgICAgICBub3JtYWxpc2UgPSBUUlVFLAogICAgICAgICAgICAgIGNvbHMgPSAnaGVhdCcsCiAgICAgICAgICAgICAgYnJlYWtzID0gYygwLDIsNCw2KSwKICAgICAgICAgICAgICBzdGF0aXN0aWMgPSAncHJvcC5jb3VudCcpCmBgYAoK