A dedicated Slack channel has been created for announcements, support and to help build a community of practice around this open source package. You may request an invitation to join fromjonathan.callahan@dri.com.
Utilities for working with hourly air quality monitoring datawith a focus on small particulates (PM2.5). A compact data model isstructured as a list with two dataframes. A 'meta' dataframe containsspatial and measuring device metadata associated with deployments at knownlocations. A 'data' dataframe contains a 'datetime' column followed bycolumns of measurements associated with each "device-deployment".The USFS AirFire group works with air quality measurements associated with wildfire smoke and maintains both historical and real-time databases of PM2.5 monitoring data obtained from stationary monitors. This data is used in operational displays and for retrospective analysis. Data ingest and management of air quality “stationary time series” are important ongoing activities.
TheAirMonitor package contains data access functions to easily download harmonized data files as well as data manipulation functions that make it easy to create “recipe style” analysis pipelines. This combination allows analysts to work efficiently with short, readable R scripts. Interactive and base R plotting functions allow for visual review of the data.
TheAirMonitorPlots package containsggplot2 based plotting functions for advanced plots.
Install from CRAN with:
install.packages('AirMonitor')
Install the latest version from GitHub with:
devtools::install_github('mazamascience/AirMonitor')
TheAirMonitor package uses themts data model defined inMazamaTimeSeries.
In this data model, each unique time series is referred to as a“device-deployment” – a timeseries collected by a particular device at a specific location. Multiple device-deployments are stored in memory as amonitor object – an R list with two dataframes:
monitor$meta – rows = unique device-deployments; cols = device/location metadata
monitor$data – rows = UTC times; cols = device-deployments (plus an additionaldatetime column)
A key feature of this data model is the use of thedeviceDeploymentID as a “foreign key” that allowsdata columns to be mapped onto the associated spatial and device metadata in ameta row. The following will always be true:
identical(names(monitor$data),c('datetime',monitor$meta$deviceDeploymentID))Each column ofmonitor$data represents a timeseries associated with a particular ID while each row ofmonitor$data represents asynoptic snapshot of all measurements made at a particular time.
In this manner, both timeseries plots and maps can be created from a singlemonitor object in memory.
Note: Themonitor object time axis specified indata$datetime is guaranteed to be a regular hourly axis with no gaps.
This project is supported by theUSFS AirFire team.