openair: Tools for the Analysis of Air Pollution Data

Tools to analyse, interpret and understand air pollution data. Data are typically hourly time series and both monitoring data and dispersion model output can be analysed. Many functions can also be applied to other data, including meteorological and traffic data.

Install the latest version of this package by entering the following in R:
AuthorDavid Carslaw [aut, cre], Karl Ropkins [aut]
Date of publication2017-04-12 15:34:52 UTC
MaintainerDavid Carslaw <>
LicenseGPL (>= 2)

View on CRAN

Man pages

airbaseFindCode: Helper function to find EEA airbase site codes

airbaseInfo: Get information about airbase sites and instruments

airbaseSplice: Function to simplify and combine airbase data imports

airbaseStats: Import pre-calculated airbase statistics

aqStats: Calculate summary statistics for air pollution data by year

binData: Bin data, calculate mean and bootstrap 95% confidence...

bootMeanDF: Bootsrap confidence intervals in the mean

calcFno2: Estimate NO2/NOX emission ratios from monitoring data

calcPercentile: Calculate percentile values from a time series

calendarPlot: Plot time series values in convential calendar format

conditionalEval: Conditional quantile estimates with additional variables for...

conditionalQuantile: Conditional quantile estimates for model evaluation

corPlot: corrgram plot with conditioning

cutData: Function to split data in different ways for conditioning

drawOpenKey: Scale key handling for openair

import: Generic data import for openair

importADMS: CERC Atmospheric Dispersion Modelling System (ADMS) data...

importAirbase: Import hourly data from the European Environment Agency...

importAURN: Import data from the UK Automatic Urban and Rural Network...

importAURNCsv: AURN csv file data import for openair

importKCL: Import data from King's College London networks

importMeta: Import monitoring site meta data for the AURN, KCL and SAQN...

importSAQN: Scottish Air Quality Network data import for openair

importTraj: Import pre-calculated HYSPLIT 96-hour back trajectories

kernelExceed: Kernel density plot for daily mean exceedance statistics

linearRelation: Linear relations between pollutants

modStats: Calculate common model evaluation statistics

mydata: Example data for openair

openair: Tools for the analysis of air pollution data

openColours: openair colours

percentileRose: Function to plot percentiles by wind direction

polarAnnulus: Bivariate polarAnnulus plot

polarCluster: K-means clustering of bivariate polar plots

polarFreq: Function to plot wind speed/direction frequencies and other...

polarPlot: Function for plotting bivariate polar plots with smoothing.

quickText: Automatic text formatting for openair

rollingMean: Calculate rollingMean values

scatterPlot: Flexible scatter plots

selectByDate: Subset a data frame based on date

selectRunning: Function to extract run lengths greater than a threshold

smoothTrend: Calculate nonparametric smooth trends

splitByDate: Divide up a data frame by time

summaryPlot: Function to rapidly provide an overview of air quality data

TaylorDiagram: Taylor Diagram for model evaluation with conditioning

TheilSen: Tests for trends using Theil-Sen estimates

timeAverage: Function to calculate time averages for data frames

timePlot: Plot time series

timeProp: Time series plot with categories shown as a stacked bar chart

timeVariation: Diurnal, day of the week and monthly variation

trajCluster: Calculate clusters for back tracectories

trajLevel: Trajectory level plots with conditioning

trajPlot: Trajectory line plots with conditioning

trendLevel: trendLevel

windRose: Traditional wind rose plot and pollution rose variation


airbaseFindCode Man page
airbaseInfo Man page
airbaseSplice Man page
airbaseStats Man page
aqStats Man page
binData Man page
bootMeanDF Man page
calcFno2 Man page
calcPercentile Man page
calendarPlot Man page
conditionalEval Man page
conditionalQuantile Man page
corPlot Man page
cutData Man page
drawOpenKey Man page
import Man page
importADMS Man page
importADMSBgd Man page
importADMSMet Man page
importADMSMop Man page
importADMSPst Man page
importAirbase Man page
importAURN Man page
importAURNCsv Man page
importKCL Man page
importMeta Man page
importSAQN Man page
importTraj Man page
kernelExceed Man page
linearRelation Man page
modStats Man page
mydata Man page
openair Man page
openair-package Man page
openColours Man page
percentileRose Man page
polarAnnulus Man page
polarCluster Man page
polarFreq Man page
polarPlot Man page
pollutionRose Man page
quickText Man page
rollingMean Man page
scatterPlot Man page
selectByDate Man page
selectRunning Man page
smoothTrend Man page
splitByDate Man page
summaryPlot Man page
TaylorDiagram Man page
TheilSen Man page
timeAverage Man page
timePlot Man page
timeProp Man page
timeVariation Man page
trajCluster Man page
trajLevel Man page
trajPlot Man page
trendLevel Man page
windRose Man page


R/aqStats.R R/calendarPlot.R R/smoothTrend.R R/importAURNCsv.R R/TheilSen.R R/trendLevel.R R/drawOpenKey.R R/date.breaks.R R/summaryPlot.R R/timePlot.R R/import.2.R R/conditionalQuantile.R R/conditionalEval.R R/corPlot.R R/percentileRose.R R/airbaseSplice.R R/polarPlot.R R/airbaseFindCode.R R/kernelExceed.R R/utilities.R R/scatterPlot.R R/windRose.R R/polarFreq.R R/selectRunning.R R/timeProp.R R/mydata.R R/TaylorDiagram.R R/import.R R/checkPrep.R R/openair-package.R R/cutData.R R/trajPlot.R R/RcppExports.R R/trajCluster.R R/modStats.R R/airbaseInfo.R R/getMeta.R R/importSAQN.R R/polarCluster.R R/openColours.R R/importKCL.R R/importTraj.R R/quickText.R R/importADMS.R R/linearRelation.R R/openair.generics.R R/importAURN.R R/timeAverage.R R/senTheil.R R/calcPercentile.R R/polarAnnulus.R R/timeVariation.R R/calcFno2.R R/airbaseStats.R R/zzz.R R/samp.boot.block.R R/importAirbase.R R/trajLevel.R
man/timeAverage.Rd man/importMeta.Rd man/timeVariation.Rd man/airbaseFindCode.Rd man/aqStats.Rd man/importAirbase.Rd man/binData.Rd man/calendarPlot.Rd man/airbaseInfo.Rd man/trajCluster.Rd man/splitByDate.Rd man/importAURN.Rd man/importAURNCsv.Rd man/smoothTrend.Rd man/import.Rd man/calcFno2.Rd man/drawOpenKey.Rd man/bootMeanDF.Rd man/summaryPlot.Rd man/TheilSen.Rd man/selectByDate.Rd man/timePlot.Rd man/kernelExceed.Rd man/corPlot.Rd man/calcPercentile.Rd man/timeProp.Rd man/importTraj.Rd man/importKCL.Rd man/importADMS.Rd man/modStats.Rd man/trajLevel.Rd man/linearRelation.Rd man/openColours.Rd man/conditionalQuantile.Rd man/rollingMean.Rd man/polarPlot.Rd man/importSAQN.Rd man/conditionalEval.Rd man/cutData.Rd man/windRose.Rd man/mydata.Rd man/percentileRose.Rd man/TaylorDiagram.Rd man/polarAnnulus.Rd man/quickText.Rd man/airbaseStats.Rd man/airbaseSplice.Rd man/trajPlot.Rd man/trendLevel.Rd man/scatterPlot.Rd man/selectRunning.Rd man/polarCluster.Rd man/openair.Rd man/polarFreq.Rd

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.