Changelog
mqor 0.1.0
This is a minor version update to signal that the development of mqor is entering into a new phase of active use throughout the validation project.
New Features
- The
default_paramshave been once again updated based on outcomes from Task 3 of the European Standard on modelling quality objectives for assessment of ambient air (EC-ENV/2024/OP/0036).
Bug Fixes
- Updated
mutate_rolling_mean()to usehas.nfoverhasNA, which has been deprecated.
mqor 0.0.17
New Features
validate_coverage()now returns padded data, which will help for future use in, e.g.,mutate_rolling_mean().pad_data()is now exported, which pads data without performing the coverage validation.Automatic assumptions of time resolution (e.g., in
validate_coverage()) are now much quicker.
mqor 0.0.16
Bug Fixes
Reinstated the
min_coverageargument forsummarise_daily()andsummarise_annual().Fixed an error which caused
mutate_rolling_mean()to be overly strict with missing values.
mqor 0.0.15
New Features
-
Added
validate_coverage()which ensures short-term data meets data capture thresholds.- Removed the
min_coverageargument fromsummarise_annual()andsummarise_daily(); this is now dealt with by thevalidate_coverage()argument.
- Removed the
-
Added ‘resolution’ and data coverage % options to the Shiny interface. This allows users to define whether their short-term data is hourly or daily, which will be used to filter both the short- and long-term data.
The resolution can also be “other”. This disables data coverage filtering in the mqor interface.
‘Resolution’ purely reflects the time sequence of the data. If a user inputs 8-hour running ozone, this is still hourly data. Similarly, maximum daily 8-hour running ozone is daily data.
If a user provides hourly data with an intention to calculate a daily average within the mqor Shiny interface, they should still indicate that the data is hourly; data capture thresholds are applied on the ‘raw’ data before any averaging is done.
Temporal filtering of short-term data (e.g., for certain seasons) is likely to cause issues with data capture calculations. If a user is filtering for certain time periods, consider setting resolution to ‘other’ to disable data capture thresholds entirely.
Uploading ‘MQOR format’ data to the Shiny interface now allows users to specify a different delimiter. This still defaults to
";".The Shiny interface now fails more gracefully if the user filters away all of their data.
All plotting functions gain the
titleargument, which adds an optional title to the plot.
mqor 0.0.14
New Features
plot_mqi_scatter()gainscensorfor static short-term radar charts.plot_mqi_scatter()now annotates the four quadrants in short-term radar charts.-
summarise_mqo_stats()now includesn(the number of sites) in thesummaryobject, and will now warn if the user provides fewer than 10 sites.- The Shiny interface now also warns if the user provides under 10 sites.+
mqor 0.0.13
Bug Fixes
-
plot_mqi_report()now more consistently uses absolute values when plotting 90th percentiles and applyingcensor.
mqor 0.0.12
New Features
If tasked with assuming the MQI parameters to use,
summarise_mqo_stats()will now print these as a message to alert a user which parameters have been selected.show_annotationsnow includes the pollutant and year.
mqor 0.0.11
New Features
plot_mqi_report()has gainedshow_annotations.plot_mqi_bars()now has a line type legend (for static plots) and a more descriptive plot annotation (for interactive plots) to better describe the horizontal annotations being shown.summarise_mqo_stats()now validates that only a single year of data has been provided, and returns the input year of data in its params.Various plotting functions now verify that
statsandstats2have the sameyearandpollutant.The
fontsizeargument withingpnow controls the size of annotations wheninteractive = TRUE.
Bug Fixes
Fixed an issue determining the resolution of input data for automatic parameter identification.
plot_comparison_bars()now uses RMSU0√(1+β²) as legend labels rather than RMSU0*, reflecting changes in the CEN specification.Annotation size has been reduced to better fit annotations on most plots.
plot_mqi_bars()andplot_comparison_bars()now check for x-axis label overlaps and will remove overlapping axis labels.
mqor 0.0.10
Bug Fixes
Fixed an issue preventing the Shiny dashboard being launched.
Fixed a bug in
mutate_rolling_mean()which would underestimate data capture.
mqor 0.0.9
New Features
The
default_paramshave been updated based on outcomes from Task 3 of the European Standard on modelling quality objectives for assessment of ambient air (EC-ENV/2024/OP/0036).The Shiny GUI can now use the
demo_shorttermanddemo_longtermdatasets by selecting “DEMO” on the first screen.The Shiny GUI now shows the version of MQOR in the navigation bar. This links to the MQOR change log.
When
show_annotations = TRUE, the MQOR version is also included as an annotation.
mqor 0.0.8
New Features
[BREAKING]
stats_shorttermandstats_longtermhave been renamedstatsandstats2wherever they appear. Long- and short-term data will be automatically determined by each function and used appropriately. While this may break existing code, future code will be more streamlined for the user who can simply provide short- and long-term statistics in any order.Most plots have gained the
show_annotationsargument, which allows for the input parameters and complementary indicators to be appended to a greater number of MQI evaluation plots, and for it to be disabled inplot_mqi_scatter().
mqor 0.0.7
New Features
Filtering options have moved around to be in a more sensible order.
The existing temporal filtering options are now exclusive to short-term data.
A user can now select whether they want to use their uploaded long-term data or have the app time-average their short-term data.
If the user selects to time-average the short-term data, they can additionally apply an independent month filter on the short-term data. This allows for seasonal averages to be calculated for pollutants like ozone.
mqor 0.0.5
Bug Fixes
Fixes from resolving disparities in the technical specification:
vec_ti_cor()is now calculated using the correct formula.plot_mqi_scatter()will now put TI_CRMSE on the correct segment of the plot (the inverse of mqor 0.0.4).
mqor 0.0.4
Bug Fixes
vec_ti_crmse()is now calculated usingvec_crmse()andvec_rmsu()instead ofvec_mqi()andvec_pi_bias().plot_mqi_scatter()will now put TI_CRMSE on the correct segment of the plot.plot_mqi_scatter()will now extend the extents of the target diagram if either of |TI_CRMSE| or |TI_BIAS| are greater than 2.
mqor 0.0.3
mqor 0.0.2
Bug Fixes
-
read_delta_resource()will now ignore the case ofstartup.inicolumn headers.