From 843c4878bd155323c41909c67c9ecb9eadd4b5e4 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 5 Mar 2019 22:06:29 -0800 Subject: [PATCH 01/52] Initial commit One report (Georgia Strait) with 4 plots + helper functions and script to generate report output --- 05_georgia_strait.Rmd | 64 +++++++++++++++++ functions.R | 142 ++++++++++++++++++++++++++++++++++++++ render_air_zone_reports.R | 35 ++++++++++ 3 files changed, 241 insertions(+) create mode 100644 05_georgia_strait.Rmd create mode 100644 functions.R create mode 100644 render_air_zone_reports.R diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd new file mode 100644 index 0000000..72eb559 --- /dev/null +++ b/05_georgia_strait.Rmd @@ -0,0 +1,64 @@ +--- +title: Georgia Strait Air Zone +output: pdf_document +params: + ozone: !r ozone_caaqs_results + annual_ozone: !r ozone_caaqs$ann_4th_highest + pm25: !r pm_caaqs_combined_results + annual_pm25: !r pm25_caaqs_annual$yearly_avg + stations: !r stations_az + airzone: "Georgia Strait" +--- + +```{r setup, echo = FALSE, message = FALSE} +## Load packages +library("tidyverse") +library("patchwork") +library("gt") + +## Filter data to air zone +airzone <- params$airzone +ozone <- filter(params$ozone, airzone == !!airzone) +pm25 <- filter(params$pm25, airzone == !!airzone) + +## Source plotting and table functions +source("functions.R") +``` + +## Fig 2: 3 year ozone concentration by station + +```{r ozone-by-station, echo = FALSE, warn = FALSE} +plot_ozone_by_station(ozone, airzone) +``` + +## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + +```{r annual-ozone, echo = FALSE, warning = FALSE} +## Add station names +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_ozone_station_timeseries(annual_ozone, airzone) +``` + +## Fig 4: PM 2.5 by station + +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +plot_pm25_by_station(pm25) +``` + +## Fig 5: PM Annual trends in PM 2.5 + +```{r annual-pm25, echo = FALSE, warning = FALSE} +## Add station names +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_pm25_station_timeseries(annual_pm25, airzone) +``` + +## Table 2: + +## Table 3: diff --git a/functions.R b/functions.R new file mode 100644 index 0000000..3ae0bba --- /dev/null +++ b/functions.R @@ -0,0 +1,142 @@ +############################################################## +#### Functions to generate results for air zone reports #### +############################################################## + +## Plots ----------------------------------------------------- + +## Ozone concentration based on annual 4th highest daily 8-hour maxima, 3 year +## average bar chart by station (fig. 2) +plot_ozone_by_station <- function(data, airzone, caaqs = 63) { + ymax_oz <- max(data$metric_value_ambient, na.rm = TRUE) + ozone_year <- max(data$max_year) + + ggplot( + data, + aes( + x = reorder(station_name, metric_value_ambient, sum), + y = metric_value_ambient + ) + ) + + geom_bar(stat = "identity", fill = "#A488F7") + + geom_text(aes(label = metric_value_ambient), nudge_y = 2) + + geom_hline(yintercept = caaqs, color = "red", lty = "dashed") + + annotate(geom = "text", label = "CAAQS", x = 1, y = caaqs + 5) + + ## Set y scale to ensure CAAQS text doesn't get cut off (but if the max ozone + ## value is greater, take that value instead + 5 for padding) + scale_y_continuous(limits = c(0, max(ymax_oz + 5, caaqs + 8))) + + labs( + x = "Station", + y = "Ozone concentration (ppb)", + title = paste0(airzone, " Air Zone ", ozone_year) + ) + + coord_flip() + + theme(plot.title = element_text(hjust = 0.5)) +} + +## Annual trends in ozone concentration (annual 4th highest daily 8-hour maxima) +## time series line chart (fig. 3) +plot_ozone_station_timeseries <- function(data, airzone, caaqs = 63) { + ozone_year <- max(data$year) + min_year <- min(data$year, na.rm = TRUE) + max_year <- max(data$year, na.rm = TRUE) + ymax_oz <- max(data$ann_4th_highest, na.rm = TRUE) + + ggplot(data, aes(x = year, y = ann_4th_highest, colour = station_name)) + + geom_line() + + geom_hline(yintercept = caaqs, color = "red", lty = "dashed") + + annotate(geom = "text", label = "CAAQS", x = 2016, y = caaqs + 5) + + labs( + x = "Year", + y = "Ozone concentration (ppb)", + title = paste0(airzone, " Air Zone ", min_year, "-", max_year), + colour = "Location" + ) + + scale_x_continuous( + breaks = function(x) floor(pretty(seq(min(x), max(x), by = 1))) + ) + + scale_y_continuous(limits = c(0, max(ymax_oz + 5, 72))) + + theme(plot.title = element_text(hjust = 0.5)) +} + +## PM2.5 concentrations bar charts (24-hour concentration and annual mean +## concentration (fig. 4) +plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { + ## Filter data + pm25_24h <- filter(data, metric == "pm2.5_24h") + ymax_pm25_24h <- max(pm25_24h$metric_value_ambient, na.rm = TRUE) + + pm25_annual <- filter(data, metric == "pm2.5_annual") + ymax_pm25_annual <- max(pm25_annual$metric_value_ambient, na.rm = TRUE) + + ## 24 hour + plot_24h <- ggplot( + pm25_24h, + aes(x = reorder(station_name, metric_value_ambient, sum), y = metric_value_ambient) + ) + + geom_bar(stat = "identity", aes(fill = instrument_type)) + + geom_text(aes(label = metric_value_ambient), nudge_y = 2) + + geom_hline(yintercept = caaqs_24h, color = "red", lty = "dashed") + + annotate(geom = "text", label = "24h CAAQS", x = 2, y = caaqs_24h + 9) + + scale_y_continuous(limits = c(0, max(ymax_pm25_24h + 1, caaqs_24h + 5))) + + scale_fill_manual(values = c(FEM = "#4A8CE1", TEOM = "#070C72")) + + labs( + x = NULL, + y = NULL, + fill = "Instrument", + title = "24-Hr PM2.5" + ) + + coord_flip() + + theme(plot.title = element_text(hjust = 0.5)) + + ## Annual + plot_annual <- ggplot( + pm25_annual, + aes(x = reorder(station_name, metric_value_ambient, sum), y = metric_value_ambient) + ) + + geom_bar(stat = "identity", aes(fill = instrument_type)) + + geom_text(aes(label = metric_value_ambient), nudge_y = 0.5) + + geom_hline(yintercept = caaqs_annual, color = "red", lty = "dashed") + + annotate(geom = "text", label = "Annual\nCAAQS", x = 2, y = caaqs_annual + 2) + + scale_y_continuous(limits = c(0, max(ymax_pm25_annual + 1, caaqs_annual + 5))) + + scale_fill_manual(values = c(FEM = "#81EDA1", TEOM = "#4A875B")) + + labs( + x = NULL, + y = expression(PM[2.5]~Concentration~"("*mu~g/m^3~")"), + fill = "Instrument", + title = "Annual PM2.5" + ) + + coord_flip() + + theme(plot.title = element_text(hjust = 0.5)) + + plot_24h / plot_annual + +} + +## Annual trends in mean PM2.5 concentration line chart +plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { + ymax_pm25 <- max(data$ann_avg) + min_year <- min(data$year, na.rm = TRUE) + min_year <- min(data$year, na.rm = TRUE) + + ggplot(annual_pm25, aes(x = year, y = ann_avg, colour = station_name)) + + geom_line() + + geom_point(aes(shape = instrument_type)) + + geom_hline(yintercept = 10, color = "red", lty = "dashed") + + annotate(geom = "text", label = "CAAQS", x = 2016, y = caaqs_annual + 1) + + scale_x_continuous( + breaks = function(x) floor(pretty(seq(min(x), max(x), by = 1))) + ) + + ## Set y scale from 0 to either: maximum pm2.5 value + a buffer, OR + ## CAAQS + a buffer, whichever is larger + scale_y_continuous(limits = c(0, max(ymax_pm25 + 3, caaqs_annual + 3))) + + labs( + x = "Year", + y = expression(PM[2.5]~Concentration~"("*mu~g/m^3~")"), + title = paste0(airzone, " Air Zone ", min_year, "-", max_year), + colour = "Location", + shape = "Instrument" + ) + + theme(plot.title = element_text(hjust = 0.5)) +} + +## Tables ---------------------------------------------------- diff --git a/render_air_zone_reports.R b/render_air_zone_reports.R new file mode 100644 index 0000000..1a56591 --- /dev/null +++ b/render_air_zone_reports.R @@ -0,0 +1,35 @@ +########################## +#### Render reports #### +########################## + +library("here") +library("purrr") +library("rmarkdown") + +## Run the ozone and PM2.5 analyses to generate the necessary objects. These +## paths will need to be replaced with the correct location where the analyses +## will be run. +ozone_dir <- "../ozone-caaqs-indicator/" +pm25_dir <- "../pm25-caaqs-indicator/" + +## Files from each analysis to run. We don't need all the saved outputs from +## these analyses, just the R objects, so this is a bit faster. +files_to_run <- c("01_load.R", "02_clean.R", "03_analysis.R") + +## Need to run analyses in their own directories because they depend on files +## created within those directories during the course of the analysis +setwd(ozone_dir) +walk(files_to_run, source) + +setwd(pm25_dir) +walk(files_to_run, source) + +## Now return to air zone reports directory to render files +setwd(here()) + +## Render all reports, named 01_northeast.Rmd, 02_central_interior.Rmd, etc. +## using default parameters +walk( + list.files(pattern = "\\d{2}(.+)Rmd"), + render +) From 6b9657b1171829d6624c61201efed3da1548b9c4 Mon Sep 17 00:00:00 2001 From: Andy Teucher Date: Thu, 7 Mar 2019 21:45:11 -0800 Subject: [PATCH 02/52] Use correct data in pm25 plotting function Co-Authored-By: karawoo --- functions.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions.R b/functions.R index 3ae0bba..652d278 100644 --- a/functions.R +++ b/functions.R @@ -118,7 +118,7 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { min_year <- min(data$year, na.rm = TRUE) min_year <- min(data$year, na.rm = TRUE) - ggplot(annual_pm25, aes(x = year, y = ann_avg, colour = station_name)) + + ggplot(data, aes(x = year, y = ann_avg, colour = station_name)) + geom_line() + geom_point(aes(shape = instrument_type)) + geom_hline(yintercept = 10, color = "red", lty = "dashed") + From 294c188a62b917a484fff445cd4edbf7fe2344b7 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Thu, 7 Mar 2019 21:50:28 -0800 Subject: [PATCH 03/52] Use RData files instead of running analyses from scratch --- render_air_zone_reports.R | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/render_air_zone_reports.R b/render_air_zone_reports.R index 1a56591..a831fa9 100644 --- a/render_air_zone_reports.R +++ b/render_air_zone_reports.R @@ -2,30 +2,18 @@ #### Render reports #### ########################## -library("here") library("purrr") library("rmarkdown") -## Run the ozone and PM2.5 analyses to generate the necessary objects. These -## paths will need to be replaced with the correct location where the analyses -## will be run. +## Load the necessary objects from the ozone and PM2.5 analyses ozone_dir <- "../ozone-caaqs-indicator/" pm25_dir <- "../pm25-caaqs-indicator/" -## Files from each analysis to run. We don't need all the saved outputs from -## these analyses, just the R objects, so this is a bit faster. -files_to_run <- c("01_load.R", "02_clean.R", "03_analysis.R") +load(file.path(ozone_dir, "tmp/ozone_clean.RData")) +load(file.path(ozone_dir, "tmp/analysed.RData")) -## Need to run analyses in their own directories because they depend on files -## created within those directories during the course of the analysis -setwd(ozone_dir) -walk(files_to_run, source) - -setwd(pm25_dir) -walk(files_to_run, source) - -## Now return to air zone reports directory to render files -setwd(here()) +load(file.path(pm25_dir, "tmp/pm25_clean.rda")) +load(file.path(pm25_dir, "tmp/analysed.RData")) ## Render all reports, named 01_northeast.Rmd, 02_central_interior.Rmd, etc. ## using default parameters From 2c13e88a2f796034b48bdb446a254c4831a8cc33 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 9 Mar 2019 17:35:52 -0800 Subject: [PATCH 04/52] Tweak some spacing in figures --- functions.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functions.R b/functions.R index 652d278..116a023 100644 --- a/functions.R +++ b/functions.R @@ -77,7 +77,7 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { geom_text(aes(label = metric_value_ambient), nudge_y = 2) + geom_hline(yintercept = caaqs_24h, color = "red", lty = "dashed") + annotate(geom = "text", label = "24h CAAQS", x = 2, y = caaqs_24h + 9) + - scale_y_continuous(limits = c(0, max(ymax_pm25_24h + 1, caaqs_24h + 5))) + + scale_y_continuous(limits = c(0, max(ymax_pm25_24h + 3, caaqs_24h + 5))) + scale_fill_manual(values = c(FEM = "#4A8CE1", TEOM = "#070C72")) + labs( x = NULL, @@ -94,7 +94,7 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { aes(x = reorder(station_name, metric_value_ambient, sum), y = metric_value_ambient) ) + geom_bar(stat = "identity", aes(fill = instrument_type)) + - geom_text(aes(label = metric_value_ambient), nudge_y = 0.5) + + geom_text(aes(label = metric_value_ambient), nudge_y = 0.8) + geom_hline(yintercept = caaqs_annual, color = "red", lty = "dashed") + annotate(geom = "text", label = "Annual\nCAAQS", x = 2, y = caaqs_annual + 2) + scale_y_continuous(limits = c(0, max(ymax_pm25_annual + 1, caaqs_annual + 5))) + From 15a4ad97b9b3fda453cbb223d271873341957640 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 10 Mar 2019 21:47:15 -0700 Subject: [PATCH 05/52] Create ozone table There is an issue with how the air zone management level column gets colored (part of the header gets colored as well), need to look into this --- 05_georgia_strait.Rmd | 16 ++++++++++--- functions.R | 56 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 72eb559..771b000 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -1,5 +1,11 @@ --- title: Georgia Strait Air Zone +header-includes: +- \usepackage{booktabs} +- \usepackage{makecell} +- \usepackage{multirow} +- \usepackage{colortbl} +- \usepackage{xcolor} output: pdf_document params: ozone: !r ozone_caaqs_results @@ -14,7 +20,7 @@ params: ## Load packages library("tidyverse") library("patchwork") -library("gt") +library("kableExtra") ## Filter data to air zone airzone <- params$airzone @@ -59,6 +65,10 @@ annual_pm25 <- params$annual_pm25 %>% plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: +## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone -## Table 3: +```{r table-2, echo = FALSE} +create_ozone_table(ozone) +``` + +## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone diff --git a/functions.R b/functions.R index 116a023..b3ccf45 100644 --- a/functions.R +++ b/functions.R @@ -140,3 +140,59 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { } ## Tables ---------------------------------------------------- + +## Choose color for cell based on management level +ozone_color <- function(mgmt_level) { + switch( + as.character(mgmt_level), + "Actions for Achieving Air Zone CAAQS" = "#EA3420", + "Actions for Preventing CAAQS Exceedance" = "#F7C143", + "Actions for Preventing Air Quality Deterioration" = "#FFFD53", + "Actions for Keeping Clean Areas Clean" = "#9FCD60" + ) +} + +create_ozone_table <- function(data) { + overall_color <- ozone_color(max(data$mgmt_level)) + + data %>% + ## Select columns of interest + select( + station_name, + n_years, + metric_value_ambient, + metric_value_mgmt, + mgmt_level + ) %>% + ## Color management level cells + mutate( + metric_value_mgmt = map2_chr( + metric_value_mgmt, + mgmt_level, + function(x, y) { + cell_spec(x, "latex", background = ozone_color(y)) + } + ) + ) %>% + ## Group management level column to maximum value + mutate(mgmt_level = max(mgmt_level)) %>% + ## Rename column headers + rename( + Location = station_name, + `No. Valid Years` = n_years, + `As Measured` = metric_value_ambient, + `TF/EE Influences Removed` = metric_value_mgmt, + `Air Zone Management Level` = mgmt_level + ) %>% + kable("latex", escape = FALSE, align = "c") %>% + column_spec(2, width = "0.5in") %>% + column_spec(3:4, width = "0.75in") %>% + ## Color in the Air Zone Managemetn Level column + column_spec(5, width = "1.5in", background = overall_color) %>% + add_header_above(c( + " " = 2, + "4th Highest Daily \n 8-hour Maxima" = 2, + " " = 1 + )) %>% + collapse_rows(columns = 5) +} From 4c9b11e294075e3d8100089059bf19c05c52eae3 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 13 Mar 2019 21:27:36 -0700 Subject: [PATCH 06/52] Add part of PM 2.5 table Only 24h; need to add columns for annual mean still --- 05_georgia_strait.Rmd | 5 ++++ functions.R | 69 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 12 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 771b000..289b641 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -11,6 +11,7 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results + pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Georgia Strait" @@ -72,3 +73,7 @@ create_ozone_table(ozone) ``` ## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-3, echo = FALSE} +create_pm25_table(params$pm25_24h) +``` diff --git a/functions.R b/functions.R index b3ccf45..5c412cc 100644 --- a/functions.R +++ b/functions.R @@ -142,7 +142,7 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { ## Tables ---------------------------------------------------- ## Choose color for cell based on management level -ozone_color <- function(mgmt_level) { +mgmt_level_color <- function(mgmt_level) { switch( as.character(mgmt_level), "Actions for Achieving Air Zone CAAQS" = "#EA3420", @@ -152,9 +152,13 @@ ozone_color <- function(mgmt_level) { ) } -create_ozone_table <- function(data) { - overall_color <- ozone_color(max(data$mgmt_level)) +## Color cells by management level +color_by_mgmt_level <- function(value, mgmt_level) { + cell_spec(value, "latex", background = mgmt_level_color(mgmt_level)) +} +create_ozone_table <- function(data) { + overall_color <- mgmt_level_color(max(data$mgmt_level)) data %>% ## Select columns of interest select( @@ -169,9 +173,7 @@ create_ozone_table <- function(data) { metric_value_mgmt = map2_chr( metric_value_mgmt, mgmt_level, - function(x, y) { - cell_spec(x, "latex", background = ozone_color(y)) - } + color_by_mgmt_level ) ) %>% ## Group management level column to maximum value @@ -187,12 +189,55 @@ create_ozone_table <- function(data) { kable("latex", escape = FALSE, align = "c") %>% column_spec(2, width = "0.5in") %>% column_spec(3:4, width = "0.75in") %>% - ## Color in the Air Zone Managemetn Level column + ## Color in the Air Zone Management Level column column_spec(5, width = "1.5in", background = overall_color) %>% - add_header_above(c( - " " = 2, - "4th Highest Daily \n 8-hour Maxima" = 2, - " " = 1 - )) %>% + add_header_above( + c(" " = 1, " " = 1, "4th Highest Daily \n 8-hour Maxima" = 2, " " = 1) + ) %>% collapse_rows(columns = 5) } + +create_pm25_table <- function(data) { + overall_color <- mgmt_level_color(max(data$mgmt_level)) + + data %>% + select( + station_name, + instrument_type, + n_years, + metric_value_ambient, + metric_value_mgmt, + mgmt_level + ) %>% + mutate( + metric_value_mgmt = map2_chr( + metric_value_mgmt, + mgmt_level, + color_by_mgmt_level + ) + ) %>% + mutate(mgmt_level = max(mgmt_level)) %>% + rename( + Location = station_name, + `Monitor type` = instrument_type, + `No. valid years` = n_years, + `As measured` = metric_value_ambient, + `TF/EE Removed` = metric_value_mgmt, + `Air Zone Management Level` = mgmt_level + ) %>% + kable("latex", escape = FALSE, align = "c") %>% + column_spec(1, width = "1.5in") %>% + column_spec(2:5, width = "0.5in") %>% + column_spec(6, width = "1.5in", background = overall_color) %>% + add_header_above( + c( + " " = 1, + " " = 1, + " " = 1, + "Daily Mean (98th \n Percentile)" = 2, + " " = 1 + ) + ) %>% + collapse_rows(columns = 6) +} + From 657b8bc39390f8d4ac0c948d3347da9a6f664861 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 13 Mar 2019 22:06:55 -0700 Subject: [PATCH 07/52] Add Rmds for additional air zones Will need to tweak figure appearance for some of them --- 01_northeast.Rmd | 81 ++++++++++++++++++++++++++++++++++++++ 02_central_interior.Rmd | 81 ++++++++++++++++++++++++++++++++++++++ 03_southern_interior.Rmd | 81 ++++++++++++++++++++++++++++++++++++++ 04_lower_fraser_valley.Rmd | 81 ++++++++++++++++++++++++++++++++++++++ 05_georgia_strait.Rmd | 4 +- 06_coastal.Rmd | 81 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 408 insertions(+), 1 deletion(-) create mode 100644 01_northeast.Rmd create mode 100644 02_central_interior.Rmd create mode 100644 03_southern_interior.Rmd create mode 100644 04_lower_fraser_valley.Rmd create mode 100644 06_coastal.Rmd diff --git a/01_northeast.Rmd b/01_northeast.Rmd new file mode 100644 index 0000000..88386a2 --- /dev/null +++ b/01_northeast.Rmd @@ -0,0 +1,81 @@ +--- +title: Northeast Air Zone +header-includes: +- \usepackage{booktabs} +- \usepackage{makecell} +- \usepackage{multirow} +- \usepackage{colortbl} +- \usepackage{xcolor} +output: pdf_document +params: + ozone: !r ozone_caaqs_results + annual_ozone: !r ozone_caaqs$ann_4th_highest + pm25: !r pm_caaqs_combined_results + pm25_24h: !r pm_24h_caaqs_results + annual_pm25: !r pm25_caaqs_annual$yearly_avg + stations: !r stations_az + airzone: "Northeast" +--- + +```{r setup, echo = FALSE, message = FALSE} +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") + +## Filter data to air zone +airzone <- params$airzone +ozone <- filter(params$ozone, airzone == !!airzone) +pm25 <- filter(params$pm25, airzone == !!airzone) + +## Source plotting and table functions +source("functions.R") +``` + +## Fig 2: 3 year ozone concentration by station + +```{r ozone-by-station, echo = FALSE, warn = FALSE} +plot_ozone_by_station(ozone, airzone) +``` + +## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + +```{r annual-ozone, echo = FALSE, warning = FALSE} +## Add station names +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_ozone_station_timeseries(annual_ozone, airzone) +``` + +## Fig 4: PM 2.5 by station + +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +plot_pm25_by_station(pm25) +``` + +## Fig 5: PM Annual trends in PM 2.5 + +```{r annual-pm25, echo = FALSE, warning = FALSE} +## Add station names +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_pm25_station_timeseries(annual_pm25, airzone) +``` + +## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-2, echo = FALSE} +create_ozone_table(ozone) +``` + +## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-3, echo = FALSE} +params$pm25_24h %>% + filter(airzone == !!airzone) %>% + create_pm25_table() +``` diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd new file mode 100644 index 0000000..f460eab --- /dev/null +++ b/02_central_interior.Rmd @@ -0,0 +1,81 @@ +--- +title: Central Interior Air Zone +header-includes: +- \usepackage{booktabs} +- \usepackage{makecell} +- \usepackage{multirow} +- \usepackage{colortbl} +- \usepackage{xcolor} +output: pdf_document +params: + ozone: !r ozone_caaqs_results + annual_ozone: !r ozone_caaqs$ann_4th_highest + pm25: !r pm_caaqs_combined_results + pm25_24h: !r pm_24h_caaqs_results + annual_pm25: !r pm25_caaqs_annual$yearly_avg + stations: !r stations_az + airzone: "Central Interior" +--- + +```{r setup, echo = FALSE, message = FALSE} +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") + +## Filter data to air zone +airzone <- params$airzone +ozone <- filter(params$ozone, airzone == !!airzone) +pm25 <- filter(params$pm25, airzone == !!airzone) + +## Source plotting and table functions +source("functions.R") +``` + +## Fig 2: 3 year ozone concentration by station + +```{r ozone-by-station, echo = FALSE, warn = FALSE} +plot_ozone_by_station(ozone, airzone) +``` + +## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + +```{r annual-ozone, echo = FALSE, warning = FALSE} +## Add station names +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_ozone_station_timeseries(annual_ozone, airzone) +``` + +## Fig 4: PM 2.5 by station + +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +plot_pm25_by_station(pm25) +``` + +## Fig 5: PM Annual trends in PM 2.5 + +```{r annual-pm25, echo = FALSE, warning = FALSE} +## Add station names +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_pm25_station_timeseries(annual_pm25, airzone) +``` + +## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-2, echo = FALSE} +create_ozone_table(ozone) +``` + +## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-3, echo = FALSE} +params$pm25_24h %>% + filter(airzone == !!airzone) %>% + create_pm25_table() +``` diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd new file mode 100644 index 0000000..310a0da --- /dev/null +++ b/03_southern_interior.Rmd @@ -0,0 +1,81 @@ +--- +title: Southern Interior Air Zone +header-includes: +- \usepackage{booktabs} +- \usepackage{makecell} +- \usepackage{multirow} +- \usepackage{colortbl} +- \usepackage{xcolor} +output: pdf_document +params: + ozone: !r ozone_caaqs_results + annual_ozone: !r ozone_caaqs$ann_4th_highest + pm25: !r pm_caaqs_combined_results + pm25_24h: !r pm_24h_caaqs_results + annual_pm25: !r pm25_caaqs_annual$yearly_avg + stations: !r stations_az + airzone: "Southern Interior" +--- + +```{r setup, echo = FALSE, message = FALSE} +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") + +## Filter data to air zone +airzone <- params$airzone +ozone <- filter(params$ozone, airzone == !!airzone) +pm25 <- filter(params$pm25, airzone == !!airzone) + +## Source plotting and table functions +source("functions.R") +``` + +## Fig 2: 3 year ozone concentration by station + +```{r ozone-by-station, echo = FALSE, warn = FALSE} +plot_ozone_by_station(ozone, airzone) +``` + +## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + +```{r annual-ozone, echo = FALSE, warning = FALSE} +## Add station names +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_ozone_station_timeseries(annual_ozone, airzone) +``` + +## Fig 4: PM 2.5 by station + +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +plot_pm25_by_station(pm25) +``` + +## Fig 5: PM Annual trends in PM 2.5 + +```{r annual-pm25, echo = FALSE, warning = FALSE} +## Add station names +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_pm25_station_timeseries(annual_pm25, airzone) +``` + +## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-2, echo = FALSE} +create_ozone_table(ozone) +``` + +## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-3, echo = FALSE} +params$pm25_24h %>% + filter(airzone == !!airzone) %>% + create_pm25_table() +``` diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd new file mode 100644 index 0000000..3559180 --- /dev/null +++ b/04_lower_fraser_valley.Rmd @@ -0,0 +1,81 @@ +--- +title: Lower Fraser Valley Air Zone +header-includes: +- \usepackage{booktabs} +- \usepackage{makecell} +- \usepackage{multirow} +- \usepackage{colortbl} +- \usepackage{xcolor} +output: pdf_document +params: + ozone: !r ozone_caaqs_results + annual_ozone: !r ozone_caaqs$ann_4th_highest + pm25: !r pm_caaqs_combined_results + pm25_24h: !r pm_24h_caaqs_results + annual_pm25: !r pm25_caaqs_annual$yearly_avg + stations: !r stations_az + airzone: "Lower Fraser Valley" +--- + +```{r setup, echo = FALSE, message = FALSE} +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") + +## Filter data to air zone +airzone <- params$airzone +ozone <- filter(params$ozone, airzone == !!airzone) +pm25 <- filter(params$pm25, airzone == !!airzone) + +## Source plotting and table functions +source("functions.R") +``` + +## Fig 2: 3 year ozone concentration by station + +```{r ozone-by-station, echo = FALSE, warn = FALSE} +plot_ozone_by_station(ozone, airzone) +``` + +## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + +```{r annual-ozone, echo = FALSE, warning = FALSE} +## Add station names +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_ozone_station_timeseries(annual_ozone, airzone) +``` + +## Fig 4: PM 2.5 by station + +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +plot_pm25_by_station(pm25) +``` + +## Fig 5: PM Annual trends in PM 2.5 + +```{r annual-pm25, echo = FALSE, warning = FALSE} +## Add station names +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_pm25_station_timeseries(annual_pm25, airzone) +``` + +## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-2, echo = FALSE} +create_ozone_table(ozone) +``` + +## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-3, echo = FALSE} +params$pm25_24h %>% + filter(airzone == !!airzone) %>% + create_pm25_table() +``` diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 289b641..5044297 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -75,5 +75,7 @@ create_ozone_table(ozone) ## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone ```{r table-3, echo = FALSE} -create_pm25_table(params$pm25_24h) +params$pm25_24h %>% + filter(airzone == !!airzone) %>% + create_pm25_table() ``` diff --git a/06_coastal.Rmd b/06_coastal.Rmd new file mode 100644 index 0000000..37fd3e9 --- /dev/null +++ b/06_coastal.Rmd @@ -0,0 +1,81 @@ +--- +title: Coastal Air Zone +header-includes: +- \usepackage{booktabs} +- \usepackage{makecell} +- \usepackage{multirow} +- \usepackage{colortbl} +- \usepackage{xcolor} +output: pdf_document +params: + ozone: !r ozone_caaqs_results + annual_ozone: !r ozone_caaqs$ann_4th_highest + pm25: !r pm_caaqs_combined_results + pm25_24h: !r pm_24h_caaqs_results + annual_pm25: !r pm25_caaqs_annual$yearly_avg + stations: !r stations_az + airzone: "Coastal" +--- + +```{r setup, echo = FALSE, message = FALSE} +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") + +## Filter data to air zone +airzone <- params$airzone +ozone <- filter(params$ozone, airzone == !!airzone) +pm25 <- filter(params$pm25, airzone == !!airzone) + +## Source plotting and table functions +source("functions.R") +``` + +## Fig 2: 3 year ozone concentration by station + +```{r ozone-by-station, echo = FALSE, warn = FALSE} +plot_ozone_by_station(ozone, airzone) +``` + +## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + +```{r annual-ozone, echo = FALSE, warning = FALSE} +## Add station names +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_ozone_station_timeseries(annual_ozone, airzone) +``` + +## Fig 4: PM 2.5 by station + +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +plot_pm25_by_station(pm25) +``` + +## Fig 5: PM Annual trends in PM 2.5 + +```{r annual-pm25, echo = FALSE, warning = FALSE} +## Add station names +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +plot_pm25_station_timeseries(annual_pm25, airzone) +``` + +## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-2, echo = FALSE} +create_ozone_table(ozone) +``` + +## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + +```{r table-3, echo = FALSE} +params$pm25_24h %>% + filter(airzone == !!airzone) %>% + create_pm25_table() +``` From b76d72b3123f3cb7ed300ef1db156c5e95bc4e87 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 13 Mar 2019 22:08:33 -0700 Subject: [PATCH 08/52] Don't commit PDFs (at least for now) --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 26fad6f..8029c82 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# PDFs +*.pdf + # History files .Rhistory .Rapp.history From 503a95f236f48666e5bde6bcb8d54c73016a6fbf Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Thu, 14 Mar 2019 19:43:52 -0700 Subject: [PATCH 09/52] Fix color for management level cell --- functions.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/functions.R b/functions.R index 5c412cc..1acc034 100644 --- a/functions.R +++ b/functions.R @@ -194,7 +194,8 @@ create_ozone_table <- function(data) { add_header_above( c(" " = 1, " " = 1, "4th Highest Daily \n 8-hour Maxima" = 2, " " = 1) ) %>% - collapse_rows(columns = 5) + collapse_rows(columns = 5) %>% + row_spec(0, background = "white") } create_pm25_table <- function(data) { @@ -238,6 +239,7 @@ create_pm25_table <- function(data) { " " = 1 ) ) %>% - collapse_rows(columns = 6) + collapse_rows(columns = 6) %>% + row_spec(0, background = "white") } From e9962266444d19b791c0065069b97206618c648e Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Thu, 14 Mar 2019 22:53:13 -0700 Subject: [PATCH 10/52] Start summary report with table --- 00_summary_report.Rmd | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 00_summary_report.Rmd diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd new file mode 100644 index 0000000..a03cd06 --- /dev/null +++ b/00_summary_report.Rmd @@ -0,0 +1,47 @@ +--- +title: Air Zone Summary Report +header-includes: + - \usepackage[utf8]{inputenc} + - \usepackage[table,xcdraw]{xcolor} + - \usepackage{multicol} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{amsmath} +output: + pdf_document: + md_extensions: +raw_attribute +--- + +## Air zone map + +## Table 1. Air zone management framework for ground-level ozone and PM2.5. The CAAQS define the upper threshold, separating the "red" and "orange" management levels. + +```{=latex} +\begin{table}[h] +\begin{tabular}{|l|c|c|c|c|c|c|} +\hline +\rowcolor[HTML]{D9D9D9} +& \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}$\text{O}_3$\\ (ppb)\end{tabular}} & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}$\text{PM}_{2.5}$ – Annual\\ ($\mu \text{g/m}^3$)\end{tabular}} & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}$\text{PM}_{2.5}$ - 24h\\ ($\mu \text{g/m}^3$)\end{tabular}} \\ \cline{2-7} +\rowcolor[HTML]{D9D9D9} +\multirow{-2}{*}{Management Level} & 2015 & 2020 & 2015 & 2020 & 2015 & 2020 \\ \hline +\rowcolor[HTML]{EA3420} +{\color[HTML]{000000} Red} & \multicolumn{6}{c|}{\cellcolor[HTML]{EA3420}{\color[HTML]{FFFFFF} Actions for Achieving Air Zone CAAQS}} \\ \hline +Threshold (CAAQS) & 63 & 62 & 10 & 8.8 & 28 & 27 \\ \hline +\rowcolor[HTML]{F7C143} +Orange & \multicolumn{6}{c|}{\cellcolor[HTML]{F7C143}Actions for Preventing CAAQS Exceedance} \\ \hline +Threshold & \multicolumn{2}{c|}{56} & \multicolumn{2}{c|}{6.4} & \multicolumn{2}{c|}{19} \\ \hline +\rowcolor[HTML]{FFFD53} +Yellow & \multicolumn{6}{c|}{\cellcolor[HTML]{FFFD53}Actions for Preventing Air Quality Deterioration} \\ \hline +Threshold & \multicolumn{2}{c|}{50} & \multicolumn{2}{c|}{4} & \multicolumn{2}{c|}{10} \\ \hline +\rowcolor[HTML]{9FCD60} +Green & \multicolumn{6}{c|}{\cellcolor[HTML]{9FCD60}Actions for Keeping Clean Areas Clean} \\ \hline +\end{tabular} +\end{table} +``` + + +## Air zone summary plot for 24-hour average and annual average PM2.5, and 8-hour average ozone + +## Air zone/station CAAQS mgmt level map and achievement chart for both PM2.5 and ozone. From f60b82715c0f68e8f19b3df9942d60aeb67cb3e3 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 09:08:43 -0700 Subject: [PATCH 11/52] Use rcaaqs colors --- 00_summary_report.Rmd | 16 ++++++++-------- functions.R | 42 ++++++++++++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index a03cd06..b4ae4a6 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -26,17 +26,17 @@ output: & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}$\text{O}_3$\\ (ppb)\end{tabular}} & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}$\text{PM}_{2.5}$ – Annual\\ ($\mu \text{g/m}^3$)\end{tabular}} & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}$\text{PM}_{2.5}$ - 24h\\ ($\mu \text{g/m}^3$)\end{tabular}} \\ \cline{2-7} \rowcolor[HTML]{D9D9D9} \multirow{-2}{*}{Management Level} & 2015 & 2020 & 2015 & 2020 & 2015 & 2020 \\ \hline -\rowcolor[HTML]{EA3420} -{\color[HTML]{000000} Red} & \multicolumn{6}{c|}{\cellcolor[HTML]{EA3420}{\color[HTML]{FFFFFF} Actions for Achieving Air Zone CAAQS}} \\ \hline +\rowcolor[HTML]{A50026} +{\color[HTML]{FFFFFF} Red} & \multicolumn{6}{c|}{\cellcolor[HTML]{A50026}{\color[HTML]{FFFFFF} Actions for Achieving Air Zone CAAQS}} \\ \hline Threshold (CAAQS) & 63 & 62 & 10 & 8.8 & 28 & 27 \\ \hline -\rowcolor[HTML]{F7C143} -Orange & \multicolumn{6}{c|}{\cellcolor[HTML]{F7C143}Actions for Preventing CAAQS Exceedance} \\ \hline +\rowcolor[HTML]{F46D43} +Orange & \multicolumn{6}{c|}{\cellcolor[HTML]{F46D43}Actions for Preventing CAAQS Exceedance} \\ \hline Threshold & \multicolumn{2}{c|}{56} & \multicolumn{2}{c|}{6.4} & \multicolumn{2}{c|}{19} \\ \hline -\rowcolor[HTML]{FFFD53} -Yellow & \multicolumn{6}{c|}{\cellcolor[HTML]{FFFD53}Actions for Preventing Air Quality Deterioration} \\ \hline +\rowcolor[HTML]{FEE08B} +Yellow & \multicolumn{6}{c|}{\cellcolor[HTML]{FEE08B}Actions for Preventing Air Quality Deterioration} \\ \hline Threshold & \multicolumn{2}{c|}{50} & \multicolumn{2}{c|}{4} & \multicolumn{2}{c|}{10} \\ \hline -\rowcolor[HTML]{9FCD60} -Green & \multicolumn{6}{c|}{\cellcolor[HTML]{9FCD60}Actions for Keeping Clean Areas Clean} \\ \hline +\rowcolor[HTML]{A6D96A} +Green & \multicolumn{6}{c|}{\cellcolor[HTML]{A6D96A}Actions for Keeping Clean Areas Clean} \\ \hline \end{tabular} \end{table} ``` diff --git a/functions.R b/functions.R index 1acc034..a01c72c 100644 --- a/functions.R +++ b/functions.R @@ -143,22 +143,33 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { ## Choose color for cell based on management level mgmt_level_color <- function(mgmt_level) { - switch( - as.character(mgmt_level), - "Actions for Achieving Air Zone CAAQS" = "#EA3420", - "Actions for Preventing CAAQS Exceedance" = "#F7C143", - "Actions for Preventing Air Quality Deterioration" = "#FFFD53", - "Actions for Keeping Clean Areas Clean" = "#9FCD60" - ) + rcaaqs::get_colours(type = "management")[mgmt_level] } ## Color cells by management level color_by_mgmt_level <- function(value, mgmt_level) { - cell_spec(value, "latex", background = mgmt_level_color(mgmt_level)) + cell_spec( + value, + "latex", + color = text_color(mgmt_level), + background = mgmt_level_color(mgmt_level) + ) +} + +## If mgmt level is Actions for Achieving Air Zone CAAQS, text color should be +## white +text_color <- function(mgmt_level) { + switch( + as.character(mgmt_level), + "Actions for Achieving Air Zone CAAQS" = "white", + "black" + ) } create_ozone_table <- function(data) { overall_color <- mgmt_level_color(max(data$mgmt_level)) + overall_text <- text_color(max(data$mgmt_level)) + data %>% ## Select columns of interest select( @@ -190,7 +201,12 @@ create_ozone_table <- function(data) { column_spec(2, width = "0.5in") %>% column_spec(3:4, width = "0.75in") %>% ## Color in the Air Zone Management Level column - column_spec(5, width = "1.5in", background = overall_color) %>% + column_spec( + 5, + width = "1.5in", + color = overall_text, + background = overall_color + ) %>% add_header_above( c(" " = 1, " " = 1, "4th Highest Daily \n 8-hour Maxima" = 2, " " = 1) ) %>% @@ -200,6 +216,7 @@ create_ozone_table <- function(data) { create_pm25_table <- function(data) { overall_color <- mgmt_level_color(max(data$mgmt_level)) + overall_text <- text_color(max(data$mgmt_level)) data %>% select( @@ -229,7 +246,12 @@ create_pm25_table <- function(data) { kable("latex", escape = FALSE, align = "c") %>% column_spec(1, width = "1.5in") %>% column_spec(2:5, width = "0.5in") %>% - column_spec(6, width = "1.5in", background = overall_color) %>% + column_spec( + 6, + width = "1.5in", + color = overall_text, + background = overall_color + ) %>% add_header_above( c( " " = 1, From 465320ada808b27862a61df8b550ad57128557e5 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 09:11:46 -0700 Subject: [PATCH 12/52] Load packages in functions.R --- 01_northeast.Rmd | 9 ++------- 02_central_interior.Rmd | 9 ++------- 03_southern_interior.Rmd | 9 ++------- 04_lower_fraser_valley.Rmd | 9 ++------- 05_georgia_strait.Rmd | 9 ++------- 06_coastal.Rmd | 9 ++------- functions.R | 7 +++++++ 7 files changed, 19 insertions(+), 42 deletions(-) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 88386a2..07776f1 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -18,18 +18,13 @@ params: --- ```{r setup, echo = FALSE, message = FALSE} -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") +## Source plotting and table functions. Also loads packages. +source("functions.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Source plotting and table functions -source("functions.R") ``` ## Fig 2: 3 year ozone concentration by station diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index f460eab..58baf18 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -18,18 +18,13 @@ params: --- ```{r setup, echo = FALSE, message = FALSE} -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") +## Source plotting and table functions. Also loads packages. +source("functions.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Source plotting and table functions -source("functions.R") ``` ## Fig 2: 3 year ozone concentration by station diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 310a0da..1f3d023 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -18,18 +18,13 @@ params: --- ```{r setup, echo = FALSE, message = FALSE} -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") +## Source plotting and table functions. Also loads packages. +source("functions.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Source plotting and table functions -source("functions.R") ``` ## Fig 2: 3 year ozone concentration by station diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 3559180..b6f387e 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -18,18 +18,13 @@ params: --- ```{r setup, echo = FALSE, message = FALSE} -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") +## Source plotting and table functions. Also loads packages. +source("functions.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Source plotting and table functions -source("functions.R") ``` ## Fig 2: 3 year ozone concentration by station diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 5044297..191385a 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -18,18 +18,13 @@ params: --- ```{r setup, echo = FALSE, message = FALSE} -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") +## Source plotting and table functions. Also loads packages. +source("functions.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Source plotting and table functions -source("functions.R") ``` ## Fig 2: 3 year ozone concentration by station diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 37fd3e9..eac4e48 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -18,18 +18,13 @@ params: --- ```{r setup, echo = FALSE, message = FALSE} -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") +## Source plotting and table functions. Also loads packages. +source("functions.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Source plotting and table functions -source("functions.R") ``` ## Fig 2: 3 year ozone concentration by station diff --git a/functions.R b/functions.R index a01c72c..f2a2c78 100644 --- a/functions.R +++ b/functions.R @@ -2,6 +2,13 @@ #### Functions to generate results for air zone reports #### ############################################################## +## Load packages -------------------------------------------- + +library("tidyverse") +library("patchwork") +library("kableExtra") +library("rcaaqs") + ## Plots ----------------------------------------------------- ## Ozone concentration based on annual 4th highest daily 8-hour maxima, 3 year From ba3cdca761317ed7bf04c183ad8f33ebc612b091 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 09:49:32 -0700 Subject: [PATCH 13/52] Use Arial as main font Requires compiling with lualatex or xelatex --- 00_summary_report.Rmd | 3 ++- 01_northeast.Rmd | 5 ++++- 02_central_interior.Rmd | 5 ++++- 03_southern_interior.Rmd | 5 ++++- 04_lower_fraser_valley.Rmd | 5 ++++- 05_georgia_strait.Rmd | 5 ++++- 06_coastal.Rmd | 5 ++++- 7 files changed, 26 insertions(+), 7 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index b4ae4a6..e3f2296 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -1,7 +1,6 @@ --- title: Air Zone Summary Report header-includes: - - \usepackage[utf8]{inputenc} - \usepackage[table,xcdraw]{xcolor} - \usepackage{multicol} - \usepackage{booktabs} @@ -12,6 +11,8 @@ header-includes: output: pdf_document: md_extensions: +raw_attribute + latex_engine: lualatex +mainfont: Arial --- ## Air zone map diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 07776f1..35acf85 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -6,7 +6,10 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{xcolor} -output: pdf_document +output: + pdf_document: + latex_engine: lualatex +mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 58baf18..7e2c80b 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -6,7 +6,10 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{xcolor} -output: pdf_document +output: + pdf_document: + latex_engine: lualatex +mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 1f3d023..088be9e 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -6,7 +6,10 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{xcolor} -output: pdf_document +output: + pdf_document: + latex_engine: lualatex +mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index b6f387e..9effe34 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -6,7 +6,10 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{xcolor} -output: pdf_document +output: + pdf_document: + latex_engine: lualatex +mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 191385a..cfbe741 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -6,7 +6,10 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{xcolor} -output: pdf_document +output: + pdf_document: + latex_engine: lualatex +mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest diff --git a/06_coastal.Rmd b/06_coastal.Rmd index eac4e48..cc2669d 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -6,7 +6,10 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{xcolor} -output: pdf_document +output: + pdf_document: + latex_engine: lualatex +mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest From 0308bcdfe99ef55a51c4845a869b7481affee6e7 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 11:03:12 -0700 Subject: [PATCH 14/52] Figure captions --- 05_georgia_strait.Rmd | 47 +++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index cfbe741..d7e8aaf 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -1,14 +1,16 @@ --- title: Georgia Strait Air Zone header-includes: -- \usepackage{booktabs} -- \usepackage{makecell} -- \usepackage{multirow} -- \usepackage{colortbl} -- \usepackage{xcolor} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{xcolor} + - \usepackage{textcomp} output: pdf_document: latex_engine: lualatex + fig_caption: true mainfont: Arial params: ozone: !r ozone_caaqs_results @@ -28,39 +30,40 @@ source("functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) + +## Filter and add station names to annual ozone +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Filter and add station names to annual pm25 +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) ``` -## Fig 2: 3 year ozone concentration by station + -```{r ozone-by-station, echo = FALSE, warn = FALSE} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = paste0("Ozone concentrations in the ", airzone, " Air Zone, based on annual 4th highest daily 8-hour maxima, averaged over ", min(ozone$min_year, na.rm = TRUE), "-", max(ozone$max_year, na.rm = TRUE), ". Red dashed line identifies the CAAQS of 63 ppb.")} plot_ozone_by_station(ozone, airzone) ``` -## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. + -```{r annual-ozone, echo = FALSE, warning = FALSE} -## Add station names -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = paste0("Annual trends in ozone concentrations (", min(annual_ozone$year, na.rm = TRUE), "-", max(annual_ozone$year, na.rm = TRUE), "), based on annual 4th highest daily 8-hour maxima for a single year. Red dashed line identifies CAAQS of 63 ppb.")} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -## Fig 4: PM 2.5 by station + -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = paste0("PM$_{2.5}$ concentrations in the ", airzone, " Air Zone. Upper plot based on 24-hour concentration (annual 98th percentile, averaged over ", min(pm25$min_year, na.rm = TRUE), "-", max(pm25$max_year, na.rm = TRUE), "). Lower plot based on annual mean concentration (averaged over ", min(pm25$min_year, na.rm = TRUE), "-", max(pm25$max_year, na.rm = TRUE), "). Red dashed lines identify CAAQS of 28 $\\mu$g/m$^3$ (upper plot) and 10 $\\mu$g/m$^3$ (lower plot).")} plot_pm25_by_station(pm25) ``` -## Fig 5: PM Annual trends in PM 2.5 - -```{r annual-pm25, echo = FALSE, warning = FALSE} -## Add station names -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = paste0("Trends in PM$_{2.5}$ concentrations (", min(annual_pm25$year, na.rm = TRUE), "-", max(annual_pm25$year, na.rm = TRUE), "), based on annual mean concentrations from a single year. The CAAQS value of 10 $\\mu$g/m$^3$ is shown by the dashed line. PM$_{2.5}$ measurements prior to 2011 are reported at 25\\textdegree C and 1 atm. From 2011 onward, measurements are reported at local conditions. ")} plot_pm25_station_timeseries(annual_pm25, airzone) ``` From 2152f45ac46cf279a8cf41ac56f67e9f340e0335 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 11:25:37 -0700 Subject: [PATCH 15/52] Store figure captions in separate script --- 05_georgia_strait.Rmd | 16 ++++++++------ captions.R | 50 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 captions.R diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index d7e8aaf..c436bf4 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -40,40 +40,42 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) + +## Figure captions +source("captions.R") ``` -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = paste0("Ozone concentrations in the ", airzone, " Air Zone, based on annual 4th highest daily 8-hour maxima, averaged over ", min(ozone$min_year, na.rm = TRUE), "-", max(ozone$max_year, na.rm = TRUE), ". Red dashed line identifies the CAAQS of 63 ppb.")} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = paste0("Annual trends in ozone concentrations (", min(annual_ozone$year, na.rm = TRUE), "-", max(annual_ozone$year, na.rm = TRUE), "), based on annual 4th highest daily 8-hour maxima for a single year. Red dashed line identifies CAAQS of 63 ppb.")} - +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = paste0("PM$_{2.5}$ concentrations in the ", airzone, " Air Zone. Upper plot based on 24-hour concentration (annual 98th percentile, averaged over ", min(pm25$min_year, na.rm = TRUE), "-", max(pm25$max_year, na.rm = TRUE), "). Lower plot based on annual mean concentration (averaged over ", min(pm25$min_year, na.rm = TRUE), "-", max(pm25$max_year, na.rm = TRUE), "). Red dashed lines identify CAAQS of 28 $\\mu$g/m$^3$ (upper plot) and 10 $\\mu$g/m$^3$ (lower plot).")} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = paste0("Trends in PM$_{2.5}$ concentrations (", min(annual_pm25$year, na.rm = TRUE), "-", max(annual_pm25$year, na.rm = TRUE), "), based on annual mean concentrations from a single year. The CAAQS value of 10 $\\mu$g/m$^3$ is shown by the dashed line. PM$_{2.5}$ measurements prior to 2011 are reported at 25\\textdegree C and 1 atm. From 2011 onward, measurements are reported at local conditions. ")} +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-2, echo = FALSE} create_ozone_table(ozone) ``` -## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-3, echo = FALSE} params$pm25_24h %>% diff --git a/captions.R b/captions.R new file mode 100644 index 0000000..aef6ce9 --- /dev/null +++ b/captions.R @@ -0,0 +1,50 @@ +########################################################### +#### Figure captions for individual air zone reports #### +########################################################### + +## Does not include table captions (these are specified in the respective +## table-generating functions in functions.R) + +## Ozone by station +ozone_by_station_cap <- paste0( + "Ozone concentrations in the ", + airzone, + " Air Zone, based on annual 4th highest daily 8-hour maxima, averaged over ", + min(ozone$min_year, na.rm = TRUE), + "-", + max(ozone$max_year, na.rm = TRUE), + ". Red dashed line identifies the CAAQS of 63 ppb." +) + +## Annual ozone +annual_ozone_cap <- paste0( + "Annual trends in ozone concentrations (", + min(annual_ozone$year, na.rm = TRUE), + "-", + max(annual_ozone$year, na.rm = TRUE), + "), based on annual 4th highest daily 8-hour maxima for a single year. Red dashed line identifies CAAQS of 63 ppb." +) + +## PM2.5 by station +pm25_by_station_cap <- paste0( + "PM$_{2.5}$ concentrations in the ", + airzone, + " Air Zone. Upper plot based on 24-hour concentration (annual 98th percentile, averaged over ", + min(pm25$min_year, na.rm = TRUE), + "-", + max(pm25$max_year, na.rm = TRUE), + "). Lower plot based on annual mean concentration (averaged over ", + min(pm25$min_year, na.rm = TRUE), + "-", + max(pm25$max_year, na.rm = TRUE), + "). Red dashed lines identify CAAQS of 28 $\\mu$g/m$^3$ (upper plot) and 10 $\\mu$g/m$^3$ (lower plot)." +) + +## Annual PM2.5 +annual_pm25_cap <- paste0( + "Trends in PM$_{2.5}$ concentrations (", + min(annual_pm25$year, na.rm = TRUE), + "-", + max(annual_pm25$year, na.rm = TRUE), + "), based on annual mean concentrations from a single year. The CAAQS value of 10 $\\mu$g/m$^3$ is shown by the dashed line. PM$_{2.5}$ measurements prior to 2011 are reported at 25\\textdegree C and 1 atm. From 2011 onward, measurements are reported at local conditions." +) From 52839c153a5f641530c0b683f530e3674ce249bd Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 11:28:47 -0700 Subject: [PATCH 16/52] Table captions --- functions.R | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/functions.R b/functions.R index f2a2c78..75a63f8 100644 --- a/functions.R +++ b/functions.R @@ -204,7 +204,20 @@ create_ozone_table <- function(data) { `TF/EE Influences Removed` = metric_value_mgmt, `Air Zone Management Level` = mgmt_level ) %>% - kable("latex", escape = FALSE, align = "c") %>% + kable( + "latex", + escape = FALSE, + align = "c", + caption = paste0( + "Summary of ozone concentrations as measured and air zone management levels for the ", + airzone, + " Air Zone (based on ", + min(data$min_year, na.rm = TRUE), + "-", + max(data$max_year, na.rm = TRUE), + " data). All concentrations in ppb." + ) + ) %>% column_spec(2, width = "0.5in") %>% column_spec(3:4, width = "0.75in") %>% ## Color in the Air Zone Management Level column @@ -250,7 +263,20 @@ create_pm25_table <- function(data) { `TF/EE Removed` = metric_value_mgmt, `Air Zone Management Level` = mgmt_level ) %>% - kable("latex", escape = FALSE, align = "c") %>% + kable( + "latex", + escape = FALSE, + align = "c", + caption = paste0( + "Summary of PM$_{2.5}$ concentrations as measured and air zone management levels for the ", + airzone, + " Air Zone (based on ", + min(ozone$min_year, na.rm = TRUE), + "-", + max(ozone$max_year, na.rm = TRUE), + " data). All concentrations in $\\mu$g/m$^3$." + ) + ) %>% column_spec(1, width = "1.5in") %>% column_spec(2:5, width = "0.5in") %>% column_spec( From ea8adcf38404958485399275b85c5dc44a70aab8 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 12:35:18 -0700 Subject: [PATCH 17/52] Hold float positions --- 05_georgia_strait.Rmd | 2 ++ functions.R | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index c436bf4..9aeea65 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -7,6 +7,8 @@ header-includes: - \usepackage{colortbl} - \usepackage{xcolor} - \usepackage{textcomp} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex diff --git a/functions.R b/functions.R index 75a63f8..d6876fe 100644 --- a/functions.R +++ b/functions.R @@ -231,7 +231,8 @@ create_ozone_table <- function(data) { c(" " = 1, " " = 1, "4th Highest Daily \n 8-hour Maxima" = 2, " " = 1) ) %>% collapse_rows(columns = 5) %>% - row_spec(0, background = "white") + row_spec(0, background = "white") %>% + kable_styling(latex_options = "hold_position") } create_pm25_table <- function(data) { @@ -295,6 +296,7 @@ create_pm25_table <- function(data) { ) ) %>% collapse_rows(columns = 6) %>% - row_spec(0, background = "white") + row_spec(0, background = "white") %>% + kable_styling(latex_options = "hold_position") } From 4527a3ef57a47c2601010edb64284203e63aee9a Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 22:01:20 -0700 Subject: [PATCH 18/52] Add full PM2.5 data to table --- 05_georgia_strait.Rmd | 5 +-- functions.R | 75 +++++++++++++++++++++++++++++-------------- 2 files changed, 52 insertions(+), 28 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 9aeea65..96f0a7b 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -18,7 +18,6 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results - pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Georgia Strait" @@ -80,7 +79,5 @@ create_ozone_table(ozone) ```{r table-3, echo = FALSE} -params$pm25_24h %>% - filter(airzone == !!airzone) %>% - create_pm25_table() +create_pm25_table(pm25) ``` diff --git a/functions.R b/functions.R index d6876fe..2482ff6 100644 --- a/functions.R +++ b/functions.R @@ -236,36 +236,60 @@ create_ozone_table <- function(data) { } create_pm25_table <- function(data) { - overall_color <- mgmt_level_color(max(data$mgmt_level)) - overall_text <- text_color(max(data$mgmt_level)) - - data %>% + ## Split the combined results and join to get separate columns for the metrics + joined <- data %>% select( station_name, instrument_type, n_years, metric_value_ambient, - metric_value_mgmt, - mgmt_level - ) %>% - mutate( - metric_value_mgmt = map2_chr( metric_value_mgmt, mgmt_level, - color_by_mgmt_level + metric + ) %>% + split(.$metric) %>% + Reduce( + function(...) left_join(..., by = c("station_name", "instrument_type")), + . ) - ) %>% - mutate(mgmt_level = max(mgmt_level)) %>% - rename( - Location = station_name, - `Monitor type` = instrument_type, - `No. valid years` = n_years, - `As measured` = metric_value_ambient, - `TF/EE Removed` = metric_value_mgmt, - `Air Zone Management Level` = mgmt_level + + max_level <- max(joined$mgmt_level.x, joined$mgmt_level.y) + overall_color <- mgmt_level_color(max_level) + overall_text <- text_color(max_level) + + joined %>% + ## Set mgmt_level column to maximum management level + mutate(mgmt_level = max_level) %>% + ## Color management columns + mutate( + metric_value_mgmt.x = map2_chr( + metric_value_mgmt.x, + mgmt_level.x, + color_by_mgmt_level + ) ) %>% + mutate( + metric_value_mgmt.y = map2_chr( + metric_value_mgmt.y, + mgmt_level.y, + color_by_mgmt_level + ) + ) %>% + ## Drop extra columns + select(-mgmt_level.x, -mgmt_level.y, -n_years.y, -metric.x, -metric.y) %>% + ## Create table kable( "latex", + col.names = c( + "Location", + "Monitor Type", + "No. Valid Years", + "As Measured", + "TF/EE Removed", + "As Measured", + "TF/EE Removed", + "Air Zone Management Level" + ), escape = FALSE, align = "c", caption = paste0( @@ -278,11 +302,13 @@ create_pm25_table <- function(data) { " data). All concentrations in $\\mu$g/m$^3$." ) ) %>% - column_spec(1, width = "1.5in") %>% - column_spec(2:5, width = "0.5in") %>% + column_spec(1, width = "1.25in") %>% + column_spec(2, width = "0.5in") %>% + column_spec(3, width = "0.3in") %>% + column_spec(4:7, width = "0.5in") %>% column_spec( - 6, - width = "1.5in", + 8, + width = "1in", color = overall_text, background = overall_color ) %>% @@ -292,10 +318,11 @@ create_pm25_table <- function(data) { " " = 1, " " = 1, "Daily Mean (98th \n Percentile)" = 2, + "Annual Mean" = 2, " " = 1 ) ) %>% - collapse_rows(columns = 6) %>% + collapse_rows(columns = 8) %>% row_spec(0, background = "white") %>% kable_styling(latex_options = "hold_position") } From 4f365d1be3c33ae53845b8fcc8a8915b0041840d Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 22:19:47 -0700 Subject: [PATCH 19/52] Don't track logs in git --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 8029c82..6a88089 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # PDFs *.pdf +# Log files +*.log + # History files .Rhistory .Rapp.history From 40f9a1d40e6e1dc8c2527924f9b31c4b99c06345 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 23:19:29 -0700 Subject: [PATCH 20/52] Organize functions, captions, output report directory Captions are now functions in the functions.R script --- captions.R | 50 ----------------------- functions.R => components/functions.R | 57 +++++++++++++++++++++++---- components/packages.R | 5 +++ render_air_zone_reports.R | 4 +- 4 files changed, 58 insertions(+), 58 deletions(-) delete mode 100644 captions.R rename functions.R => components/functions.R (84%) create mode 100644 components/packages.R diff --git a/captions.R b/captions.R deleted file mode 100644 index aef6ce9..0000000 --- a/captions.R +++ /dev/null @@ -1,50 +0,0 @@ -########################################################### -#### Figure captions for individual air zone reports #### -########################################################### - -## Does not include table captions (these are specified in the respective -## table-generating functions in functions.R) - -## Ozone by station -ozone_by_station_cap <- paste0( - "Ozone concentrations in the ", - airzone, - " Air Zone, based on annual 4th highest daily 8-hour maxima, averaged over ", - min(ozone$min_year, na.rm = TRUE), - "-", - max(ozone$max_year, na.rm = TRUE), - ". Red dashed line identifies the CAAQS of 63 ppb." -) - -## Annual ozone -annual_ozone_cap <- paste0( - "Annual trends in ozone concentrations (", - min(annual_ozone$year, na.rm = TRUE), - "-", - max(annual_ozone$year, na.rm = TRUE), - "), based on annual 4th highest daily 8-hour maxima for a single year. Red dashed line identifies CAAQS of 63 ppb." -) - -## PM2.5 by station -pm25_by_station_cap <- paste0( - "PM$_{2.5}$ concentrations in the ", - airzone, - " Air Zone. Upper plot based on 24-hour concentration (annual 98th percentile, averaged over ", - min(pm25$min_year, na.rm = TRUE), - "-", - max(pm25$max_year, na.rm = TRUE), - "). Lower plot based on annual mean concentration (averaged over ", - min(pm25$min_year, na.rm = TRUE), - "-", - max(pm25$max_year, na.rm = TRUE), - "). Red dashed lines identify CAAQS of 28 $\\mu$g/m$^3$ (upper plot) and 10 $\\mu$g/m$^3$ (lower plot)." -) - -## Annual PM2.5 -annual_pm25_cap <- paste0( - "Trends in PM$_{2.5}$ concentrations (", - min(annual_pm25$year, na.rm = TRUE), - "-", - max(annual_pm25$year, na.rm = TRUE), - "), based on annual mean concentrations from a single year. The CAAQS value of 10 $\\mu$g/m$^3$ is shown by the dashed line. PM$_{2.5}$ measurements prior to 2011 are reported at 25\\textdegree C and 1 atm. From 2011 onward, measurements are reported at local conditions." -) diff --git a/functions.R b/components/functions.R similarity index 84% rename from functions.R rename to components/functions.R index 2482ff6..99002e8 100644 --- a/functions.R +++ b/components/functions.R @@ -2,13 +2,6 @@ #### Functions to generate results for air zone reports #### ############################################################## -## Load packages -------------------------------------------- - -library("tidyverse") -library("patchwork") -library("kableExtra") -library("rcaaqs") - ## Plots ----------------------------------------------------- ## Ozone concentration based on annual 4th highest daily 8-hour maxima, 3 year @@ -146,6 +139,56 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { theme(plot.title = element_text(hjust = 0.5)) } +## Captions -------------------------------------------------- + +ozone_by_station_cap <- function(airzone, ozone) { + paste0( + "Ozone concentrations in the ", + airzone, + " Air Zone, based on annual 4th highest daily 8-hour maxima, averaged over ", + min(ozone$min_year, na.rm = TRUE), + "-", + max(ozone$max_year, na.rm = TRUE), + ". Red dashed line identifies the CAAQS of 63 ppb." + ) +} + +annual_ozone_cap <- function(annual_ozone) { + paste0( + "Annual trends in ozone concentrations (", + min(annual_ozone$year, na.rm = TRUE), + "-", + max(annual_ozone$year, na.rm = TRUE), + "), based on annual 4th highest daily 8-hour maxima for a single year. Red dashed line identifies CAAQS of 63 ppb." + ) +} + +pm25_by_station_cap <- function(airzone, pm25) { + pm25_by_station_cap <- paste0( + "PM$_{2.5}$ concentrations in the ", + airzone, + " Air Zone. Upper plot based on 24-hour concentration (annual 98th percentile, averaged over ", + min(pm25$min_year, na.rm = TRUE), + "-", + max(pm25$max_year, na.rm = TRUE), + "). Lower plot based on annual mean concentration (averaged over ", + min(pm25$min_year, na.rm = TRUE), + "-", + max(pm25$max_year, na.rm = TRUE), + "). Red dashed lines identify CAAQS of 28 $\\mu$g/m$^3$ (upper plot) and 10 $\\mu$g/m$^3$ (lower plot)." + ) +} + +annual_pm25_cap <- function(annual_pm25) { + annual_pm25_cap <- paste0( + "Trends in PM$_{2.5}$ concentrations (", + min(annual_pm25$year, na.rm = TRUE), + "-", + max(annual_pm25$year, na.rm = TRUE), + "), based on annual mean concentrations from a single year. The CAAQS value of 10 $\\mu$g/m$^3$ is shown by the dashed line. PM$_{2.5}$ measurements prior to 2011 are reported at 25\\textdegree C and 1 atm. From 2011 onward, measurements are reported at local conditions." + ) +} + ## Tables ---------------------------------------------------- ## Choose color for cell based on management level diff --git a/components/packages.R b/components/packages.R new file mode 100644 index 0000000..0c75e84 --- /dev/null +++ b/components/packages.R @@ -0,0 +1,5 @@ +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") +library("rcaaqs") diff --git a/render_air_zone_reports.R b/render_air_zone_reports.R index a831fa9..6452814 100644 --- a/render_air_zone_reports.R +++ b/render_air_zone_reports.R @@ -19,5 +19,7 @@ load(file.path(pm25_dir, "tmp/analysed.RData")) ## using default parameters walk( list.files(pattern = "\\d{2}(.+)Rmd"), - render + render, + output_dir = "rendered_reports" ) + From 265cdf5f8c44e2c8678c2859ea14f048bddfd588 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sat, 16 Mar 2019 23:19:57 -0700 Subject: [PATCH 21/52] Update airzone reports --- 01_northeast.Rmd | 71 ++++++++++++++++++++------------------ 02_central_interior.Rmd | 71 ++++++++++++++++++++------------------ 03_southern_interior.Rmd | 71 ++++++++++++++++++++------------------ 04_lower_fraser_valley.Rmd | 71 ++++++++++++++++++++------------------ 05_georgia_strait.Rmd | 24 +++++++------ 06_coastal.Rmd | 71 ++++++++++++++++++++------------------ components/functions.R | 8 ++--- 7 files changed, 207 insertions(+), 180 deletions(-) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 35acf85..997c0bc 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -1,11 +1,14 @@ --- title: Northeast Air Zone header-includes: -- \usepackage{booktabs} -- \usepackage{makecell} -- \usepackage{multirow} -- \usepackage{colortbl} -- \usepackage{xcolor} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{xcolor} + - \usepackage{textcomp} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex @@ -14,66 +17,68 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results - pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Northeast" --- -```{r setup, echo = FALSE, message = FALSE} -## Source plotting and table functions. Also loads packages. -source("functions.R") + + +```{r setup, echo = FALSE, message = FALSE, include = FALSE} +## Load packages +source("components/packages.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) + +## Filter and add station names to annual ozone +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Filter and add station names to annual pm25 +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Source plotting and table functions +source("components/functions.R") ``` -## Fig 2: 3 year ozone concentration by station + -```{r ozone-by-station, echo = FALSE, warn = FALSE} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. - -```{r annual-ozone, echo = FALSE, warning = FALSE} -## Add station names -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -## Fig 4: PM 2.5 by station + -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -## Fig 5: PM Annual trends in PM 2.5 - -```{r annual-pm25, echo = FALSE, warning = FALSE} -## Add station names -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-2, echo = FALSE} -create_ozone_table(ozone) +create_ozone_table(ozone, airzone) ``` -## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-3, echo = FALSE} -params$pm25_24h %>% - filter(airzone == !!airzone) %>% - create_pm25_table() +create_pm25_table(pm25, airzone) ``` diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 7e2c80b..3907aa7 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -1,11 +1,14 @@ --- title: Central Interior Air Zone header-includes: -- \usepackage{booktabs} -- \usepackage{makecell} -- \usepackage{multirow} -- \usepackage{colortbl} -- \usepackage{xcolor} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{xcolor} + - \usepackage{textcomp} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex @@ -14,66 +17,68 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results - pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Central Interior" --- -```{r setup, echo = FALSE, message = FALSE} -## Source plotting and table functions. Also loads packages. -source("functions.R") + + +```{r setup, echo = FALSE, message = FALSE, include = FALSE} +## Load packages +source("components/packages.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) + +## Filter and add station names to annual ozone +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Filter and add station names to annual pm25 +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Source plotting and table functions +source("components/functions.R") ``` -## Fig 2: 3 year ozone concentration by station + -```{r ozone-by-station, echo = FALSE, warn = FALSE} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. - -```{r annual-ozone, echo = FALSE, warning = FALSE} -## Add station names -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -## Fig 4: PM 2.5 by station + -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -## Fig 5: PM Annual trends in PM 2.5 - -```{r annual-pm25, echo = FALSE, warning = FALSE} -## Add station names -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-2, echo = FALSE} -create_ozone_table(ozone) +create_ozone_table(ozone, airzone) ``` -## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-3, echo = FALSE} -params$pm25_24h %>% - filter(airzone == !!airzone) %>% - create_pm25_table() +create_pm25_table(pm25, airzone) ``` diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 088be9e..e85a974 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -1,11 +1,14 @@ --- title: Southern Interior Air Zone header-includes: -- \usepackage{booktabs} -- \usepackage{makecell} -- \usepackage{multirow} -- \usepackage{colortbl} -- \usepackage{xcolor} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{xcolor} + - \usepackage{textcomp} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex @@ -14,66 +17,68 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results - pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Southern Interior" --- -```{r setup, echo = FALSE, message = FALSE} -## Source plotting and table functions. Also loads packages. -source("functions.R") + + +```{r setup, echo = FALSE, message = FALSE, include = FALSE} +## Load packages +source("components/packages.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) + +## Filter and add station names to annual ozone +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Filter and add station names to annual pm25 +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Source plotting and table functions +source("components/functions.R") ``` -## Fig 2: 3 year ozone concentration by station + -```{r ozone-by-station, echo = FALSE, warn = FALSE} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. - -```{r annual-ozone, echo = FALSE, warning = FALSE} -## Add station names -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -## Fig 4: PM 2.5 by station + -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -## Fig 5: PM Annual trends in PM 2.5 - -```{r annual-pm25, echo = FALSE, warning = FALSE} -## Add station names -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-2, echo = FALSE} -create_ozone_table(ozone) +create_ozone_table(ozone, airzone) ``` -## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-3, echo = FALSE} -params$pm25_24h %>% - filter(airzone == !!airzone) %>% - create_pm25_table() +create_pm25_table(pm25, airzone) ``` diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 9effe34..f35fa9a 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -1,11 +1,14 @@ --- title: Lower Fraser Valley Air Zone header-includes: -- \usepackage{booktabs} -- \usepackage{makecell} -- \usepackage{multirow} -- \usepackage{colortbl} -- \usepackage{xcolor} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{xcolor} + - \usepackage{textcomp} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex @@ -14,66 +17,68 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results - pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Lower Fraser Valley" --- -```{r setup, echo = FALSE, message = FALSE} -## Source plotting and table functions. Also loads packages. -source("functions.R") + + +```{r setup, echo = FALSE, message = FALSE, include = FALSE} +## Load packages +source("components/packages.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) + +## Filter and add station names to annual ozone +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Filter and add station names to annual pm25 +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Source plotting and table functions +source("components/functions.R") ``` -## Fig 2: 3 year ozone concentration by station + -```{r ozone-by-station, echo = FALSE, warn = FALSE} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. - -```{r annual-ozone, echo = FALSE, warning = FALSE} -## Add station names -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -## Fig 4: PM 2.5 by station + -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -## Fig 5: PM Annual trends in PM 2.5 - -```{r annual-pm25, echo = FALSE, warning = FALSE} -## Add station names -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-2, echo = FALSE} -create_ozone_table(ozone) +create_ozone_table(ozone, airzone) ``` -## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-3, echo = FALSE} -params$pm25_24h %>% - filter(airzone == !!airzone) %>% - create_pm25_table() +create_pm25_table(pm25, airzone) ``` diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 96f0a7b..7defb95 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -23,9 +23,11 @@ params: airzone: "Georgia Strait" --- -```{r setup, echo = FALSE, message = FALSE} -## Source plotting and table functions. Also loads packages. -source("functions.R") + + +```{r setup, echo = FALSE, message = FALSE, include = FALSE} +## Load packages +source("components/packages.R") ## Filter data to air zone airzone <- params$airzone @@ -42,42 +44,42 @@ annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) -## Figure captions -source("captions.R") +## Source plotting and table functions +source("components/functions.R") ``` -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap} +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap} +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` ```{r table-2, echo = FALSE} -create_ozone_table(ozone) +create_ozone_table(ozone, airzone) ``` ```{r table-3, echo = FALSE} -create_pm25_table(pm25) +create_pm25_table(pm25, airzone) ``` diff --git a/06_coastal.Rmd b/06_coastal.Rmd index cc2669d..9fb6e0b 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -1,11 +1,14 @@ --- title: Coastal Air Zone header-includes: -- \usepackage{booktabs} -- \usepackage{makecell} -- \usepackage{multirow} -- \usepackage{colortbl} -- \usepackage{xcolor} + - \usepackage{booktabs} + - \usepackage{makecell} + - \usepackage{multirow} + - \usepackage{colortbl} + - \usepackage{xcolor} + - \usepackage{textcomp} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex @@ -14,66 +17,68 @@ params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results - pm25_24h: !r pm_24h_caaqs_results annual_pm25: !r pm25_caaqs_annual$yearly_avg stations: !r stations_az airzone: "Coastal" --- -```{r setup, echo = FALSE, message = FALSE} -## Source plotting and table functions. Also loads packages. -source("functions.R") + + +```{r setup, echo = FALSE, message = FALSE, include = FALSE} +## Load packages +source("components/packages.R") ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) + +## Filter and add station names to annual ozone +annual_ozone <- params$annual_ozone %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Filter and add station names to annual pm25 +annual_pm25 <- params$annual_pm25 %>% + left_join(params$stations, by = c("ems_id", "station_name")) %>% + filter(airzone == !!airzone) + +## Source plotting and table functions +source("components/functions.R") ``` -## Fig 2: 3 year ozone concentration by station + -```{r ozone-by-station, echo = FALSE, warn = FALSE} +```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -## Fig 3: Annual trends in ozone concentrations (2007-2016), based on annual 4th highest daily 8-hour maxima for a single year. - -```{r annual-ozone, echo = FALSE, warning = FALSE} -## Add station names -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -## Fig 4: PM 2.5 by station + -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3} +```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -## Fig 5: PM Annual trends in PM 2.5 - -```{r annual-pm25, echo = FALSE, warning = FALSE} -## Add station names -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) + +```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -## Table 2: Summary of ozone concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-2, echo = FALSE} -create_ozone_table(ozone) +create_ozone_table(ozone, airzone) ``` -## Table 3: Summary of PM2.5 concentrations as measured and air zone management levels for the `r airzone` Air Zone + ```{r table-3, echo = FALSE} -params$pm25_24h %>% - filter(airzone == !!airzone) %>% - create_pm25_table() +create_pm25_table(pm25, airzone) ``` diff --git a/components/functions.R b/components/functions.R index 99002e8..e2c1aef 100644 --- a/components/functions.R +++ b/components/functions.R @@ -216,7 +216,7 @@ text_color <- function(mgmt_level) { ) } -create_ozone_table <- function(data) { +create_ozone_table <- function(data, airzone) { overall_color <- mgmt_level_color(max(data$mgmt_level)) overall_text <- text_color(max(data$mgmt_level)) @@ -278,7 +278,7 @@ create_ozone_table <- function(data) { kable_styling(latex_options = "hold_position") } -create_pm25_table <- function(data) { +create_pm25_table <- function(data, airzone) { ## Split the combined results and join to get separate columns for the metrics joined <- data %>% select( @@ -339,9 +339,9 @@ create_pm25_table <- function(data) { "Summary of PM$_{2.5}$ concentrations as measured and air zone management levels for the ", airzone, " Air Zone (based on ", - min(ozone$min_year, na.rm = TRUE), + min(data$min_year, na.rm = TRUE), "-", - max(ozone$max_year, na.rm = TRUE), + max(data$max_year, na.rm = TRUE), " data). All concentrations in $\\mu$g/m$^3$." ) ) %>% From b08d2a4169ff353b12bdf7b3affbab969d02bb6c Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 09:50:22 -0700 Subject: [PATCH 22/52] Add caption to management framework table --- 00_summary_report.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index e3f2296..6f51190 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -17,10 +17,11 @@ mainfont: Arial ## Air zone map -## Table 1. Air zone management framework for ground-level ozone and PM2.5. The CAAQS define the upper threshold, separating the "red" and "orange" management levels. + ```{=latex} \begin{table}[h] +\caption{Air zone management framework for ground-level ozone and PM$_{2.5}$. The CAAQS define the upper threshold, separating the "red" and "orange" management levels.} \begin{tabular}{|l|c|c|c|c|c|c|} \hline \rowcolor[HTML]{D9D9D9} @@ -42,7 +43,6 @@ Green & \multicolumn{6}{c|}{\cellcolor[HTML]{A6D96A}Actions for Keeping Clean Ar \end{table} ``` - ## Air zone summary plot for 24-hour average and annual average PM2.5, and 8-hour average ozone ## Air zone/station CAAQS mgmt level map and achievement chart for both PM2.5 and ozone. From 015f6fab29736db391f4237c3454d9e29e9592ac Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 10:55:24 -0700 Subject: [PATCH 23/52] Add ozone plots to summary report --- 00_summary_report.Rmd | 26 +++++++++++++++++++++++--- render_air_zone_reports.R | 1 + 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index 6f51190..16a063c 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -13,9 +13,17 @@ output: md_extensions: +raw_attribute latex_engine: lualatex mainfont: Arial +params: + ozone_summary_plot: !r ambient_summary_plot + ozone_caaqs_mgmt_map: !r management_map + ozone_caaqs_mgmt_chart: !r management_chart --- -## Air zone map +```{r setup, echo = FALSE} +knitr::opts_chunk$set(echo = FALSE) +``` + + @@ -43,6 +51,18 @@ Green & \multicolumn{6}{c|}{\cellcolor[HTML]{A6D96A}Actions for Keeping Clean Ar \end{table} ``` -## Air zone summary plot for 24-hour average and annual average PM2.5, and 8-hour average ozone + + +```{r ozone_summary_plot, echo = FALSE, fig.cap = "Air zone summary plot for 8-hour average ozone"} +params$ozone_summary_plot +``` + +```{r ozone_caaqs_mgmt_map, fig.cap = "Management level map for ozone."} +params$ozone_caaqs_mgmt_map +``` + +```{r ozone_caaqs_mgmt_chart, fig.cap = "Management level achievement chart for ozone."} +params$ozone_caaqs_mgmt_chart +``` -## Air zone/station CAAQS mgmt level map and achievement chart for both PM2.5 and ozone. + diff --git a/render_air_zone_reports.R b/render_air_zone_reports.R index 6452814..ff77afb 100644 --- a/render_air_zone_reports.R +++ b/render_air_zone_reports.R @@ -11,6 +11,7 @@ pm25_dir <- "../pm25-caaqs-indicator/" load(file.path(ozone_dir, "tmp/ozone_clean.RData")) load(file.path(ozone_dir, "tmp/analysed.RData")) +load(file.path(ozone_dir, "tmp/plots.RData")) load(file.path(pm25_dir, "tmp/pm25_clean.rda")) load(file.path(pm25_dir, "tmp/analysed.RData")) From 6b9287d31f587dcd8b5d665966632510e6d52241 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 12:00:53 -0700 Subject: [PATCH 24/52] Set chunk options for the whole document --- 01_northeast.Rmd | 16 +++++++++------- 02_central_interior.Rmd | 16 +++++++++------- 03_southern_interior.Rmd | 16 +++++++++------- 04_lower_fraser_valley.Rmd | 16 +++++++++------- 05_georgia_strait.Rmd | 16 +++++++++------- 06_coastal.Rmd | 16 +++++++++------- 6 files changed, 54 insertions(+), 42 deletions(-) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 997c0bc..f713dbe 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -24,7 +24,9 @@ params: -```{r setup, echo = FALSE, message = FALSE, include = FALSE} +```{r setup, include = FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) + ## Load packages source("components/packages.R") @@ -49,36 +51,36 @@ source("components/functions.R") -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{r table-2, echo = FALSE} +```{r table-2} create_ozone_table(ozone, airzone) ``` -```{r table-3, echo = FALSE} +```{r table-3} create_pm25_table(pm25, airzone) ``` diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 3907aa7..a808d34 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -24,7 +24,9 @@ params: -```{r setup, echo = FALSE, message = FALSE, include = FALSE} +```{r setup, include = FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) + ## Load packages source("components/packages.R") @@ -49,36 +51,36 @@ source("components/functions.R") -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{r table-2, echo = FALSE} +```{r table-2} create_ozone_table(ozone, airzone) ``` -```{r table-3, echo = FALSE} +```{r table-3} create_pm25_table(pm25, airzone) ``` diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index e85a974..0d671e8 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -24,7 +24,9 @@ params: -```{r setup, echo = FALSE, message = FALSE, include = FALSE} +```{r setup, include = FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) + ## Load packages source("components/packages.R") @@ -49,36 +51,36 @@ source("components/functions.R") -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{r table-2, echo = FALSE} +```{r table-2} create_ozone_table(ozone, airzone) ``` -```{r table-3, echo = FALSE} +```{r table-3} create_pm25_table(pm25, airzone) ``` diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index f35fa9a..2bccdd8 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -24,7 +24,9 @@ params: -```{r setup, echo = FALSE, message = FALSE, include = FALSE} +```{r setup, include = FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) + ## Load packages source("components/packages.R") @@ -49,36 +51,36 @@ source("components/functions.R") -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{r table-2, echo = FALSE} +```{r table-2} create_ozone_table(ozone, airzone) ``` -```{r table-3, echo = FALSE} +```{r table-3} create_pm25_table(pm25, airzone) ``` diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 7defb95..63ce447 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -25,7 +25,9 @@ params: -```{r setup, echo = FALSE, message = FALSE, include = FALSE} +```{r setup, include = FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) + ## Load packages source("components/packages.R") @@ -50,36 +52,36 @@ source("components/functions.R") -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{r table-2, echo = FALSE} +```{r table-2} create_ozone_table(ozone, airzone) ``` -```{r table-3, echo = FALSE} +```{r table-3} create_pm25_table(pm25, airzone) ``` diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 9fb6e0b..d2d0dc0 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -24,7 +24,9 @@ params: -```{r setup, echo = FALSE, message = FALSE, include = FALSE} +```{r setup, include = FALSE} +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) + ## Load packages source("components/packages.R") @@ -49,36 +51,36 @@ source("components/functions.R") -```{r ozone-by-station, echo = FALSE, warn = FALSE, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` -```{r annual-ozone, echo = FALSE, warning = FALSE, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{r pm25-by-station, echo = FALSE, warning = FALSE, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` -```{r annual-pm25, echo = FALSE, warning = FALSE, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{r table-2, echo = FALSE} +```{r table-2} create_ozone_table(ozone, airzone) ``` -```{r table-3, echo = FALSE} +```{r table-3} create_pm25_table(pm25, airzone) ``` From 2c85bb5f2ee31285232b7e7e121a49a2fcb255da Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 17:25:26 -0700 Subject: [PATCH 25/52] Extract latex header to separate file --- 01_northeast.Rmd | 12 +++--------- 02_central_interior.Rmd | 12 +++--------- 03_southern_interior.Rmd | 12 +++--------- 04_lower_fraser_valley.Rmd | 12 +++--------- 05_georgia_strait.Rmd | 11 ++--------- 06_coastal.Rmd | 12 +++--------- components/header.tex | 9 +++++++++ 7 files changed, 26 insertions(+), 54 deletions(-) create mode 100644 components/header.tex diff --git a/01_northeast.Rmd b/01_northeast.Rmd index f713dbe..4d8e0fe 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -1,17 +1,11 @@ --- title: Northeast Air Zone -header-includes: - - \usepackage{booktabs} - - \usepackage{makecell} - - \usepackage{multirow} - - \usepackage{colortbl} - - \usepackage{xcolor} - - \usepackage{textcomp} - - \usepackage{float} - - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex + fig_caption: true + includes: + in_header: components/header.tex mainfont: Arial params: ozone: !r ozone_caaqs_results diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index a808d34..86e90b6 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -1,17 +1,11 @@ --- title: Central Interior Air Zone -header-includes: - - \usepackage{booktabs} - - \usepackage{makecell} - - \usepackage{multirow} - - \usepackage{colortbl} - - \usepackage{xcolor} - - \usepackage{textcomp} - - \usepackage{float} - - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex + fig_caption: true + includes: + in_header: components/header.tex mainfont: Arial params: ozone: !r ozone_caaqs_results diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 0d671e8..c9cb551 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -1,17 +1,11 @@ --- title: Southern Interior Air Zone -header-includes: - - \usepackage{booktabs} - - \usepackage{makecell} - - \usepackage{multirow} - - \usepackage{colortbl} - - \usepackage{xcolor} - - \usepackage{textcomp} - - \usepackage{float} - - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex + fig_caption: true + includes: + in_header: components/header.tex mainfont: Arial params: ozone: !r ozone_caaqs_results diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 2bccdd8..281919f 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -1,17 +1,11 @@ --- title: Lower Fraser Valley Air Zone -header-includes: - - \usepackage{booktabs} - - \usepackage{makecell} - - \usepackage{multirow} - - \usepackage{colortbl} - - \usepackage{xcolor} - - \usepackage{textcomp} - - \usepackage{float} - - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex + fig_caption: true + includes: + in_header: components/header.tex mainfont: Arial params: ozone: !r ozone_caaqs_results diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 63ce447..6d916d1 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -1,18 +1,11 @@ --- title: Georgia Strait Air Zone -header-includes: - - \usepackage{booktabs} - - \usepackage{makecell} - - \usepackage{multirow} - - \usepackage{colortbl} - - \usepackage{xcolor} - - \usepackage{textcomp} - - \usepackage{float} - - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex fig_caption: true + includes: + in_header: components/header.tex mainfont: Arial params: ozone: !r ozone_caaqs_results diff --git a/06_coastal.Rmd b/06_coastal.Rmd index d2d0dc0..40d53cd 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -1,17 +1,11 @@ --- title: Coastal Air Zone -header-includes: - - \usepackage{booktabs} - - \usepackage{makecell} - - \usepackage{multirow} - - \usepackage{colortbl} - - \usepackage{xcolor} - - \usepackage{textcomp} - - \usepackage{float} - - \floatplacement{figure}{H} output: pdf_document: latex_engine: lualatex + fig_caption: true + includes: + in_header: components/header.tex mainfont: Arial params: ozone: !r ozone_caaqs_results diff --git a/components/header.tex b/components/header.tex new file mode 100644 index 0000000..04796c2 --- /dev/null +++ b/components/header.tex @@ -0,0 +1,9 @@ +\usepackage{floatrow} +\usepackage{booktabs} +\usepackage{makecell} +\usepackage{multirow} +\usepackage{colortbl} +\usepackage{xcolor} +\usepackage{textcomp} +\floatplacement{figure}{H} +\usepackage[margin=1cm]{caption} From 9d556a35bbae5636123f976eba67bd3f8af27e86 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 18:25:40 -0700 Subject: [PATCH 26/52] Move PM CAAQS annotation outside plot --- components/functions.R | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/components/functions.R b/components/functions.R index e2c1aef..86cb052 100644 --- a/components/functions.R +++ b/components/functions.R @@ -76,7 +76,13 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { geom_bar(stat = "identity", aes(fill = instrument_type)) + geom_text(aes(label = metric_value_ambient), nudge_y = 2) + geom_hline(yintercept = caaqs_24h, color = "red", lty = "dashed") + - annotate(geom = "text", label = "24h CAAQS", x = 2, y = caaqs_24h + 9) + + annotation_custom( + grob = textGrob("24h CAAQS", vjust = 1), + xmin = length(unique(pm25_annual$station_name)) + 0.8, + xmax = length(unique(pm25_annual$station_name)) + 0.8, + ymin = caaqs_24h, + ymax = caaqs_24h + ) + scale_y_continuous(limits = c(0, max(ymax_pm25_24h + 3, caaqs_24h + 5))) + scale_fill_manual(values = c(FEM = "#4A8CE1", TEOM = "#070C72")) + labs( @@ -85,18 +91,27 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { fill = "Instrument", title = "24-Hr PM2.5" ) + - coord_flip() + - theme(plot.title = element_text(hjust = 0.5)) + theme(plot.margin = unit(c(2, 1, 1, 1), "lines")) + + coord_flip(clip = "off") ## Annual plot_annual <- ggplot( pm25_annual, - aes(x = reorder(station_name, metric_value_ambient, sum), y = metric_value_ambient) + aes( + x = reorder(station_name, metric_value_ambient, sum), + y = metric_value_ambient + ) ) + geom_bar(stat = "identity", aes(fill = instrument_type)) + geom_text(aes(label = metric_value_ambient), nudge_y = 0.8) + geom_hline(yintercept = caaqs_annual, color = "red", lty = "dashed") + - annotate(geom = "text", label = "Annual\nCAAQS", x = 2, y = caaqs_annual + 2) + + annotation_custom( + grob = textGrob("Annual\nCAAQS", vjust = 1), + xmin = length(unique(pm25_annual$station_name)) + 1.1, + xmax = length(unique(pm25_annual$station_name)) + 1.1, + ymin = caaqs_annual, + ymax = caaqs_annual + ) + scale_y_continuous(limits = c(0, max(ymax_pm25_annual + 1, caaqs_annual + 5))) + scale_fill_manual(values = c(FEM = "#81EDA1", TEOM = "#4A875B")) + labs( @@ -105,9 +120,8 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { fill = "Instrument", title = "Annual PM2.5" ) + - coord_flip() + - theme(plot.title = element_text(hjust = 0.5)) - + theme(plot.margin = unit(c(2, 1, 1, 1), "lines")) + + coord_flip(clip = "off") plot_24h / plot_annual } From 38d124c6fce8ac97a7e4759159b961880fcc7164 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 20:50:17 -0700 Subject: [PATCH 27/52] Customize figure sizes --- 01_northeast.Rmd | 4 +-- 02_central_interior.Rmd | 4 +-- 03_southern_interior.Rmd | 4 +-- 04_lower_fraser_valley.Rmd | 4 +-- 05_georgia_strait.Rmd | 7 ++-- 06_coastal.Rmd | 4 +-- components/functions.R | 65 ++++++++++++++++++++++++++------------ components/header.tex | 2 +- components/packages.R | 4 +++ 9 files changed, 63 insertions(+), 35 deletions(-) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 4d8e0fe..5107125 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -45,7 +45,7 @@ source("components/functions.R") -```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.5, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` @@ -57,7 +57,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) -```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.width = 5, fig.asp = 0.5, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 86e90b6..51af7e6 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -45,7 +45,7 @@ source("components/functions.R") -```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.55, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` @@ -57,7 +57,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) -```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.width = 5, fig.asp = 0.85, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index c9cb551..dd7a21b 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -45,7 +45,7 @@ source("components/functions.R") -```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.55, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` @@ -57,7 +57,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) -```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.width = 5, fig.asp = 0.8, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 281919f..926029f 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -45,7 +45,7 @@ source("components/functions.R") -```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.width = 4.5, fig.asp = 1.3, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` @@ -57,7 +57,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) -```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.width = 5, fig.asp = 1.8, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 6d916d1..71c2895 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -19,7 +19,7 @@ params: ```{r setup, include = FALSE} -knitr::opts_chunk$set(echo = FALSE, warning = FALSE) +knitr::opts_chunk$set(echo = FALSE, warning = FALSE, dev = "pdf") ## Load packages source("components/packages.R") @@ -45,8 +45,9 @@ source("components/functions.R") -```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) + ``` @@ -57,7 +58,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) -```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.width = 5, fig.asp = 1.2, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 40d53cd..723c48b 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -45,7 +45,7 @@ source("components/functions.R") -```{r ozone-by-station, fig.align = "center", fig.asp = 1, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.3, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` @@ -57,7 +57,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) -```{r pm25-by-station, fig.asp = 1.3, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, fig.width = 5, fig.asp = 0.5, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` diff --git a/components/functions.R b/components/functions.R index 86cb052..4ca119a 100644 --- a/components/functions.R +++ b/components/functions.R @@ -18,12 +18,18 @@ plot_ozone_by_station <- function(data, airzone, caaqs = 63) { ) ) + geom_bar(stat = "identity", fill = "#A488F7") + - geom_text(aes(label = metric_value_ambient), nudge_y = 2) + + geom_text(aes(label = metric_value_ambient), nudge_y = 3, size = 2.82) + geom_hline(yintercept = caaqs, color = "red", lty = "dashed") + - annotate(geom = "text", label = "CAAQS", x = 1, y = caaqs + 5) + + annotate( + geom = "text", + label = "CAAQS", + x = 1, + y = caaqs + 7, + size = 2.82 + ) + ## Set y scale to ensure CAAQS text doesn't get cut off (but if the max ozone - ## value is greater, take that value instead + 5 for padding) - scale_y_continuous(limits = c(0, max(ymax_oz + 5, caaqs + 8))) + + ## value is greater, take that value instead + 10 for padding) + scale_y_continuous(limits = c(0, max(ymax_oz + 10, caaqs + 10))) + labs( x = "Station", y = "Ozone concentration (ppb)", @@ -44,7 +50,13 @@ plot_ozone_station_timeseries <- function(data, airzone, caaqs = 63) { ggplot(data, aes(x = year, y = ann_4th_highest, colour = station_name)) + geom_line() + geom_hline(yintercept = caaqs, color = "red", lty = "dashed") + - annotate(geom = "text", label = "CAAQS", x = 2016, y = caaqs + 5) + + annotate( + geom = "text", + label = "CAAQS", + x = 2016, + y = caaqs + 5, + size = 2.82 + ) + labs( x = "Year", y = "Ozone concentration (ppb)", @@ -71,15 +83,18 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ## 24 hour plot_24h <- ggplot( pm25_24h, - aes(x = reorder(station_name, metric_value_ambient, sum), y = metric_value_ambient) + aes( + x = reorder(station_name, metric_value_ambient, sum), + y = metric_value_ambient + ) ) + geom_bar(stat = "identity", aes(fill = instrument_type)) + - geom_text(aes(label = metric_value_ambient), nudge_y = 2) + + geom_text(aes(label = metric_value_ambient), nudge_y = 2.5, size = 2.82) + geom_hline(yintercept = caaqs_24h, color = "red", lty = "dashed") + annotation_custom( - grob = textGrob("24h CAAQS", vjust = 1), - xmin = length(unique(pm25_annual$station_name)) + 0.8, - xmax = length(unique(pm25_annual$station_name)) + 0.8, + grob = textGrob("24h CAAQS", vjust = 1, gp = gpar(fontsize = 8)), + xmin = -0.35, + xmax = -0.35, ymin = caaqs_24h, ymax = caaqs_24h ) + @@ -91,7 +106,7 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { fill = "Instrument", title = "24-Hr PM2.5" ) + - theme(plot.margin = unit(c(2, 1, 1, 1), "lines")) + + theme(plot.margin = unit(c(2, 0, 0, 0), "lines")) + coord_flip(clip = "off") ## Annual @@ -103,16 +118,18 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ) ) + geom_bar(stat = "identity", aes(fill = instrument_type)) + - geom_text(aes(label = metric_value_ambient), nudge_y = 0.8) + + geom_text(aes(label = metric_value_ambient), nudge_y = 0.8, size = 2.82) + geom_hline(yintercept = caaqs_annual, color = "red", lty = "dashed") + - annotation_custom( - grob = textGrob("Annual\nCAAQS", vjust = 1), - xmin = length(unique(pm25_annual$station_name)) + 1.1, - xmax = length(unique(pm25_annual$station_name)) + 1.1, - ymin = caaqs_annual, - ymax = caaqs_annual + annotate( + geom = "text", + label = "Annual\nCAAQS", + x = 1, + y = caaqs_annual + 2, + size = 2.82 + ) + + scale_y_continuous( + limits = c(0, max(ymax_pm25_annual + 3, caaqs_annual + 6)) ) + - scale_y_continuous(limits = c(0, max(ymax_pm25_annual + 1, caaqs_annual + 5))) + scale_fill_manual(values = c(FEM = "#81EDA1", TEOM = "#4A875B")) + labs( x = NULL, @@ -120,7 +137,7 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { fill = "Instrument", title = "Annual PM2.5" ) + - theme(plot.margin = unit(c(2, 1, 1, 1), "lines")) + + theme(plot.margin = unit(c(2, 0, 0, 0), "lines")) + coord_flip(clip = "off") plot_24h / plot_annual @@ -136,7 +153,13 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { geom_line() + geom_point(aes(shape = instrument_type)) + geom_hline(yintercept = 10, color = "red", lty = "dashed") + - annotate(geom = "text", label = "CAAQS", x = 2016, y = caaqs_annual + 1) + + annotate( + geom = "text", + label = "CAAQS", + x = 2016, + y = caaqs_annual + 1, + size = 2.82 + ) + scale_x_continuous( breaks = function(x) floor(pretty(seq(min(x), max(x), by = 1))) ) + diff --git a/components/header.tex b/components/header.tex index 04796c2..d39b8ed 100644 --- a/components/header.tex +++ b/components/header.tex @@ -6,4 +6,4 @@ \usepackage{xcolor} \usepackage{textcomp} \floatplacement{figure}{H} -\usepackage[margin=1cm]{caption} +\usepackage[margin=1cm,font=normalsize]{caption} diff --git a/components/packages.R b/components/packages.R index 0c75e84..8e3770c 100644 --- a/components/packages.R +++ b/components/packages.R @@ -3,3 +3,7 @@ library("tidyverse") library("patchwork") library("kableExtra") library("rcaaqs") +library("grid") + +## Set theme for plots +theme_set(theme_grey(base_size = 10)) From a3adbd28e04761875d3e4549f119206f6e2ba082 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 21:18:57 -0700 Subject: [PATCH 28/52] Customize appearance of plots in summary report --- 00_summary_report.Rmd | 18 +++++++++++++----- components/functions.R | 11 +++++++++-- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index 16a063c..07b92be 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -21,6 +21,7 @@ params: ```{r setup, echo = FALSE} knitr::opts_chunk$set(echo = FALSE) +library("ggplot2") ``` @@ -53,16 +54,23 @@ Green & \multicolumn{6}{c|}{\cellcolor[HTML]{A6D96A}Actions for Keeping Clean Ar -```{r ozone_summary_plot, echo = FALSE, fig.cap = "Air zone summary plot for 8-hour average ozone"} -params$ozone_summary_plot +```{r ozone_summary_plot, fig.width = 4, fig.asp = 1.4, fig.cap = "Air zone summary plot for 8-hour average ozone"} +params$ozone_summary_plot + + theme(text = element_text(size = 8)) ``` -```{r ozone_caaqs_mgmt_map, fig.cap = "Management level map for ozone."} +```{r ozone_caaqs_mgmt_map, fig.width = 3, fig.asp = 1, fig.cap = "Management level map for ozone."} params$ozone_caaqs_mgmt_map ``` -```{r ozone_caaqs_mgmt_chart, fig.cap = "Management level achievement chart for ozone."} -params$ozone_caaqs_mgmt_chart +```{r ozone_caaqs_mgmt_chart, fig.width = 4, fig.asp = 1, fig.cap = "Management level achievement chart for ozone."} +params$ozone_caaqs_mgmt_chart + + theme( + axis.text = element_text(size = 8), + axis.title = element_text(size = 10), + legend.text = element_text(size = 8), + legend.title = element_text(size = 10) + ) ``` diff --git a/components/functions.R b/components/functions.R index 4ca119a..9d50482 100644 --- a/components/functions.R +++ b/components/functions.R @@ -106,7 +106,10 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { fill = "Instrument", title = "24-Hr PM2.5" ) + - theme(plot.margin = unit(c(2, 0, 0, 0), "lines")) + + theme( + plot.margin = unit(c(2, 0, 0, 0), "lines"), + plot.title = element_text(hjust = 0.5) + ) + coord_flip(clip = "off") ## Annual @@ -137,8 +140,12 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { fill = "Instrument", title = "Annual PM2.5" ) + - theme(plot.margin = unit(c(2, 0, 0, 0), "lines")) + + theme( + plot.margin = unit(c(2, 0, 0, 0), "lines"), + plot.title = element_text(hjust = 0.5) + ) + coord_flip(clip = "off") + plot_24h / plot_annual } From 9316363132759c886beb99306056e820dcaa3cd8 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 21:19:10 -0700 Subject: [PATCH 29/52] Add lorem ipsum placeholder text to summary report --- 00_summary_report.Rmd | 75 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index 07b92be..e109d8a 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -24,12 +24,54 @@ knitr::opts_chunk$set(echo = FALSE) library("ggplot2") ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + +## Additional section 1 + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + + + ```{=latex} \begin{table}[h] +\centering \caption{Air zone management framework for ground-level ozone and PM$_{2.5}$. The CAAQS define the upper threshold, separating the "red" and "orange" management levels.} \begin{tabular}{|l|c|c|c|c|c|c|} \hline @@ -50,8 +92,25 @@ Threshold & \multicolumn{2}{c|}{50} & \multicolumn{2}{c|}{4} & \multicolumn{2}{c Green & \multicolumn{6}{c|}{\cellcolor[HTML]{A6D96A}Actions for Keeping Clean Areas Clean} \\ \hline \end{tabular} \end{table} + ``` +## Additional section 2 + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + + ```{r ozone_summary_plot, fig.width = 4, fig.asp = 1.4, fig.cap = "Air zone summary plot for 8-hour average ozone"} @@ -73,4 +132,20 @@ params$ozone_caaqs_mgmt_chart + ) ``` +## Addtional section 3 + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + + From cec329b92de40573c6b30356dd4aec6dc2cd1233 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 21:53:00 -0700 Subject: [PATCH 30/52] Add instructions to readme --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index d733500..253196a 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,24 @@ Creation of Air Zone reports for reporting achievement of Canadian Ambient Air Q ### Usage +These reports depend on outputs from the [Ozone CAAQS Analysis](https://github.com/bcgov/ozone-caaqs-indicator/) and [Fine Particulate Matter CAAQS Analysis](https://github.com/bcgov/pm25-caaqs-indicator). To get started: + +* Clone these repositories +* Check out the `update-2018` branch +* Run the analysis scripts in each repository (or at least number 01-04) + +Then, in a *clean* R session, run the `render_airzone_reports.R` script in this +repository. It is important to run this script in a clean R session, and not the +one in which you ran the ozone and PM2.5 analyses. Those analyses create some +objects with the same names, which will create problems when rendering the +reports. `render_airzone_reports.R` loads only the objects it needs. + #### Example +```r +source("render_airzone_reports.R") +``` + ### Project Status This project is under active development From 37c6bd478b1cf64d780f4d66823dafecf1752c40 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 22:31:16 -0700 Subject: [PATCH 31/52] Add PM2.5 plots to summary report --- 00_summary_report.Rmd | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index e109d8a..53f14af 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -15,8 +15,11 @@ output: mainfont: Arial params: ozone_summary_plot: !r ambient_summary_plot - ozone_caaqs_mgmt_map: !r management_map + ozone_caaqs_mgmt_map: !r management_map_pdf ozone_caaqs_mgmt_chart: !r management_chart + pm25_summary_plot: !r pm_ambient_summary_plot + pm25_caaqs_mgmt_map: !r pm_mgmt_map + pm25_caaqs_mgmt_chart: !r pm_mgmt_chart --- ```{r setup, echo = FALSE} @@ -118,7 +121,7 @@ params$ozone_summary_plot + theme(text = element_text(size = 8)) ``` -```{r ozone_caaqs_mgmt_map, fig.width = 3, fig.asp = 1, fig.cap = "Management level map for ozone."} +```{r ozone_caaqs_mgmt_map, fig.width = 5, fig.asp = 1, fig.cap = "Management level map for ozone."} params$ozone_caaqs_mgmt_map ``` @@ -147,5 +150,27 @@ sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + - +```{r pm25_summary_plot, fig.width = 4, fig.asp = 1.4, fig.cap = "Air zone summary plot for annual and 24h PM$_{2.5}$"} +params$pm25_summary_plot + + theme(text = element_text(size = 8)) +``` + +```{r pm25_caaqs_mgmt_map, fig.width = 5, fig.asp = 1, fig.cap = "Management level map for PM$_{2.5}$."} +params$pm25_caaqs_mgmt_map +``` + +```{r pm25_caaqs_mgmt_chart, fig.width = 4, fig.asp = 1.4, fig.cap = "Management level achievement chart for PM$_{2.5}$."} +params$pm25_caaqs_mgmt_chart + + theme( + axis.text = element_text(size = 8), + axis.title = element_text(size = 10), + legend.text = element_text(size = 8), + legend.title = element_text(size = 10), + ## Make strips a bit smaller + strip.text = element_text(size = 8, margin = margin(1, 0, 1, 0)), + # Add a little space so the last axis label doesn't get cut off + plot.margin = unit(c(0, 1, 0, 0), "cm") + ) +``` From 8b6fb8747838928c0525c2ece957c877b3b48f77 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 22:32:59 -0700 Subject: [PATCH 32/52] Load pm25 plots Depends on changes in this branch: https://github.com/bcgov/pm25-caaqs-indicator/pull/8 --- render_air_zone_reports.R | 1 + 1 file changed, 1 insertion(+) diff --git a/render_air_zone_reports.R b/render_air_zone_reports.R index ff77afb..9802581 100644 --- a/render_air_zone_reports.R +++ b/render_air_zone_reports.R @@ -15,6 +15,7 @@ load(file.path(ozone_dir, "tmp/plots.RData")) load(file.path(pm25_dir, "tmp/pm25_clean.rda")) load(file.path(pm25_dir, "tmp/analysed.RData")) +load(file.path(pm25_dir, "tmp/plots.RData")) ## Render all reports, named 01_northeast.Rmd, 02_central_interior.Rmd, etc. ## using default parameters From 3f6c34900a387e2bf26dd7af96d2fd145732f8ac Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 17 Mar 2019 23:07:40 -0700 Subject: [PATCH 33/52] Attempt figure wrapping --- 05_georgia_strait.Rmd | 137 +++++++++++++++++++++++++++++++++++++++++- components/header.tex | 1 + placeholdermap.png | Bin 0 -> 508474 bytes 3 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 placeholdermap.png diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 71c2895..3f8d494 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -6,6 +6,7 @@ output: fig_caption: true includes: in_header: components/header.tex + keep_tex: true mainfont: Arial params: ozone: !r ozone_caaqs_results @@ -43,39 +44,171 @@ annual_pm25 <- params$annual_pm25 %>% source("components/functions.R") ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +```{=latex} +\begin{wrapfigure}{R}{.6\textwidth} +``` + +```{r airzone-map, fig.align = "center", out.width = "90%", fig.cap = "Map of air zone"} +knitr::include_graphics("placeholdermap.png") +``` + +```{=latex} +\end{wrapfigure} +``` + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + +```{=latex} +\newpage +\begin{wrapfigure}{R}{.6\textwidth} +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) +``` +```{=latex} +\end{wrapfigure} ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + -```{r annual-ozone, fig.cap = annual_ozone_cap(annual_ozone)} +```{=latex} +\begin{wrapfigure}{C}{\textwidth} +``` + +```{r annual-ozone, fig.width = 6, fig.cap = annual_ozone_cap(annual_ozone)} plot_ozone_station_timeseries(annual_ozone, airzone) ``` +```{=latex} +\end{wrapfigure} +``` + +```{=latex} +\newpage +\begin{wrapfigure}{R}{.6\textwidth} +``` + ```{r pm25-by-station, fig.width = 5, fig.asp = 1.2, fig.cap = pm25_by_station_cap(airzone, pm25)} plot_pm25_by_station(pm25) ``` +```{=latex} +\end{wrapfigure} +``` + +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + + -```{r annual-pm25, fig.cap = annual_pm25_cap(annual_pm25)} +```{=latex} +\begin{wrapfigure}{C}{\textwidth} +``` + +```{r annual-pm25, fig.width = 6, fig.cap = annual_pm25_cap(annual_pm25)} plot_pm25_station_timeseries(annual_pm25, airzone) ``` +```{=latex} +\end{wrapfigure} +``` + +```{=latex} +\newpage +``` + +## \newpage Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + ```{r table-2} create_ozone_table(ozone, airzone) ``` +```{=latex} +\newpage +``` + ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. diff --git a/components/header.tex b/components/header.tex index d39b8ed..b573b75 100644 --- a/components/header.tex +++ b/components/header.tex @@ -6,4 +6,5 @@ \usepackage{xcolor} \usepackage{textcomp} \floatplacement{figure}{H} +\usepackage{wrapfig} \usepackage[margin=1cm,font=normalsize]{caption} diff --git a/placeholdermap.png b/placeholdermap.png new file mode 100644 index 0000000000000000000000000000000000000000..0a19800854d07f9651566ebc2ddff9dbc9d45af3 GIT binary patch literal 508474 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 z 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 Y!bpjZ5$#&LN2rgyw2D-%#K%wn0|2^;9smFU literal 0 HcmV?d00001 From b2094537ab633a0836d0a8286ca5e675f37d39e3 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 19 Mar 2019 22:03:04 -0700 Subject: [PATCH 34/52] Combine functions.R and packages.R No real reason to have them separate --- 01_northeast.Rmd | 7 ++----- 02_central_interior.Rmd | 9 +++------ 03_southern_interior.Rmd | 7 ++----- 04_lower_fraser_valley.Rmd | 7 ++----- 05_georgia_strait.Rmd | 7 ++----- 06_coastal.Rmd | 9 +++------ components/functions.R | 13 ++++++++++++- components/packages.R | 9 --------- 8 files changed, 26 insertions(+), 42 deletions(-) delete mode 100644 components/packages.R diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 5107125..1e32ed2 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -21,8 +21,8 @@ params: ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE) -## Load packages -source("components/packages.R") +## Load packages, functions, etc. +source("components/functions.R") ## Filter data to air zone airzone <- params$airzone @@ -38,9 +38,6 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) - -## Source plotting and table functions -source("components/functions.R") ``` diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 51af7e6..5a100e1 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -21,9 +21,9 @@ params: ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE) -## Load packages -source("components/packages.R") - +## Load packages, functions, etc. +source("components/functions.R") + ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) @@ -38,9 +38,6 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) - -## Source plotting and table functions -source("components/functions.R") ``` diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index dd7a21b..1247852 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -21,8 +21,8 @@ params: ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE) -## Load packages -source("components/packages.R") +## Load packages, functions, etc. +source("components/functions.R") ## Filter data to air zone airzone <- params$airzone @@ -38,9 +38,6 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) - -## Source plotting and table functions -source("components/functions.R") ``` diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 926029f..8807677 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -21,8 +21,8 @@ params: ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE) -## Load packages -source("components/packages.R") +## Load packages, functions, etc. +source("components/functions.R") ## Filter data to air zone airzone <- params$airzone @@ -38,9 +38,6 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) - -## Source plotting and table functions -source("components/functions.R") ``` diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 71c2895..81dc847 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -21,8 +21,8 @@ params: ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE, dev = "pdf") -## Load packages -source("components/packages.R") +## Load packages, functions, etc. +source("components/functions.R") ## Filter data to air zone airzone <- params$airzone @@ -38,9 +38,6 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) - -## Source plotting and table functions -source("components/functions.R") ``` diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 723c48b..9442f8b 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -21,9 +21,9 @@ params: ```{r setup, include = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE) -## Load packages -source("components/packages.R") - +## Load packages, functions, etc. +source("components/functions.R") + ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) @@ -38,9 +38,6 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) - -## Source plotting and table functions -source("components/functions.R") ``` diff --git a/components/functions.R b/components/functions.R index 9d50482..567678d 100644 --- a/components/functions.R +++ b/components/functions.R @@ -2,6 +2,16 @@ #### Functions to generate results for air zone reports #### ############################################################## +## Load packages +library("tidyverse") +library("patchwork") +library("kableExtra") +library("rcaaqs") +library("grid") + +## Set theme for plots +theme_set(theme_grey(base_size = 10)) + ## Plots ----------------------------------------------------- ## Ozone concentration based on annual 4th highest daily 8-hour maxima, 3 year @@ -142,7 +152,8 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ) + theme( plot.margin = unit(c(2, 0, 0, 0), "lines"), - plot.title = element_text(hjust = 0.5) + plot.title = element_text(hjust = 0.5), + axis.title.x = element_text(margin = margin(t = 20)) ) + coord_flip(clip = "off") diff --git a/components/packages.R b/components/packages.R deleted file mode 100644 index 8e3770c..0000000 --- a/components/packages.R +++ /dev/null @@ -1,9 +0,0 @@ -## Load packages -library("tidyverse") -library("patchwork") -library("kableExtra") -library("rcaaqs") -library("grid") - -## Set theme for plots -theme_set(theme_grey(base_size = 10)) From 5ea822fbc1a8d19b2753c6bdebcc2681df623ec7 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 19 Mar 2019 22:27:57 -0700 Subject: [PATCH 35/52] Add summary map --- 00_summary_report.Rmd | 48 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index 53f14af..1ee5b10 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -8,6 +8,8 @@ header-includes: - \usepackage{multirow} - \usepackage{colortbl} - \usepackage{amsmath} + - \usepackage{float} + - \floatplacement{figure}{H} output: pdf_document: md_extensions: +raw_attribute @@ -25,6 +27,8 @@ params: ```{r setup, echo = FALSE} knitr::opts_chunk$set(echo = FALSE) library("ggplot2") +library("bcmaps") +library("sf") ``` ## Introduction @@ -43,7 +47,49 @@ torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. - +```{r air-zones-map, fig.width = 4, fig.asp = 1, fig.cap = "Air zones and major population centers of British Columbia."} +## Cities to show on map +cities <- c("Victoria", "Vancouver", "Kamloops", "Prince George", "Fort St. John") +cities_to_plot <- bc_cities() %>% + filter(NAME %in% cities) + +## Where to place labels for air zones and cities (not their actual locations; +## chosen to fit nicely on the plot) +airzone_labels <- tribble( + ~name, ~x, ~y, + "Coastal", 730000, 710000, + "Northeast", 1150000, 1550000, + "Northwest", 825000, 1460000, + "Central\nInterior", 1050000, 1008000, + "Southern\nInterior", 1600000, 630000, + "Georgia Strait", 1200000, 340000, + "Lower Fraser Valley", 1550000, 420000 +) + +cities <- tribble( + ~name, ~x, ~y, + "Victoria", 1130000, 410000, + "Vancouver", 1290000, 510000, + "Kamloops", 1350000, 680000, + "Prince\nGeorge", 1300000, 930000, + "Fort\nSt. John", 1320000, 1200000 +) + +ggplot() + + geom_sf(data = airzones(), aes(fill = Airzone), colour = "grey50") + + geom_sf(data = bc_bound(), fill = NA, colour = "grey50") + + geom_sf(data = cities_to_plot) + + geom_text(data = airzone_labels, aes(x, y, label = name), size = 4) + + geom_text(data = cities, aes(x, y, label = name), size = 2) + + scale_fill_brewer(palette = "Set3") + + coord_sf(datum = NA) + + labs(title = "Air Zones of British Columbia") + + theme_void() + + theme( + legend.position = "none", + plot.title = element_text(hjust = 0.5) + ) +``` ## Additional section 1 From 57b801fa1d2db152d9713ee9d4736f0c39962913 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 19 Mar 2019 23:21:36 -0700 Subject: [PATCH 36/52] Rmd setup tweaks --- 00_summary_report.Rmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index 1ee5b10..d3f74f3 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -14,6 +14,7 @@ output: pdf_document: md_extensions: +raw_attribute latex_engine: lualatex + fig_caption: true mainfont: Arial params: ozone_summary_plot: !r ambient_summary_plot @@ -25,7 +26,7 @@ params: --- ```{r setup, echo = FALSE} -knitr::opts_chunk$set(echo = FALSE) +knitr::opts_chunk$set(echo = FALSE, warning = FALSE) library("ggplot2") library("bcmaps") library("sf") From 2d33016c2ea659571d9f17c087a2b7fa82899b92 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 19 Mar 2019 23:21:47 -0700 Subject: [PATCH 37/52] Move Fort St. John label --- 00_summary_report.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index d3f74f3..5f8e85e 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -73,7 +73,7 @@ cities <- tribble( "Vancouver", 1290000, 510000, "Kamloops", 1350000, 680000, "Prince\nGeorge", 1300000, 930000, - "Fort\nSt. John", 1320000, 1200000 + "Fort\nSt. John", 1310000, 1200000 ) ggplot() + From 5d78652fbb4eae4ddf0c685c9ed9e86db831bfda Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 24 Mar 2019 20:56:37 -0700 Subject: [PATCH 38/52] Load tidyverse in summary report --- 00_summary_report.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/00_summary_report.Rmd b/00_summary_report.Rmd index 5f8e85e..7dc43ac 100644 --- a/00_summary_report.Rmd +++ b/00_summary_report.Rmd @@ -25,9 +25,9 @@ params: pm25_caaqs_mgmt_chart: !r pm_mgmt_chart --- -```{r setup, echo = FALSE} +```{r setup, echo = FALSE, message = FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE) -library("ggplot2") +library("tidyverse") library("bcmaps") library("sf") ``` From c12961657b7cda5ad74b8f5b1c589a74c4a0f9a2 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 24 Mar 2019 21:10:05 -0700 Subject: [PATCH 39/52] Create legend key for CAAQS line in plots --- components/functions.R | 75 ++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 35 deletions(-) diff --git a/components/functions.R b/components/functions.R index 567678d..856636e 100644 --- a/components/functions.R +++ b/components/functions.R @@ -29,13 +29,14 @@ plot_ozone_by_station <- function(data, airzone, caaqs = 63) { ) + geom_bar(stat = "identity", fill = "#A488F7") + geom_text(aes(label = metric_value_ambient), nudge_y = 3, size = 2.82) + - geom_hline(yintercept = caaqs, color = "red", lty = "dashed") + - annotate( - geom = "text", - label = "CAAQS", - x = 1, - y = caaqs + 7, - size = 2.82 + geom_hline( + aes(linetype = "CAAQS", yintercept = caaqs), + color = "red" + ) + + scale_linetype_manual( + name = NULL, + values = 2, + guide = guide_legend(override.aes = list(color = "red")) ) + ## Set y scale to ensure CAAQS text doesn't get cut off (but if the max ozone ## value is greater, take that value instead + 10 for padding) @@ -59,13 +60,14 @@ plot_ozone_station_timeseries <- function(data, airzone, caaqs = 63) { ggplot(data, aes(x = year, y = ann_4th_highest, colour = station_name)) + geom_line() + - geom_hline(yintercept = caaqs, color = "red", lty = "dashed") + - annotate( - geom = "text", - label = "CAAQS", - x = 2016, - y = caaqs + 5, - size = 2.82 + geom_hline( + aes(linetype = "CAAQS", yintercept = caaqs), + color = "red" + ) + + scale_linetype_manual( + name = NULL, + values = 2, + guide = guide_legend(override.aes = list(color = "red")) ) + labs( x = "Year", @@ -100,13 +102,14 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ) + geom_bar(stat = "identity", aes(fill = instrument_type)) + geom_text(aes(label = metric_value_ambient), nudge_y = 2.5, size = 2.82) + - geom_hline(yintercept = caaqs_24h, color = "red", lty = "dashed") + - annotation_custom( - grob = textGrob("24h CAAQS", vjust = 1, gp = gpar(fontsize = 8)), - xmin = -0.35, - xmax = -0.35, - ymin = caaqs_24h, - ymax = caaqs_24h + geom_hline( + aes(linetype = "24h CAAQS", yintercept = caaqs_24h), + color = "red" + ) + + scale_linetype_manual( + name = NULL, + values = 2, + guide = guide_legend(override.aes = list(color = "red")) ) + scale_y_continuous(limits = c(0, max(ymax_pm25_24h + 3, caaqs_24h + 5))) + scale_fill_manual(values = c(FEM = "#4A8CE1", TEOM = "#070C72")) + @@ -132,13 +135,14 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ) + geom_bar(stat = "identity", aes(fill = instrument_type)) + geom_text(aes(label = metric_value_ambient), nudge_y = 0.8, size = 2.82) + - geom_hline(yintercept = caaqs_annual, color = "red", lty = "dashed") + - annotate( - geom = "text", - label = "Annual\nCAAQS", - x = 1, - y = caaqs_annual + 2, - size = 2.82 + geom_hline( + aes(linetype = "Annual CAAQS", yintercept = caaqs_annual), + color = "red" + ) + + scale_linetype_manual( + name = NULL, + values = 2, + guide = guide_legend(override.aes = list(color = "red")) ) + scale_y_continuous( limits = c(0, max(ymax_pm25_annual + 3, caaqs_annual + 6)) @@ -170,13 +174,14 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { ggplot(data, aes(x = year, y = ann_avg, colour = station_name)) + geom_line() + geom_point(aes(shape = instrument_type)) + - geom_hline(yintercept = 10, color = "red", lty = "dashed") + - annotate( - geom = "text", - label = "CAAQS", - x = 2016, - y = caaqs_annual + 1, - size = 2.82 + geom_hline( + aes(linetype = "CAAQS", yintercept = caaqs_annual), + color = "red" + ) + + scale_linetype_manual( + name = NULL, + values = 2, + guide = guide_legend(override.aes = list(color = "red")) ) + scale_x_continuous( breaks = function(x) floor(pretty(seq(min(x), max(x), by = 1))) From d72dd4d43a90bf27e747d9c58b9e28e17fdc8555 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Sun, 24 Mar 2019 22:28:41 -0700 Subject: [PATCH 40/52] Add air zone maps to individual reports --- 01_northeast.Rmd | 6 ++++++ 02_central_interior.Rmd | 6 ++++++ 03_southern_interior.Rmd | 6 ++++++ 04_lower_fraser_valley.Rmd | 6 ++++++ 05_georgia_strait.Rmd | 6 ++++++ 06_coastal.Rmd | 6 ++++++ components/functions.R | 43 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 79 insertions(+) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 1e32ed2..2783de7 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -40,6 +40,12 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` + + +```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.5, fig.cap = ozone_by_station_cap(airzone, ozone)} diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 5a100e1..74c3a0a 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -40,6 +40,12 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` + + +```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.55, fig.cap = ozone_by_station_cap(airzone, ozone)} diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 1247852..362ff57 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -40,6 +40,12 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` + + +```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.55, fig.cap = ozone_by_station_cap(airzone, ozone)} diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 8807677..3f79b8b 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -40,6 +40,12 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` + + +```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 1.3, fig.cap = ozone_by_station_cap(airzone, ozone)} diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 81dc847..0a03801 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -40,6 +40,12 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` + + +```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone)} diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 9442f8b..07d375f 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -40,6 +40,12 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` + + +```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) +``` + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.3, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} diff --git a/components/functions.R b/components/functions.R index 856636e..6137a96 100644 --- a/components/functions.R +++ b/components/functions.R @@ -8,10 +8,53 @@ library("patchwork") library("kableExtra") library("rcaaqs") library("grid") +library("sf") +library("bcmaps") +library("ggrepel") ## Set theme for plots theme_set(theme_grey(base_size = 10)) +## Maps ------------------------------------------------------ + +airzone_map <- function(airzone) { + ## Get bounding box to set plot limits + box <- st_bbox(filter(airzones(), Airzone == airzone)) + + ## Top cities by population + top_pop <- bc_cities() %>% + st_join(airzones()) %>% + filter(Airzone == airzone) %>% + top_n(5, POP_2000) + + ggplot() + + ## Plot major boundaries, air zones, and top cities + geom_sf(data = bc_neighbours(), aes(fill = iso_a2)) + + geom_sf(data = airzones(), color = "red", fill = NA) + + geom_sf(data = top_pop) + + ## Label cities + geom_label_repel( + data = top_pop, + aes(label = NAME, geometry = geometry), + stat = "sf_coordinates", + min.segment.length = 0, + size = 2, + label.size = NA + ) + + coord_sf( + datum = NA, + xlim = c(box$xmin, box$xmax), + ylim = c(box$ymin, box$ymax) + ) + + scale_fill_manual( + name = NULL, + values = c(OC = "lightblue", CA = "white", US = "grey90") + ) + + theme_void() + + theme(legend.position = "none") + + labs(title = paste(airzone, "Air Zone")) +} + ## Plots ----------------------------------------------------- ## Ozone concentration based on annual 4th highest daily 8-hour maxima, 3 year From 3e0adbf7428f820c1bc24afcab6b967223cc8bfc Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Mon, 25 Mar 2019 20:50:49 -0700 Subject: [PATCH 41/52] With CAAQS in legend, can remove some of the logic for axis limits No need to make sure there is room for the "CAAQS" label --- components/functions.R | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/components/functions.R b/components/functions.R index 6137a96..e7cc2ea 100644 --- a/components/functions.R +++ b/components/functions.R @@ -60,7 +60,6 @@ airzone_map <- function(airzone) { ## Ozone concentration based on annual 4th highest daily 8-hour maxima, 3 year ## average bar chart by station (fig. 2) plot_ozone_by_station <- function(data, airzone, caaqs = 63) { - ymax_oz <- max(data$metric_value_ambient, na.rm = TRUE) ozone_year <- max(data$max_year) ggplot( @@ -81,9 +80,6 @@ plot_ozone_by_station <- function(data, airzone, caaqs = 63) { values = 2, guide = guide_legend(override.aes = list(color = "red")) ) + - ## Set y scale to ensure CAAQS text doesn't get cut off (but if the max ozone - ## value is greater, take that value instead + 10 for padding) - scale_y_continuous(limits = c(0, max(ymax_oz + 10, caaqs + 10))) + labs( x = "Station", y = "Ozone concentration (ppb)", @@ -99,7 +95,6 @@ plot_ozone_station_timeseries <- function(data, airzone, caaqs = 63) { ozone_year <- max(data$year) min_year <- min(data$year, na.rm = TRUE) max_year <- max(data$year, na.rm = TRUE) - ymax_oz <- max(data$ann_4th_highest, na.rm = TRUE) ggplot(data, aes(x = year, y = ann_4th_highest, colour = station_name)) + geom_line() + @@ -121,7 +116,6 @@ plot_ozone_station_timeseries <- function(data, airzone, caaqs = 63) { scale_x_continuous( breaks = function(x) floor(pretty(seq(min(x), max(x), by = 1))) ) + - scale_y_continuous(limits = c(0, max(ymax_oz + 5, 72))) + theme(plot.title = element_text(hjust = 0.5)) } @@ -130,10 +124,7 @@ plot_ozone_station_timeseries <- function(data, airzone, caaqs = 63) { plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ## Filter data pm25_24h <- filter(data, metric == "pm2.5_24h") - ymax_pm25_24h <- max(pm25_24h$metric_value_ambient, na.rm = TRUE) - pm25_annual <- filter(data, metric == "pm2.5_annual") - ymax_pm25_annual <- max(pm25_annual$metric_value_ambient, na.rm = TRUE) ## 24 hour plot_24h <- ggplot( @@ -154,7 +145,6 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { values = 2, guide = guide_legend(override.aes = list(color = "red")) ) + - scale_y_continuous(limits = c(0, max(ymax_pm25_24h + 3, caaqs_24h + 5))) + scale_fill_manual(values = c(FEM = "#4A8CE1", TEOM = "#070C72")) + labs( x = NULL, @@ -187,9 +177,6 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { values = 2, guide = guide_legend(override.aes = list(color = "red")) ) + - scale_y_continuous( - limits = c(0, max(ymax_pm25_annual + 3, caaqs_annual + 6)) - ) + scale_fill_manual(values = c(FEM = "#81EDA1", TEOM = "#4A875B")) + labs( x = NULL, @@ -210,7 +197,6 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { ## Annual trends in mean PM2.5 concentration line chart plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { - ymax_pm25 <- max(data$ann_avg) min_year <- min(data$year, na.rm = TRUE) min_year <- min(data$year, na.rm = TRUE) @@ -229,9 +215,6 @@ plot_pm25_station_timeseries <- function(data, airzone, caaqs_annual = 10) { scale_x_continuous( breaks = function(x) floor(pretty(seq(min(x), max(x), by = 1))) ) + - ## Set y scale from 0 to either: maximum pm2.5 value + a buffer, OR - ## CAAQS + a buffer, whichever is larger - scale_y_continuous(limits = c(0, max(ymax_pm25 + 3, caaqs_annual + 3))) + labs( x = "Year", y = expression(PM[2.5]~Concentration~"("*mu~g/m^3~")"), From 3ec7aed4d6d3564387f21f5d56ef2863cded4ec3 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 26 Mar 2019 19:51:28 -0700 Subject: [PATCH 42/52] This looks somewhat decent --- 05_georgia_strait.Rmd | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index c373fdf..7ea38ac 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -38,13 +38,7 @@ annual_ozone <- params$annual_ozone %>% ## Filter and add station names to annual pm25 annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) -``` - - - -```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} -airzone_map(airzone) + filter(airzone == !!airzone) ``` ## Introduction @@ -57,11 +51,13 @@ vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut rutrum. Fusce laoreet convallis scelerisque. ```{=latex} -\begin{wrapfigure}{R}{.6\textwidth} +\begin{wrapfigure}{R}{.3\textwidth} ``` -```{r airzone-map, fig.align = "center", out.width = "90%", fig.cap = "Map of air zone"} -knitr::include_graphics("placeholdermap.png") + + +```{r airzone-map, fig.cap = paste(airzone, "Air Zone")} +airzone_map(airzone) ``` ```{=latex} @@ -77,13 +73,13 @@ torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. - - ```{=latex} -\newpage +\clearpage \begin{wrapfigure}{R}{.6\textwidth} ``` + + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone)} plot_ozone_by_station(ozone, airzone) ``` @@ -123,7 +119,7 @@ plot_ozone_station_timeseries(annual_ozone, airzone) ```{=latex} -\newpage +\clearpage \begin{wrapfigure}{R}{.6\textwidth} ``` @@ -174,20 +170,17 @@ plot_pm25_station_timeseries(annual_pm25, airzone) \end{wrapfigure} ``` - - ```{=latex} -\newpage +\clearpage ``` -## \newpage Air Zone Management Levels +## Air Zone Management Levels Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. - Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas @@ -196,16 +189,14 @@ sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + + ```{r table-2} create_ozone_table(ozone, airzone) ``` -```{=latex} -\newpage -``` - ```{r table-3} create_pm25_table(pm25, airzone) ``` From 6715197c4e207aa4e55f1998fb61278fdd897a28 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Tue, 26 Mar 2019 23:18:16 -0700 Subject: [PATCH 43/52] Write a chunk hook to generate proper wrapfigure code fig.env = "wrapfigure" is not sufficient, because \begin{wrapfigure} requires some additional options --- 05_georgia_strait.Rmd | 74 ++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 46 deletions(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 7ea38ac..efb2be7 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -39,6 +39,28 @@ annual_ozone <- params$annual_ozone %>% annual_pm25 <- params$annual_pm25 %>% left_join(params$stations, by = c("ems_id", "station_name")) %>% filter(airzone == !!airzone) + +## Custom hook to generate wrapped figures. Unfortunately we can't just set the +## fig.env chunk option to "wrapfigure" because of the need to specify the +## alignment and width of the figure, so we use this hook instead. When using +## this, the fig.show option must be set to "hide" or else you will get two +## versions of each figure (the one generated normally by knitr and the one +## generated by this function). Note this has only been tested for one plot per +## chunk. +knitr::knit_hooks$set(wrapfigure = function(before, options, envir) { + if (!before) { + imgpath <- paste0(options$fig.path, options$label, "-1") + return( + paste( + "\\begin{wrapfigure}{", options$position, "}{", options$out.width ,"}\n", + "\\includegraphics{", imgpath, "}\n", + "\\caption{", options$fig.cap, "}\n", + "\\end{wrapfigure}", + sep = "" + ) + ) + } +}) ``` ## Introduction @@ -50,20 +72,12 @@ mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut rutrum. Fusce laoreet convallis scelerisque. -```{=latex} -\begin{wrapfigure}{R}{.3\textwidth} -``` - -```{r airzone-map, fig.cap = paste(airzone, "Air Zone")} +```{r airzone-map, wrapfigure = TRUE, position = "R", out.width = ".3\\textwidth", fig.cap = paste(airzone, "Air Zone"), fig.show = "hide"} airzone_map(airzone) ``` -```{=latex} -\end{wrapfigure} -``` - ## Background Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, @@ -73,21 +87,14 @@ torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. -```{=latex} \clearpage -\begin{wrapfigure}{R}{.6\textwidth} -``` -```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone)} +```{r ozone-by-station, wrapfigure = TRUE, position = "R", out.width = ".6\\textwidth", fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone), fig.show = "hide"} plot_ozone_by_station(ozone, airzone) ``` -```{=latex} -\end{wrapfigure} -``` - ## Ozone Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, @@ -104,33 +111,18 @@ ut dapibus condimentum. -```{=latex} -\begin{wrapfigure}{C}{\textwidth} -``` - -```{r annual-ozone, fig.width = 6, fig.cap = annual_ozone_cap(annual_ozone)} +```{r annual-ozone, wrapfigure = TRUE, position = "C", out.width = "\\textwidth", fig.width = 6, fig.cap = annual_ozone_cap(annual_ozone), fig.show = "hide"} plot_ozone_station_timeseries(annual_ozone, airzone) ``` -```{=latex} -\end{wrapfigure} -``` +\clearpage -```{=latex} -\clearpage -\begin{wrapfigure}{R}{.6\textwidth} -``` - -```{r pm25-by-station, fig.width = 5, fig.asp = 1.2, fig.cap = pm25_by_station_cap(airzone, pm25)} +```{r pm25-by-station, wrapfigure = TRUE, position = "R", out.width = ".6\\textwidth", fig.width = 5, fig.asp = 1.2, fig.cap = pm25_by_station_cap(airzone, pm25), fig.show = "hide"} plot_pm25_by_station(pm25) ``` -```{=latex} -\end{wrapfigure} -``` - ## PM$_{2.5}$ levels Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. @@ -158,21 +150,11 @@ libero ultricies aliquam. -```{=latex} -\begin{wrapfigure}{C}{\textwidth} -``` - -```{r annual-pm25, fig.width = 6, fig.cap = annual_pm25_cap(annual_pm25)} +```{r annual-pm25, wrapfigure = TRUE, position = "C", out.width = "\\textwidth", fig.width = 6, fig.cap = annual_pm25_cap(annual_pm25), fig.show = "hide"} plot_pm25_station_timeseries(annual_pm25, airzone) ``` -```{=latex} -\end{wrapfigure} -``` - -```{=latex} \clearpage -``` ## Air Zone Management Levels From 618c1b062ea53c744bcb0cc64eae4ed6048c9078 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 20:29:58 -0700 Subject: [PATCH 44/52] Add placeholder text to all reports --- 01_northeast.Rmd | 77 +++++++++++++++++++++++++++++++++++++ 02_central_interior.Rmd | 79 ++++++++++++++++++++++++++++++++++++++ 03_southern_interior.Rmd | 78 +++++++++++++++++++++++++++++++++++++ 04_lower_fraser_valley.Rmd | 77 +++++++++++++++++++++++++++++++++++++ 05_georgia_strait.Rmd | 77 +++++++++++++++++++++++++++++++++++++ 06_coastal.Rmd | 77 +++++++++++++++++++++++++++++++++++++ 6 files changed, 465 insertions(+) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 2783de7..5018a75 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -40,12 +40,44 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + ```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} airzone_map(airzone) ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.5, fig.cap = ozone_by_station_cap(airzone, ozone)} @@ -58,6 +90,30 @@ plot_ozone_by_station(ozone, airzone) plot_ozone_station_timeseries(annual_ozone, airzone) ``` +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + ```{r pm25-by-station, fig.width = 5, fig.asp = 0.5, fig.cap = pm25_by_station_cap(airzone, pm25)} @@ -70,6 +126,21 @@ plot_pm25_by_station(pm25) plot_pm25_station_timeseries(annual_pm25, airzone) ``` +## Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + ```{r table-2} @@ -81,3 +152,9 @@ create_ozone_table(ozone, airzone) ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 74c3a0a..403fdd4 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -40,12 +40,44 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + ```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} airzone_map(airzone) ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.55, fig.cap = ozone_by_station_cap(airzone, ozone)} @@ -58,6 +90,31 @@ plot_ozone_by_station(ozone, airzone) plot_ozone_station_timeseries(annual_ozone, airzone) ``` +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + + ```{r pm25-by-station, fig.width = 5, fig.asp = 0.85, fig.cap = pm25_by_station_cap(airzone, pm25)} @@ -70,6 +127,22 @@ plot_pm25_by_station(pm25) plot_pm25_station_timeseries(annual_pm25, airzone) ``` +## Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + + ```{r table-2} @@ -81,3 +154,9 @@ create_ozone_table(ozone, airzone) ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 362ff57..2021d59 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -40,12 +40,45 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + ```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} airzone_map(airzone) ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.55, fig.cap = ozone_by_station_cap(airzone, ozone)} @@ -58,6 +91,30 @@ plot_ozone_by_station(ozone, airzone) plot_ozone_station_timeseries(annual_ozone, airzone) ``` +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + ```{r pm25-by-station, fig.width = 5, fig.asp = 0.8, fig.cap = pm25_by_station_cap(airzone, pm25)} @@ -70,6 +127,21 @@ plot_pm25_by_station(pm25) plot_pm25_station_timeseries(annual_pm25, airzone) ``` +## Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + ```{r table-2} @@ -81,3 +153,9 @@ create_ozone_table(ozone, airzone) ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 3f79b8b..469b218 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -40,12 +40,44 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + ```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} airzone_map(airzone) ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 1.3, fig.cap = ozone_by_station_cap(airzone, ozone)} @@ -58,6 +90,30 @@ plot_ozone_by_station(ozone, airzone) plot_ozone_station_timeseries(annual_ozone, airzone) ``` +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + ```{r pm25-by-station, fig.width = 5, fig.asp = 1.8, fig.cap = pm25_by_station_cap(airzone, pm25)} @@ -70,6 +126,21 @@ plot_pm25_by_station(pm25) plot_pm25_station_timeseries(annual_pm25, airzone) ``` +## Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + ```{r table-2} @@ -81,3 +152,9 @@ create_ozone_table(ozone, airzone) ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 0a03801..08da5aa 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -40,12 +40,44 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + ```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} airzone_map(airzone) ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.618, fig.cap = ozone_by_station_cap(airzone, ozone)} @@ -59,6 +91,30 @@ plot_ozone_by_station(ozone, airzone) plot_ozone_station_timeseries(annual_ozone, airzone) ``` +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + ```{r pm25-by-station, fig.width = 5, fig.asp = 1.2, fig.cap = pm25_by_station_cap(airzone, pm25)} @@ -71,6 +127,21 @@ plot_pm25_by_station(pm25) plot_pm25_station_timeseries(annual_pm25, airzone) ``` +## Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + ```{r table-2} @@ -82,3 +153,9 @@ create_ozone_table(ozone, airzone) ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 07d375f..6ce19a4 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -40,12 +40,44 @@ annual_pm25 <- params$annual_pm25 %>% filter(airzone == !!airzone) ``` +## Introduction + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sit amet ultrices +lacus, eleifend vehicula erat. Suspendisse suscipit nec ante a bibendum. Orci +varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Ut ac diam lectus. Nullam non tincidunt leo. Quisque sed egestas mauris, +vitae feugiat neque. Quisque eu vestibulum enim. Nam convallis nec nunc ut +rutrum. Fusce laoreet convallis scelerisque. + +## Background + +Nunc sit amet sem in purus iaculis commodo at a felis. Curabitur lacus purus, +interdum eu mauris quis, ultrices auctor risus. Vestibulum orci nulla, volutpat +sit amet hendrerit id, laoreet eu leo. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. In consequat urna id velit +dignissim, quis sagittis nunc volutpat. Fusce non facilisis ligula. Nulla mollis +in purus vitae bibendum. Morbi bibendum tempus lectus sed egestas. + ```{r airzone-map, fig.width = 3, fig.cap = paste(airzone, "Air Zone")} airzone_map(airzone) ``` +## Ozone + +Suspendisse sed dictum est. Fusce vitae sollicitudin enim. Maecenas nisi nisi, +sollicitudin eu lacus ac, porttitor gravida ipsum. Morbi nisi lectus, blandit ut +neque at, pretium posuere augue. Nullam lacus nisi, molestie id posuere vel, +vehicula elementum dolor. Sed quis eros eget nibh laoreet porttitor pellentesque +sit amet ex. Donec ultricies felis et rutrum sagittis. Sed feugiat aliquet +turpis, in tincidunt neque hendrerit in. Donec volutpat neque sed mattis +porttitor. Donec quis erat sagittis, ultrices lectus quis, semper massa. Quisque +vel neque lacinia, euismod ante ut, porttitor ligula. Aenean varius lorem id +nisl mollis, in sollicitudin quam viverra. Mauris sit amet mauris ut felis +facilisis hendrerit. Nulla eu commodo ipsum, et cursus arcu. Cras pretium tortor +ut dapibus condimentum. + ```{r ozone-by-station, fig.width = 4.5, fig.asp = 0.3, out.width = "90%", fig.cap = ozone_by_station_cap(airzone, ozone)} @@ -58,6 +90,30 @@ plot_ozone_by_station(ozone, airzone) plot_ozone_station_timeseries(annual_ozone, airzone) ``` +## PM$_{2.5}$ levels + +Aliquam non condimentum mauris. Integer non nunc ut lacus luctus ullamcorper. +Aenean id vulputate metus. Integer tristique tempus sapien sed pellentesque. +Nulla elementum consequat felis, at eleifend ex rutrum vitae. Cras ultricies +quam justo, ac vulputate mauris blandit non. Aliquam convallis viverra egestas. +Pellentesque dictum ipsum id venenatis sagittis. Vestibulum feugiat ullamcorper +hendrerit. Etiam vitae purus at augue laoreet lacinia. Vestibulum quis fringilla +neque. Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. + +Nam eu nisl eu eros convallis viverra et pulvinar elit. Pellentesque porttitor +pretium scelerisque. Quisque vel augue at risus dapibus fermentum. In in dolor +eu risus lacinia dignissim. Aliquam sed porta eros. Nullam vel arcu ut turpis +scelerisque molestie. Morbi convallis euismod imperdiet. + +Ut vehicula, tortor quis placerat rhoncus, quam velit aliquam magna, ac +pellentesque sapien dui et odio. Vestibulum a ligula a libero suscipit pulvinar +nec ut mi. Phasellus in odio et quam semper lobortis eu quis lacus. In non lacus +dui. Proin a feugiat eros. Donec ultrices rutrum porttitor. Proin tempor urna ac +nunc faucibus volutpat. Nunc pharetra orci a mi tristique pharetra. Suspendisse +vel velit eu justo porttitor tincidunt sed scelerisque nunc. Morbi id justo at +libero ultricies aliquam. + ```{r pm25-by-station, fig.width = 5, fig.asp = 0.5, fig.cap = pm25_by_station_cap(airzone, pm25)} @@ -70,6 +126,21 @@ plot_pm25_by_station(pm25) plot_pm25_station_timeseries(annual_pm25, airzone) ``` +## Air Zone Management Levels + +Aenean in pellentesque justo, finibus tincidunt tortor. Nulla ac rutrum lorem. +Sed mattis a ex id fermentum. Proin eget neque aliquet, maximus nisi at, mollis +sapien. Cras consequat diam lorem. Maecenas vulputate odio ac pellentesque +scelerisque. Cras molestie ultrices turpis, in accumsan lectus dictum et. + +Donec non libero pharetra, aliquam nulla et, bibendum dui. Donec at sodales dui. +Sed eget elit malesuada arcu dapibus consequat ut sed felis. Donec at dui nec +velit dictum tincidunt. Ut posuere massa quis lectus accumsan rhoncus. Maecenas +scelerisque turpis nec felis dictum finibus. In sodales luctus pellentesque. Sed +sit amet tempor lacus. Vivamus nec erat id sem viverra bibendum auctor non sem. +Orci varius natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. + ```{r table-2} @@ -81,3 +152,9 @@ create_ozone_table(ozone, airzone) ```{r table-3} create_pm25_table(pm25, airzone) ``` + +## Actions to Protect Air Quality + +Praesent nec tincidunt ante. Morbi pulvinar velit eget metus commodo aliquam. Nulla non diam vel leo pellentesque pretium. Maecenas eleifend et lectus nec mollis. Donec aliquet massa ac odio blandit euismod. Curabitur sed neque semper, dictum neque vitae, dictum risus. Vestibulum sit amet auctor ante, a gravida est. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer quis dignissim risus. + +Sed a urna lectus. Morbi arcu est, tincidunt a pharetra a, fringilla sit amet ligula. Donec pellentesque non ex a tristique. Donec a malesuada felis, vitae blandit nibh. Quisque quis pretium dolor, ut vehicula elit. Sed enim ligula, consectetur auctor massa vitae, venenatis bibendum leo. Interdum et malesuada fames ac ante ipsum primis in faucibus. From d9ddf52c805f5b72d76f8b8e5e76315dd315afb8 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 20:56:32 -0700 Subject: [PATCH 45/52] Filter annual data to same stations as summary data No longer need to join with stations data frame because the necessary info is now included in the annual data --- 01_northeast.Rmd | 13 ++----------- 02_central_interior.Rmd | 15 +++------------ 03_southern_interior.Rmd | 13 ++----------- 04_lower_fraser_valley.Rmd | 13 ++----------- 05_georgia_strait.Rmd | 13 ++----------- 06_coastal.Rmd | 13 ++----------- 6 files changed, 13 insertions(+), 67 deletions(-) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index 5018a75..d58dd06 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -12,7 +12,6 @@ params: annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg - stations: !r stations_az airzone: "Northeast" --- @@ -28,16 +27,8 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Filter and add station names to annual ozone -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) - -## Filter and add station names to annual pm25 -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) ``` ## Introduction diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 403fdd4..0ab2585 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -12,7 +12,6 @@ params: annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg - stations: !r stations_az airzone: "Central Interior" --- @@ -23,21 +22,13 @@ knitr::opts_chunk$set(echo = FALSE, warning = FALSE) ## Load packages, functions, etc. source("components/functions.R") - + ## Filter data to air zone airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Filter and add station names to annual ozone -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) - -## Filter and add station names to annual pm25 -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) ``` ## Introduction diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index 2021d59..e08791f 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -12,7 +12,6 @@ params: annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg - stations: !r stations_az airzone: "Southern Interior" --- @@ -28,16 +27,8 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Filter and add station names to annual ozone -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) - -## Filter and add station names to annual pm25 -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) ``` ## Introduction diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index 469b218..c92fe4e 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -12,7 +12,6 @@ params: annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg - stations: !r stations_az airzone: "Lower Fraser Valley" --- @@ -28,16 +27,8 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Filter and add station names to annual ozone -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) - -## Filter and add station names to annual pm25 -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) ``` ## Introduction diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 08da5aa..eec17e0 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -12,7 +12,6 @@ params: annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg - stations: !r stations_az airzone: "Georgia Strait" --- @@ -28,16 +27,8 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Filter and add station names to annual ozone -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) - -## Filter and add station names to annual pm25 -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) ``` ## Introduction diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 6ce19a4..207ab5c 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -12,7 +12,6 @@ params: annual_ozone: !r ozone_caaqs$ann_4th_highest pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg - stations: !r stations_az airzone: "Coastal" --- @@ -28,16 +27,8 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) - -## Filter and add station names to annual ozone -annual_ozone <- params$annual_ozone %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) - -## Filter and add station names to annual pm25 -annual_pm25 <- params$annual_pm25 %>% - left_join(params$stations, by = c("ems_id", "station_name")) %>% - filter(airzone == !!airzone) +annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) ``` ## Introduction From 0720791b945b668cd8fd5a18e7a1d64f85594c21 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 21:00:48 -0700 Subject: [PATCH 46/52] Bigger text in air zone maps --- components/functions.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/functions.R b/components/functions.R index e7cc2ea..5ae6f6b 100644 --- a/components/functions.R +++ b/components/functions.R @@ -38,7 +38,7 @@ airzone_map <- function(airzone) { aes(label = NAME, geometry = geometry), stat = "sf_coordinates", min.segment.length = 0, - size = 2, + size = 3, label.size = NA ) + coord_sf( From d96e5d1c69dc1043368c10ff614b218718c1a1e5 Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 21:10:31 -0700 Subject: [PATCH 47/52] Subscript PM2.5 in all parts of the PM2.5 bar chart --- components/functions.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/functions.R b/components/functions.R index 5ae6f6b..3252432 100644 --- a/components/functions.R +++ b/components/functions.R @@ -150,7 +150,7 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { x = NULL, y = NULL, fill = "Instrument", - title = "24-Hr PM2.5" + title = expression(paste("24-Hr", ~PM[2.5])) ) + theme( plot.margin = unit(c(2, 0, 0, 0), "lines"), @@ -182,7 +182,7 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { x = NULL, y = expression(PM[2.5]~Concentration~"("*mu~g/m^3~")"), fill = "Instrument", - title = "Annual PM2.5" + title = expression(Annual~PM[2.5]) ) + theme( plot.margin = unit(c(2, 0, 0, 0), "lines"), From c3fd5561d571f75d5f1324d282b792919c646b0f Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 21:37:07 -0700 Subject: [PATCH 48/52] Put captions above tables --- components/header.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/components/header.tex b/components/header.tex index d39b8ed..87d95ec 100644 --- a/components/header.tex +++ b/components/header.tex @@ -6,4 +6,5 @@ \usepackage{xcolor} \usepackage{textcomp} \floatplacement{figure}{H} +\floatsetup[table]{capposition=top} \usepackage[margin=1cm,font=normalsize]{caption} From dc5ace969ed86ef1de139ed3aa4b62166b3753ac Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 22:03:49 -0700 Subject: [PATCH 49/52] Add parameter to filter annual plot stations --- 01_northeast.Rmd | 17 +++++++++++++++-- 02_central_interior.Rmd | 17 +++++++++++++++-- 03_southern_interior.Rmd | 17 +++++++++++++++-- 04_lower_fraser_valley.Rmd | 17 +++++++++++++++-- 05_georgia_strait.Rmd | 17 +++++++++++++++-- 06_coastal.Rmd | 17 +++++++++++++++-- render_air_zone_reports.R | 8 ++++++++ 7 files changed, 98 insertions(+), 12 deletions(-) diff --git a/01_northeast.Rmd b/01_northeast.Rmd index d58dd06..22b37d8 100644 --- a/01_northeast.Rmd +++ b/01_northeast.Rmd @@ -10,8 +10,10 @@ mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest + ems_ids_ozone: !r NA pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg + ems_ids_pm25: !r NA airzone: "Northeast" --- @@ -27,8 +29,19 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) -annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) -annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) + +## Filter annual data to EMS ids provided if present, otherwise use the same +## ones as in the summary data +if (!is.na(params$ems_ids_ozone)) { + annual_ozone <- filter(params$annual_ozone, ems_id %in% params$ems_ids_ozone) +} else { + annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +} +if (!is.na(params$ems_ids_pm25)) { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% params$ems_ids_pm25) +} else { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) +} ``` ## Introduction diff --git a/02_central_interior.Rmd b/02_central_interior.Rmd index 0ab2585..89c06b8 100644 --- a/02_central_interior.Rmd +++ b/02_central_interior.Rmd @@ -10,8 +10,10 @@ mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest + ems_ids_ozone: !r NA pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg + ems_ids_pm25: !r NA airzone: "Central Interior" --- @@ -27,8 +29,19 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) -annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) -annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) + +## Filter annual data to EMS ids provided if present, otherwise use the same +## ones as in the summary data +if (!is.na(params$ems_ids_ozone)) { + annual_ozone <- filter(params$annual_ozone, ems_id %in% params$ems_ids_ozone) +} else { + annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +} +if (!is.na(params$ems_ids_pm25)) { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% params$ems_ids_pm25) +} else { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) +} ``` ## Introduction diff --git a/03_southern_interior.Rmd b/03_southern_interior.Rmd index e08791f..608aad6 100644 --- a/03_southern_interior.Rmd +++ b/03_southern_interior.Rmd @@ -10,8 +10,10 @@ mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest + ems_ids_ozone: !r NA pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg + ems_ids_pm25: !r NA airzone: "Southern Interior" --- @@ -27,8 +29,19 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) -annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) -annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) + +## Filter annual data to EMS ids provided if present, otherwise use the same +## ones as in the summary data +if (!is.na(params$ems_ids_ozone)) { + annual_ozone <- filter(params$annual_ozone, ems_id %in% params$ems_ids_ozone) +} else { + annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +} +if (!is.na(params$ems_ids_pm25)) { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% params$ems_ids_pm25) +} else { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) +} ``` ## Introduction diff --git a/04_lower_fraser_valley.Rmd b/04_lower_fraser_valley.Rmd index c92fe4e..3eefdbb 100644 --- a/04_lower_fraser_valley.Rmd +++ b/04_lower_fraser_valley.Rmd @@ -10,8 +10,10 @@ mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest + ems_ids_ozone: !r NA pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg + ems_ids_pm25: !r NA airzone: "Lower Fraser Valley" --- @@ -27,8 +29,19 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) -annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) -annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) + +## Filter annual data to EMS ids provided if present, otherwise use the same +## ones as in the summary data +if (!is.na(params$ems_ids_ozone)) { + annual_ozone <- filter(params$annual_ozone, ems_id %in% params$ems_ids_ozone) +} else { + annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +} +if (!is.na(params$ems_ids_pm25)) { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% params$ems_ids_pm25) +} else { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) +} ``` ## Introduction diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index eec17e0..e7010ea 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -10,8 +10,10 @@ mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest + ems_ids_ozone: !r NA pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg + ems_ids_pm25: !r NA airzone: "Georgia Strait" --- @@ -27,8 +29,19 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) -annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) -annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) + +## Filter annual data to EMS ids provided if present, otherwise use the same +## ones as in the summary data +if (!is.na(params$ems_ids_ozone)) { + annual_ozone <- filter(params$annual_ozone, ems_id %in% params$ems_ids_ozone) +} else { + annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +} +if (!is.na(params$ems_ids_pm25)) { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% params$ems_ids_pm25) +} else { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) +} ``` ## Introduction diff --git a/06_coastal.Rmd b/06_coastal.Rmd index 207ab5c..1326224 100644 --- a/06_coastal.Rmd +++ b/06_coastal.Rmd @@ -10,8 +10,10 @@ mainfont: Arial params: ozone: !r ozone_caaqs_results annual_ozone: !r ozone_caaqs$ann_4th_highest + ems_ids_ozone: !r NA pm25: !r pm_caaqs_combined_results annual_pm25: !r pm25_caaqs_annual$yearly_avg + ems_ids_pm25: !r NA airzone: "Coastal" --- @@ -27,8 +29,19 @@ source("components/functions.R") airzone <- params$airzone ozone <- filter(params$ozone, airzone == !!airzone) pm25 <- filter(params$pm25, airzone == !!airzone) -annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) -annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) + +## Filter annual data to EMS ids provided if present, otherwise use the same +## ones as in the summary data +if (!is.na(params$ems_ids_ozone)) { + annual_ozone <- filter(params$annual_ozone, ems_id %in% params$ems_ids_ozone) +} else { + annual_ozone <- filter(params$annual_ozone, ems_id %in% ozone$ems_id) +} +if (!is.na(params$ems_ids_pm25)) { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% params$ems_ids_pm25) +} else { + annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) +} ``` ## Introduction diff --git a/render_air_zone_reports.R b/render_air_zone_reports.R index 9802581..a4a83bd 100644 --- a/render_air_zone_reports.R +++ b/render_air_zone_reports.R @@ -25,3 +25,11 @@ walk( output_dir = "rendered_reports" ) +## To render a report with modified parameters, provide a named list of the +## parameters you want to change. For example: + +## render( +## "05_georgia_strait.Rmd", +## output_dir = "rendered_reports", +## params = list(ems_ids_ozone = c("E227431", "E229797", "E231866")) +## ) From cc8ad973ef1c728122e835ad3720af9fa8d5d22b Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 22:09:58 -0700 Subject: [PATCH 50/52] Consistent legend order in PM2.5 bar chart --- components/functions.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/functions.R b/components/functions.R index 3252432..b336f24 100644 --- a/components/functions.R +++ b/components/functions.R @@ -146,6 +146,10 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { guide = guide_legend(override.aes = list(color = "red")) ) + scale_fill_manual(values = c(FEM = "#4A8CE1", TEOM = "#070C72")) + + guides( + fill = guide_legend(order = 2), + linetype = guide_legend(order = 1) + ) + labs( x = NULL, y = NULL, @@ -178,6 +182,10 @@ plot_pm25_by_station <- function(data, caaqs_24h = 28, caaqs_annual = 10) { guide = guide_legend(override.aes = list(color = "red")) ) + scale_fill_manual(values = c(FEM = "#81EDA1", TEOM = "#4A875B")) + + guides( + fill = guide_legend(order = 2), + linetype = guide_legend(order = 1) + ) + labs( x = NULL, y = expression(PM[2.5]~Concentration~"("*mu~g/m^3~")"), From 1f645d544d14f5d1674a4dac505270333777126a Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 22:22:52 -0700 Subject: [PATCH 51/52] Slightly bigger map --- 05_georgia_strait.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index 3901179..bc77cbe 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -78,7 +78,7 @@ rutrum. Fusce laoreet convallis scelerisque. -```{r airzone-map, wrapfigure = TRUE, position = "R", out.width = ".3\\textwidth", fig.cap = paste(airzone, "Air Zone"), fig.show = "hide"} +```{r airzone-map, wrapfigure = TRUE, position = "R", out.width = ".4\\textwidth", fig.cap = paste(airzone, "Air Zone"), fig.show = "hide"} airzone_map(airzone) ``` From 400cd079f2346db4e900e6a81233d5792e5ac82a Mon Sep 17 00:00:00 2001 From: Kara Woo Date: Wed, 27 Mar 2019 22:35:17 -0700 Subject: [PATCH 52/52] Extract knitr options and hook to a separate script --- 05_georgia_strait.Rmd | 25 +------------------------ components/knitr_setup.R | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 24 deletions(-) create mode 100644 components/knitr_setup.R diff --git a/05_georgia_strait.Rmd b/05_georgia_strait.Rmd index bc77cbe..96ee0c4 100644 --- a/05_georgia_strait.Rmd +++ b/05_georgia_strait.Rmd @@ -21,9 +21,8 @@ params: ```{r setup, include = FALSE} -knitr::opts_chunk$set(echo = FALSE, warning = FALSE, dev = "pdf") - ## Load packages, functions, etc. +source("components/knitr_setup.R") source("components/functions.R") ## Filter data to air zone @@ -43,28 +42,6 @@ if (!is.na(params$ems_ids_pm25)) { } else { annual_pm25 <- filter(params$annual_pm25, ems_id %in% pm25$ems_id) } - -## Custom hook to generate wrapped figures. Unfortunately we can't just set the -## fig.env chunk option to "wrapfigure" because of the need to specify the -## alignment and width of the figure, so we use this hook instead. When using -## this, the fig.show option must be set to "hide" or else you will get two -## versions of each figure (the one generated normally by knitr and the one -## generated by this function). Note this has only been tested for one plot per -## chunk. -knitr::knit_hooks$set(wrapfigure = function(before, options, envir) { - if (!before) { - imgpath <- paste0(options$fig.path, options$label, "-1") - return( - paste( - "\\begin{wrapfigure}{", options$position, "}{", options$out.width ,"}\n", - "\\includegraphics{", imgpath, "}\n", - "\\caption{", options$fig.cap, "}\n", - "\\end{wrapfigure}", - sep = "" - ) - ) - } -}) ``` ## Introduction diff --git a/components/knitr_setup.R b/components/knitr_setup.R new file mode 100644 index 0000000..0955523 --- /dev/null +++ b/components/knitr_setup.R @@ -0,0 +1,23 @@ +knitr::opts_chunk$set(echo = FALSE, warning = FALSE, dev = "pdf") + +## Custom hook to generate wrapped figures. Unfortunately we can't just set the +## fig.env chunk option to "wrapfigure" because of the need to specify the +## alignment and width of the figure, so we use this hook instead. When using +## this, the fig.show option must be set to "hide" or else you will get two +## versions of each figure (the one generated normally by knitr and the one +## generated by this function). Note this has only been tested for one plot per +## chunk. +knitr::knit_hooks$set(wrapfigure = function(before, options, envir) { + if (!before) { + imgpath <- paste0(options$fig.path, options$label, "-1") + return( + paste( + "\\begin{wrapfigure}{", options$position, "}{", options$out.width ,"}\n", + "\\includegraphics{", imgpath, "}\n", + "\\caption{", options$fig.cap, "}\n", + "\\end{wrapfigure}", + sep = "" + ) + ) + } +})

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ⅇ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�kCJwHkzSrwM3YaJ!dO@SP*i$FgJ8FQy*Zr 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