• Trend and break point analyses for MHW metrics
• Updated SST time series to 2021-12-31
• Updated SST time series to 2020-12-31
• Explicitly loading Rcpp due to a change in the behaviour of the package causing ERRORs on CRAN checks
• Updated the MCS colour palette throughout the package
• The new colour palette is very similar, but with improved contrast
• Made a minor but important change to category() so that categories are based on temperature greater (lesser) than the thresholds and not greater (lesser) than or equal to
• Updated the visualisation vignette to now include the code necessary to get geom_flame() to work with plotly now that it is no longer directly supported
• Improved error trapping for ts2clm(), detect_event(), and exceedance()
• Added more citations of the package
• Added a categories argument to detect_event()
• This allows one to determine the categories of events directly, rather than as a second step using the category() function
• Created a new vignette that shows how to save gridded MHW results to a NetCDF file
• Pushed new major version to CRAN
• Some minor tweaks to satisfy CRAN
• Pushing to GitHub actions now triggers codecov correctly
• exceedance now outputs a one row all NA data.frame when there are no events in exceedance of the threshold
• The previous version would return an error if no exceedances were detected, making it generally unusable in gridded data
• All plotly dependencies were removed due to the orphaning of the package
• Moved away from Travis CI to GitHub actions
• Fixed bug in proto_event that caused joinAcrossGaps argument to flag the first n days of a time series as part of an event
• Minor fixes for passing build
• Remove the last offending trace of zoo from make_whole.
• Fix miscellaneous typos and formatting inconsistencies.
• Added MCScorrect argument to catgegory function that allows the user to bound the bottom threshold for MCS categories to -1.8C
• dplyr v1.0.0 no longer handles empty data.frames the same

• It now forces them to logical type, so empty data.frames no longer unnest with normal results
• This was fixed by having detect_event and category return single row NA data.frames instead
• Thinking about phasing out data.table

• Released v0.4.4 to CRAN
• Re-wrote OISST and gridded detection vignettes after finding an ERDDAP server that hosts the NOAA OISST v2.1 data.
• Updated the packaged time series to now use v2.1 data from 1982 to 2019
• Minor bug fix in gridded detection vignette
• category() now works with MCS generated by detect_event()
• codecov pushed back up to 100%
• Release pushed to CRAN in light of changes to data.table and dplyr
• Waiting until NOAA OISST data area available on an ERDDAP server before updating them
• Updated the gridded data vignette to work with OISST v2.1
• Ensured that newly released dplyr v1.0.0 did not introduce any bugs
• Updated vignettes to now work with v2.1 of the OISST data
• Fixed bug in detect_event() caused by data.table

• data.table no longer allows rounding of NA values
• Fixed bug in event_line() caused by data.table
• Cleaned up the CITATION file
• Improvement to legend appearance for event_line()
• Improvement to plotting in category vignette
• Minor spelling error fixes
• Minor tweak to make_whole_fast()
• Added a new citation that used the heatwaveR package
• Minor internal tweak to exceedance function
• Added one small test to get codecov back up to 100%
• Beginning to phase out dplyr and tibble dependencies
• Replacing some dplyr functions with plyr as they appear to be slightly faster and also don’t have the same multicore issues that more recent dplyr developments have created
• Added roundRes argument to detect_event() to allow users to decide the rounding precision of the returned results
• Minor change to ts2clm() that does not alter any functionality
• Publishing new stable version to CRAN due to removal of tidyverse from the list of suggested packages and the important bug fixes to category()
• Fixed bug in category() that incorrectly returned the difference between seas and thresh as the daily intensity value, rather than the actual temperature anomaly above seas

• Also fixed the labelling of days below thresh as Moderate, they are now NA
• category() now adds lower case letters to the ends of event names if there were multiple large events within the same year

• This may cause backwards compatibility issues in very rare cases, but is a necessary change
• Added roundVal argument to category() to allow users to decide the rounding precision of the returned results

• Tripled the resolution of the logo in anticipation of creating hex stickers
• Removed tidyverse from the list of suggested packages
• The potentially backward compatibility breaking design change to have empty data.frames returned as one row of NA values was not as rare of a problem as first thought
• While still respecting the need to not use 1:n vector creation, detect_event() and category() now produce empty data.frames and not one row NA dataframe
• This should ensure continued backwards compatibility
• A bug was discovered where the ts2clm() function does not first check that the time series being fed to it is in correct chronological order

• This was fixed by ordering the data being fed to the function before beginning of the further calculations
• An update to data.table sometime in August, 2019 reduced the packages tolerance for code with 1:n in it

• As this is a potential memory weakness, when this creates an empty vector in multicore calculations it causes the entire run to fall over
• Therefore, all use of 1:n has been replaced with seq_len(n)
• This changed the list outputs when no MHWs are detected to be one row of NA values, rather than an empty list
• This may cause backward compatibility issues, but is extremely unlikely
• An update to the ggplot2 package some time back in August, 2019 changed slightly how Geoms work internally

• This allowed geom_lolli() to fall over in very rare circumstances so this issue has been addressed
• Updated the OISST Preparation vignette to match the improvements to the rerddap package

• Also updated the vignette to be more clear to contact NOAA about data retrieval issues

• Added season argument to category(), which allows the user to specify which season of the MHWs they are interested in:

• ‘range’ - The beginning and ending season of the MHW
• ‘start’ - The season during the start of the MHW
• ‘peak’ - The season during the peak of the MHW
• ‘end’ - The season during the end of the MHW
• Introduced the Algiers time series for examples on using multiple thresholds for atmospheric data
• Fixed a bug in event_line()
• Changed the data.table and ggplot2 dependencies to imports
• heatwaveR is now dependency free
• Added the ability to choose the number of digits rounded to for the output of ts2clm()
• Updated the end date for three time series packaged with heatwaveR to 2018-12-31
• Added n and n_gap arguments to geom_flame() to allow proper screening of heatspikes
• These additions also propagate through to geom2trace.GeomFlame
• Added some additional options to event_line() to allow users to manipulate the output more without having to get into the source code.
• Added S3 object geom2trace.GeomFlame that now allows geom_flame() to be converted to an interactive plotly object via plotly::ggplotly()
• Finished Alternative Thresholds (Complex Climatologies) vignette

• Bumped code coverage back up to 100%

• AN important potential backwards compatibility breaking change is that by default ts2clm() and exceedance() will no longer produce a var column

• The argument var = TRUE may be given to produce this column
• Submitted v0.3.6 to CRAN

• Began editing Alternative (Complex) Climatology vignette
• Changed the default argument for exceedance(maxPadLength) from 3 to FALSE to match the new default for ts2clm()
• Changed the default behaviour of event_line() to no longer require the user to provide start_date and end_date arguments
• Corrected some typos in the gridded event detection vignette
• First update of 2019
• Added ‘protoEvents’ argument to detect_events.R() for returning the proto events rather than a table for the event metrics
• Boxing day update
• Updated text for the OISST preparation vignette
• Updated text for the gridded event detection vignette
• Updated text on the landing page to better reflect the updates that have been made over the past few months
• Fixed typo in event_line() output
• Updated text for the detection and visualisation vignette
• Updated text for the exceedance vignette
• Updated text for the categories vignette
• Updated text for the OISST preparation vignette
• Changed time series checking behaviour of exceedance() so that it is the same as ts2clm()
• Fixed bug in event_line() that caused it to graph events outside of the spread range
• Expanded testing back up to 100%
• Fixed bug caused by R not liking dates older than 1970-01-01
• Changed maxPadLength behaviour in ts2clm() to match the Python default settings
• Added ‘duration_max’ to block_average() output
• Resumed correct version numbering
• Increased functionality of block_average()
• Updated one figure in a vignette
• clim_calc() reinstated to allow for calculation of clims with missing data
• var calculations reinstated for documentation issues
• ts2clm() no longer calls clim_calc(), but clim_calc_cpp() only
• smooth_percentile() no longer provides option to create variance climatology (the need to no longer create var seemed to not be fully implemented in 0.3.4)
• ts2clm() no longer calculates variance column by default
• make_whole() has been deprecated in favour of make_whole_fast()
• All major functions now produce results only up to the fourth decimal place
• Clarified some information on the basic detection vignette
• Corrected a link that went to the wrong page
• Changed error handling in proto_event() to return no events than to stop message with an error.
• This change was picked up by detect_event() without any required changes
• category() required a bit of cajoling to also output a blank dataframe
• Minor tweak to make_whole_fast() to provide a cleaner internal output
• Removed several unnecessary columns from category climatology output
• Fixed bug in ts2clm() that prevented calculation of clims with large contiguous missing periods of data (e.g. ice coverage).
• Added argument to category() that allows one to have the function also output the day-to-day (long) category values, rather than just the summary (wide) output.
• Added lon/lat values to documentation for built-in time series
• Added CITATION file so that package citation is now set to JOSS article
• JOSS review process complete
• BUG FIX: corrected issue with clim_calc_cpp not being able to calculate clims from baselines not beginning and ending on the Julian year by making clim_spread plug the gaps beforehand with row-wise means.
• Rebuilt pkgdown site to reflect version increase
• v0.3.3 submitted to CRAN
• Edits suggested through JOSS review
• Remove unneeded copies of data from functions to improve memory-use efficiency.
• BUG FIX: corrected issue with make_whole_fast which did not create a whole, complete time series (i.e. missing dates were still present); the missing dates caused clim_calc_cpp to fail
• Re-submitted to CRAN in anticipation of ggplot2 changes
• proto_event now handles all event calculations ‘in house’
• This allows detect_event to now be given a theoretically limitless number of thresholds
• Logic catch for lolli_plot being asked to highlight more events than are present
• New vignette that looks at calculating more complex climatologies
• Tweak to ts2clm
• Tweaks to detect_event and exceedance
• Unused Rcpp code removed from master branch
• Logo changed slightly
• Codecov back up to 100%
• Addressed one testthat issue that was causing the OSX CRAN build to fail
• Accepted on CRAN
• Submitted to CRAN
• Fixes to make_whole and testing
• Fixes to block_average
• No longer exporting make_whole and make_whole_fast
• No longer uses zoo for time series NA handling–made custom function to replace it
• Repair testthat tests
• Moved all vignettes relating to the upcoming MHW_detection paper to that repo
• This helps to unclutter this repo as it should be primarily kept for package content
• Added vignette that shows how tweaking arguments for detect changes the outputs between languages and how those outputs may differ
• Changed output of detect_event to better match Python version
• Corrections to testthat to match changes to detect_event output
• Added C++ function, clim_calc_ccp() for faster climatology calculations; speed of climatology calculation comes down from 50.6 ms in R to 3.4 ms in C++ on my MacBook Pro (15-inch, 2017) 2.9 GHz Intel Core i7 16 GB RAM computer
• Updated testthat for lolli_plot() and event_line()
• Updated testthat for ts2clm()
• Updated testthat for detect_event()
• Take advantage of C++ speed enhancement in smooth_percentile() by using RcppRoll
• Update testthat accordingly
• Basic R vs Python vignette finished
• Minor fix to testthat
• codecov up to 100%
• Fix to geom_lolli() n argument
• Fix to lolli_plot() y-axis range
• Minor fix to make_whole()
• Skeleton of R vs Python vignette added
• Major speed-up in the climatology creation function. clim_spread() now returns a matrix, not a data frame. This makes the loop in clim_calc() much faster. In testing with the sst_WA data, it leads to a 3.7 fold speed improvement (520 ms down to 140 ms).
• Speed-up of make_whole() (60 ms down to 40 ms)
• Removed all instances of detect() in favour of the new pipeline
• Updated exceedance() to utilise the internal functions
• Updated object names in block_average()
• Micro edits to documentation
• Testing for all exported and internal functions brought up to speed
• Ensuring that new ts2clm() and detect_event() pipeline returns the same results as the old make_whole() and detect() pipeline
• Phasing in identical names as in the python version
• detect_event() now passing checks
• Must still test for MCSs
• The old detect() function was unpacked and simplified. Internal code is now in new functions, most of which will not be seen by the user. They are make_whole() proto_event(), clim_calc(), smooth_percentile(), clim_spread(), and ts2clm()
• ts2clm() used instead of detect_clim()
• Climatologies can now be calculated independently of the detect functionality
• exceedance() function testthat checks updated to account for change in variable naming
• detect() has now been broken into detect_clim() and detect_event()
• These now also rely on internal functions
• The purpose of this is to create a family of functions that provide different options
• New vignette on making short climatologies.
• One may now provide alternative baselines and climatologies to detect()
• Testing for category()
• Testing for block_average()
• Testing for detect()
• Testing exceedance()
• Removed default threshold for exceedance()
• Tweaks to exceedance() error messages
• Testing for event_line()
• Testing for lolli_plot()
• Tweaks to lolli_plot() error messages
• New category() function returns the category results for events
• Still requires testing and improved event naming scheme
• Minor touch up to examples in geoms.R
• First draft of heatwaveR hex logo added to site
• Added category option to event_line()
• Simplifications and consistency checks to detect()
• Some writing on Baselines and climatology vignette
• Fix to event_line() not plotting MCSs correctly
• Fix error with smooth_percentile and smooth_percentile_width descriptions that were interchanged in detect()
• Simplify initial lines of leap year calculations (remove redundant code)
• change from raster::quantile() to stats::quantile()
• Add option to use a custom baseline to detect() as requested by Maxime Marin (), The University of Tasmania (IMAS) – CSIRO (O&A), and which is present in the python version of the package
• Remove restriction to require full years for start/end points of climatology calculations in detect()
• Documentation updated accordingly
• Vignette on OISST data processing added
• Removed rlang dependency
• Touch-up to block_average()
• Tested make_whole()
• Basic testing for other functions
• Established theme for changelog
• Synced ganalytics
• Fixed event_line() to acknowledge column names other than t and temp
• Fixed lolli_plot() to use underlying geom_lolli()
• Search bar now live
• Removed all but one use of plyr code
• Added a NEWS.md file to track changes to the package.
• Cloned RmarineHeatWaves package to this repo
• First build of pkgdown site live