1 About

1.2 Citation

If you wish to refer to any of the material from this report please cite as:

  • Anderson, B., (2020) Air Quality in Southampton (UK): Wind and pollution roses 2016-2020 (AURN data) , Sustainable Energy Research Group, University of Southampton: Southampton, UK.

Report circulation:

  • Public

This work is (c) 2020 the University of Southampton.

1.3 Disclaimer

I usually do energy demand research but in the absence of access to real time energy demand data on lockdown (unlike during the World Cup), I’m looking at other things.

2 Introduction

We use the excellent openair package (Carslaw and Ropkins 2012) to download the AURN data and create the wind and pollution roses for each of the following Southampton sites:

  • SA33 - A33 near docks
  • SOUT - City Centre

Year and site is given in the legend label.

This analysis uses data for Southampton downloaded from:

The data supplied to AURN by UK monitoring sites such as the ones in Southampton is ratified to check for outliers and instrument/measurement error. However, AURN data less than six months old has not undergone this process. Be warned.

3 Data

Downloaded from AURN.

sites <- c("SA33", "SOUT")

# use:
# windRose(mydata, type = "year", layout = c(4, 2))
# https://www.rdocumentation.org/packages/openair/versions/2.7-0


  # wide form
    df_SA33 <- openair::importAURN(
      site = "SA33",
      year = 2000:2020,
      pollutant = "all",
      hc = FALSE,
      to_narrow = FALSE, # produces wide form data
      verbose = TRUE
    )
  
    df_SOUT <- openair::importAURN(
      site = "SOUT",
      year = 2000:2020,
      pollutant = "all",
      hc = FALSE,
      to_narrow = FALSE, # produces wide form data
      verbose = TRUE
    )

4 Site: SA33

A33 - near docks: map

skimr::skim(df_SA33)
Table 4.1: Data summary
Name df_SA33
Number of rows 43848
Number of columns 11
_______________________
Column type frequency:
factor 2
numeric 8
POSIXct 1
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
code 0 1 FALSE 1 SA3: 43848
site 0 1 FALSE 1 Sou: 43848

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
no 6983 0.84 34.68 47.40 -0.31 5.07 18.08 44.99 562.00 ▇▁▁▁▁
no2 6985 0.84 37.14 25.41 -2.14 17.11 32.23 51.65 182.49 ▇▅▂▁▁
nox 6983 0.84 90.31 93.37 0.20 26.17 61.72 121.17 1007.78 ▇▁▁▁▁
pm10 13649 0.69 18.58 11.99 -3.20 10.50 15.70 23.40 122.30 ▇▃▁▁▁
nv10 14638 0.67 15.62 10.62 -4.70 8.60 13.30 20.00 121.40 ▇▂▁▁▁
v10 14641 0.67 2.73 2.91 -9.60 0.90 2.40 4.20 24.90 ▁▇▂▁▁
ws 11808 0.73 3.76 1.97 0.00 2.30 3.30 4.90 14.30 ▇▇▂▁▁
wd 11808 0.73 202.07 104.00 0.00 118.50 229.10 282.60 360.00 ▅▃▃▇▆

Variable type: POSIXct

skim_variable n_missing complete_rate min max median n_unique
date 0 1 2016-01-01 2020-12-31 23:00:00 2018-07-02 11:30:00 43848

4.1 Wind roses

# make a compass rose for this site for this year
openair::windRose(df_SA33, type = "year", key.header = paste0("Southampton site: ", 
    s), layout = c(3, 2))

4.2 Pollution roses

# make a compass rose for this site for this year
openair::pollutionRose(df_SA33, type = "year", key.header = paste0("Southampton site: ", 
    s), layout = c(3, 2))

5 Site: SOUT

City centre: map

skimr::skim(df_SOUT)
Table 5.1: Data summary
Name df_SOUT
Number of rows 184104
Number of columns 17
_______________________
Column type frequency:
factor 2
numeric 14
POSIXct 1
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
code 0 1 FALSE 1 SOU: 184104
site 0 1 FALSE 1 Sou: 184104

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
co 85705 0.53 0.36 0.37 0.00 0.20 0.20 0.50 9.6 ▇▁▁▁▁
pm10 24757 0.87 21.52 13.75 -5.00 12.70 18.00 27.00 437.0 ▇▁▁▁▁
no 23139 0.87 19.33 35.69 -0.07 4.00 9.00 19.00 751.0 ▇▁▁▁▁
no2 23139 0.87 32.74 17.96 0.00 19.00 29.12 43.22 220.0 ▇▂▁▁▁
nox 23140 0.87 62.29 66.51 0.00 27.00 44.00 73.00 1272.0 ▇▁▁▁▁
o3 20097 0.89 36.69 22.85 -0.20 18.00 36.40 52.65 228.0 ▇▅▁▁▁
so2 24278 0.87 3.49 4.44 -3.13 0.86 3.00 5.00 239.0 ▇▁▁▁▁
nv10 87729 0.52 16.16 10.56 -4.10 9.40 14.00 20.00 358.0 ▇▁▁▁▁
v10 87743 0.52 3.23 3.19 -10.00 1.00 2.90 4.50 30.0 ▁▇▁▁▁
nv2.5 100359 0.45 10.17 8.74 -4.00 5.00 7.80 12.30 288.9 ▇▁▁▁▁
pm2.5 96628 0.48 12.86 10.81 -4.90 6.40 9.80 15.50 289.2 ▇▁▁▁▁
v2.5 100357 0.45 3.19 3.04 -10.00 1.30 2.80 4.20 34.0 ▁▇▁▁▁
ws 101853 0.45 4.41 2.47 0.00 2.60 3.90 5.70 21.0 ▇▆▁▁▁
wd 101853 0.45 200.73 103.34 0.00 116.70 228.20 279.50 360.0 ▅▃▃▇▅

Variable type: POSIXct

skim_variable n_missing complete_rate min max median n_unique
date 0 1 2000-01-01 2020-12-31 23:00:00 2010-07-02 11:30:00 184104

5.1 Wind roses

# make a compass rose for this site for this year
openair::windRose(df_SOUT, type = "year", key.header = paste0("Southampton site: ", 
    s), layout = c(3, 2))

5.2 Pollution roses

# make a compass rose for this site for this year
openair::pollutionRose(df_SOUT, type = "year", key.header = paste0("Southampton site: ", 
    s), layout = c(3, 2))

6 Runtime

Report generated using knitr in RStudio with R version 3.6.3 (2020-02-29) running on x86_64-apple-darwin15.6.0 (Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64).

t <- proc.time() - myParams$startTime

elapsed <- t[[3]]

Analysis completed in 33.748 seconds ( 0.56 minutes).

R packages used:

  • here - (Müller 2017)
  • openair - (Carslaw and Ropkins 2012)

References

Carslaw, David C., and Karl Ropkins. 2012. “Openair — an R Package for Air Quality Data Analysis.” Environmental Modelling & Software 27–28 (0): 52–61. https://doi.org/10.1016/j.envsoft.2011.09.008.

Müller, Kirill. 2017. Here: A Simpler Way to Find Your Files. https://CRAN.R-project.org/package=here.