# Libraries needed
library(librarian)
shelf(openair,
readr)
Warning in shelf(openair, readr): cran_repo = '@CRAN@' is not a valid URL.
Defaulting to cran_repo = 'https://cran.r-project.org'.
# Load data
MA350_0051 <- read_csv("~/data/Wellington_AETH/MicroAeth/PwrTest/MA350-0051_S0018_190510095100.csv")
Parsed with column specification:
cols(
.default = col_integer(),
Serialnumber = col_character(),
Firmwareversion = col_double(),
Appversion = col_double(),
Datetimelocal = col_datetime(format = ""),
Datelocal = col_date(format = ""),
Timelocal = col_time(format = ""),
Flowtotal = col_double(),
Flow1 = col_double(),
Flow2 = col_double(),
Sampletemp = col_double(),
SampleRH = col_double(),
Sampledewpoint = col_double(),
Internaltemp = col_double(),
Opticalconfig = col_character(),
UVATN1 = col_double(),
UVATN2 = col_double(),
UVK = col_double(),
BlueATN1 = col_double(),
BlueATN2 = col_double(),
BlueK = col_double()
# ... with 10 more columns
)
See spec(...) for full column specifications.
MA350_0052 <- read_csv("~/data/Wellington_AETH/MicroAeth/PwrTest/MA350-0052_S0023_190503110301.csv")
Parsed with column specification:
cols(
.default = col_integer(),
`Serial number` = col_character(),
`Firmware version` = col_double(),
`App version` = col_double(),
`Date / time local` = col_datetime(format = ""),
`Date local (yyyy/MM/dd)` = col_date(format = ""),
`Time local (hh:mm:ss)` = col_time(format = ""),
`Flow total (mL/min)` = col_double(),
`Flow1 (mL/min)` = col_double(),
`Flow2 (mL/min)` = col_double(),
`Sample temp (C)` = col_double(),
`Sample RH (%)` = col_double(),
`Sample dewpoint (C)` = col_double(),
`Internal temp (C)` = col_double(),
`Optical config` = col_character(),
`UV ATN1` = col_double(),
`UV ATN2` = col_double(),
`UV K` = col_double(),
`Blue ATN1` = col_double(),
`Blue ATN2` = col_double(),
`Blue K` = col_double()
# ... with 10 more columns
)
See spec(...) for full column specifications.
# Fix names to something R-friendly
names(MA350_0052) <- names(MA350_0051)
# Add 'date' field to keep OpenAir happy (changed 0051 manually off-R)
MA350_0051$date <- MA350_0051$Datetimelocal
MA350_0052$date <- MA350_0052$Datetimelocal
# Merge all data (names end up .x and .y)
all_data <- merge(MA350_0051,MA350_0052, by = 'date', all = TRUE)
# Add inverted (-1) BC channels for 0052
all_data$UVBCc.y.neg <- -all_data$UVBCc.y
all_data$BlueBCc.y.neg <- -all_data$BlueBCc.y
all_data$GreenBCc.y.neg <- -all_data$GreenBCc.y
all_data$RedBCc.y.neg <- -all_data$RedBCc.y
all_data$IRBCc.y.neg <- -all_data$IRBCc.y
Plots to explore the data
avg_time <- '10 min'
IR
timePlot(all_data,pollutant = c('IRBC1.x',
'IRBC1.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('IRBC2.x',
'IRBC2.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('IRBCc.x',
'IRBCc.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('IRBCc.x',
'IRBCc.y.neg'),
avg.time = avg_time,
group = TRUE)

UV
timePlot(all_data,pollutant = c('UVBC1.x',
'UVBC1.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('UVBC2.x',
'UVBC2.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('UVBCc.x',
'UVBCc.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('UVBCc.x',
'UVBCc.y.neg'),
avg.time = avg_time,
group = TRUE)

Temperatures
timePlot(all_data,pollutant = c('Internaltemp.x',
'Internaltemp.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('Sampletemp.x',
'Sampletemp.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('SampleRH.x',
'SampleRH.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('Sampledewpoint.x',
'Sampledewpoint.y'),
avg.time = avg_time,
group = TRUE)

Flow
timePlot(all_data,pollutant = c('Flow1.x',
'Flow1.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('Flow2.x',
'Flow2.y'),
avg.time = avg_time,
group = TRUE)

timePlot(all_data,pollutant = c('Flowtotal.x',
'Flowtotal.y'),
avg.time = avg_time,
group = TRUE)

IycgLS0tCiMnIGF1dGhvcjogIkd1c3Rhdm8gT2xpdmFyZXMiCiMnIHRpdGxlOiAiTUEzNTAgd2VpcmRuZXNzIgojJyBvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKIycgLS0tCgojIExpYnJhcmllcyBuZWVkZWQKbGlicmFyeShsaWJyYXJpYW4pCnNoZWxmKG9wZW5haXIsCiAgICAgIHJlYWRyKQojIExvYWQgZGF0YQpNQTM1MF8wMDUxIDwtIHJlYWRfY3N2KCJ+L2RhdGEvV2VsbGluZ3Rvbl9BRVRIL01pY3JvQWV0aC9Qd3JUZXN0L01BMzUwLTAwNTFfUzAwMThfMTkwNTEwMDk1MTAwLmNzdiIpCk1BMzUwXzAwNTIgPC0gcmVhZF9jc3YoIn4vZGF0YS9XZWxsaW5ndG9uX0FFVEgvTWljcm9BZXRoL1B3clRlc3QvTUEzNTAtMDA1Ml9TMDAyM18xOTA1MDMxMTAzMDEuY3N2IikKIyBGaXggbmFtZXMgdG8gc29tZXRoaW5nIFItZnJpZW5kbHkKbmFtZXMoTUEzNTBfMDA1MikgPC0gbmFtZXMoTUEzNTBfMDA1MSkKIyBBZGQgJ2RhdGUnIGZpZWxkIHRvIGtlZXAgT3BlbkFpciBoYXBweSAoY2hhbmdlZCAwMDUxIG1hbnVhbGx5IG9mZi1SKQpNQTM1MF8wMDUxJGRhdGUgPC0gTUEzNTBfMDA1MSREYXRldGltZWxvY2FsCk1BMzUwXzAwNTIkZGF0ZSA8LSBNQTM1MF8wMDUyJERhdGV0aW1lbG9jYWwKIyBNZXJnZSBhbGwgZGF0YSAobmFtZXMgZW5kIHVwIC54IGFuZCAueSkKYWxsX2RhdGEgPC0gbWVyZ2UoTUEzNTBfMDA1MSxNQTM1MF8wMDUyLCBieSA9ICdkYXRlJywgYWxsID0gVFJVRSkKIyBBZGQgaW52ZXJ0ZWQgKC0xKSBCQyBjaGFubmVscyBmb3IgMDA1MgphbGxfZGF0YSRVVkJDYy55Lm5lZyA8LSAtYWxsX2RhdGEkVVZCQ2MueQphbGxfZGF0YSRCbHVlQkNjLnkubmVnIDwtIC1hbGxfZGF0YSRCbHVlQkNjLnkKYWxsX2RhdGEkR3JlZW5CQ2MueS5uZWcgPC0gLWFsbF9kYXRhJEdyZWVuQkNjLnkKYWxsX2RhdGEkUmVkQkNjLnkubmVnIDwtIC1hbGxfZGF0YSRSZWRCQ2MueQphbGxfZGF0YSRJUkJDYy55Lm5lZyA8LSAtYWxsX2RhdGEkSVJCQ2MueQoKIycgIyBQbG90cyB0byBleHBsb3JlIHRoZSBkYXRhCmF2Z190aW1lIDwtICcxMCBtaW4nCiMnICMjIyBJUgp0aW1lUGxvdChhbGxfZGF0YSxwb2xsdXRhbnQgPSBjKCdJUkJDMS54JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSVJCQzEueScpLAogICAgICAgICBhdmcudGltZSA9IGF2Z190aW1lLAogICAgICAgICBncm91cCA9IFRSVUUpCnRpbWVQbG90KGFsbF9kYXRhLHBvbGx1dGFudCA9IGMoJ0lSQkMyLngnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJUkJDMi55JyksCiAgICAgICAgIGF2Zy50aW1lID0gYXZnX3RpbWUsCiAgICAgICAgIGdyb3VwID0gVFJVRSkKdGltZVBsb3QoYWxsX2RhdGEscG9sbHV0YW50ID0gYygnSVJCQ2MueCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lSQkNjLnknKSwKICAgICAgICAgYXZnLnRpbWUgPSBhdmdfdGltZSwKICAgICAgICAgZ3JvdXAgPSBUUlVFKQp0aW1lUGxvdChhbGxfZGF0YSxwb2xsdXRhbnQgPSBjKCdJUkJDYy54JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSVJCQ2MueS5uZWcnKSwKICAgICAgICAgYXZnLnRpbWUgPSBhdmdfdGltZSwKICAgICAgICAgZ3JvdXAgPSBUUlVFKQoKIycgIyMjIFVWCnRpbWVQbG90KGFsbF9kYXRhLHBvbGx1dGFudCA9IGMoJ1VWQkMxLngnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVVkJDMS55JyksCiAgICAgICAgIGF2Zy50aW1lID0gYXZnX3RpbWUsCiAgICAgICAgIGdyb3VwID0gVFJVRSkKdGltZVBsb3QoYWxsX2RhdGEscG9sbHV0YW50ID0gYygnVVZCQzIueCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VWQkMyLnknKSwKICAgICAgICAgYXZnLnRpbWUgPSBhdmdfdGltZSwKICAgICAgICAgZ3JvdXAgPSBUUlVFKQp0aW1lUGxvdChhbGxfZGF0YSxwb2xsdXRhbnQgPSBjKCdVVkJDYy54JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVVZCQ2MueScpLAogICAgICAgICBhdmcudGltZSA9IGF2Z190aW1lLAogICAgICAgICBncm91cCA9IFRSVUUpCnRpbWVQbG90KGFsbF9kYXRhLHBvbGx1dGFudCA9IGMoJ1VWQkNjLngnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVVkJDYy55Lm5lZycpLAogICAgICAgICBhdmcudGltZSA9IGF2Z190aW1lLAogICAgICAgICBncm91cCA9IFRSVUUpCgojJyAjIyMgVGVtcGVyYXR1cmVzCgp0aW1lUGxvdChhbGxfZGF0YSxwb2xsdXRhbnQgPSBjKCdJbnRlcm5hbHRlbXAueCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ludGVybmFsdGVtcC55JyksCiAgICAgICAgIGF2Zy50aW1lID0gYXZnX3RpbWUsCiAgICAgICAgIGdyb3VwID0gVFJVRSkKdGltZVBsb3QoYWxsX2RhdGEscG9sbHV0YW50ID0gYygnU2FtcGxldGVtcC54JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2FtcGxldGVtcC55JyksCiAgICAgICAgIGF2Zy50aW1lID0gYXZnX3RpbWUsCiAgICAgICAgIGdyb3VwID0gVFJVRSkKdGltZVBsb3QoYWxsX2RhdGEscG9sbHV0YW50ID0gYygnU2FtcGxlUkgueCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NhbXBsZVJILnknKSwKICAgICAgICAgYXZnLnRpbWUgPSBhdmdfdGltZSwKICAgICAgICAgZ3JvdXAgPSBUUlVFKQp0aW1lUGxvdChhbGxfZGF0YSxwb2xsdXRhbnQgPSBjKCdTYW1wbGVkZXdwb2ludC54JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2FtcGxlZGV3cG9pbnQueScpLAogICAgICAgICBhdmcudGltZSA9IGF2Z190aW1lLAogICAgICAgICBncm91cCA9IFRSVUUpCgojJyAjIyMgRmxvdwp0aW1lUGxvdChhbGxfZGF0YSxwb2xsdXRhbnQgPSBjKCdGbG93MS54JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmxvdzEueScpLAogICAgICAgICBhdmcudGltZSA9IGF2Z190aW1lLAogICAgICAgICBncm91cCA9IFRSVUUpCnRpbWVQbG90KGFsbF9kYXRhLHBvbGx1dGFudCA9IGMoJ0Zsb3cyLngnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGbG93Mi55JyksCiAgICAgICAgIGF2Zy50aW1lID0gYXZnX3RpbWUsCiAgICAgICAgIGdyb3VwID0gVFJVRSkKdGltZVBsb3QoYWxsX2RhdGEscG9sbHV0YW50ID0gYygnRmxvd3RvdGFsLngnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGbG93dG90YWwueScpLAogICAgICAgICBhdmcudGltZSA9IGF2Z190aW1lLAogICAgICAgICBncm91cCA9IFRSVUUpCg==