monitor_loadLatest()
,
monitor_loadDaily()
and monitor_loadAnnual()
with improved logic to handle multiple deployments at a single location.
These functions intentionally only return a single
deviceDeploymentID
per locationID
and
preferentially retain AirNow data over data from AIRSIS or WRCC. The new
logic applies to cases where multiple deployments exist within AirNow
(or AIRSIS or WRCC) and retains the deployment that has the most recent
data.monitor_arrange()
to reorder time series in a
mts_monitor object based on a variable in
mts_monitor$meta
.fullAQSID
field in all
loaded data.monitor_loadAnnual()
when loading years
before the first year of AirNow data.NW_Megafires
dataset to combine data from EPA
AQS, AirNow and WRCC.epa_aqs_loadAnnual()
.monitor_loadAnnual()
to load
epa_aqs
data.epaPreference
argument to
monitor_load()
.monitor_combine()
with an
overlapStrategy
argument. With
overlapStrategy = "replace all"
, values from later
timeseries (including NA
) always replace values from
earlier timeseries. With overlapStrategy = "replace na"
,
values from later timeseries only replace NA
values in
earlier timeseries.NW_Megafires
dataset from corrected
database.mts_selectWhere()
function.QC_removeSuspectData
argument to
airsis_load~()
and `wrcc_load~() functions.QC_invalidateConsecutiveSuspectValues()
function.QC_removeSuspectData = TRUE
argument to
airsis_load~()
and `wrcc_load~() functions to remove those
monitors that have values of 2000 ug/m3. A review of the data from
AIRSIS and WRCC shows some archival time series (2015, 2016, 2020) where
all values are one of 0, 1K, 2K, 3K, 4K, 5K.monitor_selectWhere()
for data based
selection.monitor_toPWFSLSmoke()
and
monitor_fromPWFSLSmoke()
to support the
fullAQSID field
monitor_filterDate()
and
monitor_filterDatetime()
to allow one-sided filtering when
passing in only a single startdate
or endddate
argument.Version 0.3 works with data built using a new fullAQSID
field available from AirNow. This unique identifier is more consistent
and should be better supported in the future than the older
AQSID
field.
This change requires a few minor changes mostly in function examples.
CRAN fixes:
CRAN fixes:
simplfy = TRUE
from calls to
base::apply()
as this is the default.Ready for CRAN submission.
airnow_load~()
functions o put
parameterName
argument last.test-loadData.R
epa_aqs_loadAnnual()
until those data files get
rebuilt.monitor_timeRange()
.NaN
data values with NA
when
loading data.AirFire_S3_archiveBaseUrl
as package data.monitor_dailyBarplot()
to use the
palette
argument.Introduction to AirMonitor
Developer Style Guide
monitor_combine()
.archiveBaseUrl
to point to
https://airfire-data-exports.s3.us-west-2.amazonaws.com/monitoring/v2.trimEmptyDays
argument to
monitor_trimDate()
.monitor_aqi()
and support for plots including:
US_EPA$breaks_AQI
pollutant = "AQI"
option to all
addAQI~()
functionsmonitor_leaflet()
so that it can handle
single-timeseries monitor objects.monitor_load() and monitor_loadLatest/Daily/Monthly/Annual()
to intelligently combine data from AirNow, AIRSIS and WRCC.airsis_loadAnnual()
.monitor_leaflet()
now displays deviceDeploymentID in
bold.monitor_combine()
with the
replaceMeta
argument.airsis_loadAnnual()
,
wrcc_loadAnnual()
, airnow_loadMonthly()
.monitor_distance()
to
monitor_getDistance()
to imply that the returned object is
not a mts_monitor object.monitor_filterByDistance()
.monitor_getCurrentStatus()
:
monitor_filterDate()
and monitor_filterDatetime()
.monitor_isEmpty()
.monitor_extractData()
to
monitor_getData()
.monitor_extractMeta()
to
monitor_getMeta()
.monitor_getCurrentStatus()
.monitor_nowcast()
.monitor_dygraph()
.monitor_mutate()
.monitor_filterData()
as too confusing because
it returns an irregular time axis. Anyone wanting to do this kind of
work should be familiar enough with dplyr to do it
themselves.monitor_dailyStatistic()
.monitor_dailyThreshold()
.monitor_dailyBarplot()
.aqiColors()
.monitor_timeseriesPlot()
and
monitor_dailyBarplot()
.airsis_loadLatest()
,
wrcc_loadLatest()
.~_loadDaily()
.AQSID
to coreMetadataNames
.monitor_toCSV()
,
monitor_toPWFSLSmoke()
.monitor_collapse()
,
monitor_distance()
and monitor_select()
.monitor_filter()
to
monitor_filterData()
to be more explicit.monitor_timeseriesPlot()
default to
addAQI = FALSE
.monitor_leaflet()
now always shows higher values on
top.monitor_timeseriesPlot()
.airnow_loadlatest()
.meta$countyName
rather than
meta$county
. This reflects changes in
MazamaLocationutils and thus the mts_monitor
objects created by AirMonitorIngest.monitor_leaflet()
.monitor_timeseriesPlot()
.monitor_timeInfo()
function.CONUS
and US_52
collections of state
codes.monitor_bestTimezone()
.CO
, OZONE
and
PM10
data.monitor_select()
for easier selection of
monitors.monitor_replaceValues()
.QC_negativeValues
argument to
epa_aqs_loadAnnual()