Changes in version 0.5.5 (2026-01-13) - Updated package citations for 2025 - Re-inserted access to interactive tutorial hosted on ShinyApps.io - Rather extensive rewrite and rework of website (no changes to code) - Pushing data.table changes to CRAN to address errors in testhat.R - Addressed CRAN flavour issues with C++ version requirements Changes in version 0.5.4.9000 - Updated the function calls to data.table::frollapply() to match changes in the function arguments - Updated package description to note that one may also use hourly data - Removed link to the interactive tutorial because the server it was running on has been shut down Changes in version 0.5.4 (2025-04-10) - A lot of small fiddly tweaks to meet new CRAN documentation standards - Added the scientific citations of the package for 2023 and 2024 Changes in version 0.5.3.9005 - Minor tweak to event_line() to keep up with changes to ggplot2 Changes in version 0.5.3.9004 - Updated OISST vignette to account for changes in the behaviour of tidync functions Changes in version 0.5.3.9003 - Minor tweak to event_line() to match new ggplot2 syntax Changes in version 0.5.3.9002 - Changed moderate category calculation from '>' to '>=' Changes in version 0.5.3.9001 - Addressing bugs in the calculation of hourly values not ending on even hour steps Changes in version 0.5.3.9000 - Updated URL for MHW tutorial - Basic hourly functionality added to ts2clm() - Tests added for detect_event() - Minor tweak to exceedance() to work with hourly data Changes in version 0.5.2.9009 - More tweaks to return behaviour of exceedance() Changes in version 0.5.2.9008 - Corrected return behaviour of exceedance() to keep backwards compatibility Changes in version 0.5.2.9007 - Fixed a bug in proto_event() when an event lasts for the entire time series - exceedance() now correctly returns extra columns in the original data.frame - Corrected rare edge case in detect_event() and exceedance() where if a single MCS was detected the returned threshold columns would be negative values Changes in version 0.5.2.9006 - Updated NOAA OISST vignette to account for a change they made to the data query process - Removed cpp function seqDates() from package Changes in version 0.5.2.9005 - Removed category functionality from detect_event3() to keep it more streamlined Changes in version 0.5.2.9004 - Minor tweaks to new functions and CodeCov testing implemented Changes in version 0.5.2.9003 - Created detect_event3() and proto_event3() with a new code base to benefit from the speed gains due to data.table internals - Output results (climatologies and metrics) as data.table - Updated and improved documentation Changes in version 0.5.2.9002 - Rolled back overwrite of ts2clm() with ts2clm3() for now - Set default behaviour of detect_event() to return a data.frame, rather than a data.table - A new argument was introduced for most top level functions: returnDF with the default behaviour of TRUE - This explicitly ensures that the functions return data.frames - If returnDF == FALSE the functions will return data.tables - Removed plyr and grid dependencies from package - Added the package development script to the root directory Changes in version 0.5.2.9001 - Removed robust argument from ts2clm() that was deprecated years ago - Replaced ts2clm() with ts2clm3() throughout package - Removed tibble dependency Changes in version 0.5.2.9000 - Fully data.table compliant ts2clm3(), a drop-in replacement for ts2clm() - make_whole_fast(), na_interp(), clim_spread(), and smooth_percentile() included within the main function - Significantly faster climatology calculation - Correct error with climatological variance calculation Changes in version 0.5.1.9000 - Removing dependencies and speeding up code - Removed lubridate and dplyr dependencies Changes in version 0.5.0.9003 - Added links to heatwave3 package on home page and gridded detection vignette. - Addressed CodeCov and created stable version for CRAN - Changed behaviour of category() to address edge case in polar MCS - Corrected bug in category() that did not change the 'V Ice' category in the climatology output - Also a bug that didn't return all of a users columns that are not part of the normal category() output - And a bug that allowed users to unintentionally assign 'V Ice' category to MHWs Changes in version 0.5.0.9002 - Addressed extreme edge case in category() when no Moderate I MCS are detected, just higher categories Changes in version 0.5.0.9001 - Improvements to main pipeline to ensure lat column is passed forward for correct category seasons Changes in version 0.5.0.9000 - Bug hunting in the build-up to v1.0.0 - Addressed issue of y column not passing through correctly from detect_event() to category() when called internally - Changed documentation for category() to more accurately match the output of climatology = TRUE - Looked into behaviour of protoEvents in detect_event() - Added lat_col argument to category() to detect if time series are in N or S hemisphere Changes in version 0.5.0 - Major update in preparation of removing all dependencies and releasing v1.0.0 - Also necessary due to cryptic CRAN error Changes in version 0.4.6.9004 - Removed all dependencies from event_line() and block_average() except plyr - Added line_colours argument to event_line(), allowing users to choose colours of line geoms - Removed all dependencies from category() and exceedance() except for plyr - Starting to remove as many dependencies as possible - Started by removing all but **plyr** dependency from proto_event() and detect_event() Changes in version 0.4.6.9003 - Updated SST data to end of 2022 - Changed behaviour of lolli_plot() and event_line() to now use tidyeval - Note that this is a backwards compatibility breaking change that was required due to changes in ggplot2 v3.0.0 Changes in version 0.4.6.9002 - Updated citations page for all references to heatwaveR from 2022 - Added package names to all functions used in the downloading OISST vignette - Added the MCSice argument to category(), which allows users to directly classify a MCS with a threshold below -1.7°C as a category 'V Ice' event sensu Schlegel et al. (2021; Marine cold-spells) Changes in version 0.4.6.9001 - Added two new vignettes - Alternatives to downloading NOAA OISST data - Trend and break point analyses for MHW metrics Changes in version 0.4.6.9000 - Updated SST time series to 2021-12-31 Changes in version 0.4.6 (2021-10-27) - 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 Changes in version 0.4.5.9002 - 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 Changes in version 0.4.5.9001 - 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() Changes in version 0.4.5.9000 - 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 Changes in version 0.4.5 (2021-01-07) - Created a new vignette that shows how to save gridded MHW results to a NetCDF file - Pushed new major version to CRAN Changes in version 0.4.4.9006 - Some minor tweaks to satisfy CRAN Changes in version 0.4.4.9005 - 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 - The code to allow geom_flame to work with plotly may be found here: https://github.com/robwschlegel/MHWapp/blob/master/shiny/functions.R Changes in version 0.4.4.9004 - 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 Changes in version 0.4.4.9003 - Minor fixes for passing build Changes in version 0.4.4.9002 - Remove the last offending trace of zoo from make_whole. - Fix miscellaneous typos and formatting inconsistencies. Changes in version 0.4.4.9001 - Added MCScorrect argument to catgegory function that allows the user to bound the bottom threshold for MCS categories to -1.8C Changes in version 0.4.4.9000 - 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 Changes in version 0.4.4 (2020-06-27) - Released v0.4.4 to CRAN Changes in version 0.4.3.9001 - 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 Changes in version 0.4.3.9000 - Minor bug fix in gridded detection vignette - category() now works with MCS generated by detect_event() - codecov pushed back up to 100% Changes in version 0.4.3 - 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 Changes in version 0.4.2.9005 - 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 Changes in version 0.4.2.9004 - Fixed bug in detect_event() caused by data.table - data.table no longer allows rounding of NA values Changes in version 0.4.2.9003 - Fixed bug in event_line() caused by data.table Changes in version 0.4.2.9002 - Cleaned up the CITATION file - Improvement to legend appearance for event_line() - Improvement to plotting in category vignette Changes in version 0.4.2.9001 - 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 Changes in version 0.4.2 (2019-12-01) - 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 Changes in version 0.4.1.9004 - Tripled the resolution of the logo in anticipation of creating hex stickers - Removed tidyverse from the list of suggested packages Changes in version 0.4.1.9003 - 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 Changes in version 0.4.1.9002 - 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 Changes in version 0.4.1.9001 - 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 Changes in version 0.4.1.9000 - 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 Changes in version 0.4.1 (2019-09-09) - 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 Changes in version 0.4.0.9000 - Updated NOAA OISST data downloading tutorial to account for minor changes to NOAA ERDDAP servers Changes in version 0.4.0 (2019-07-11) - 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 Changes in version 0.3.6.9004 - Added the ability to choose the number of digits rounded to for the output of ts2clm() Changes in version 0.3.6.9003 - Updated the end date for three time series packaged with heatwaveR to 2018-12-31 Changes in version 0.3.6.9002 - Added n and n_gap arguments to geom_flame() to allow proper screening of heatspikes - These additions also propagate through to geom2trace.GeomFlame Changes in version 0.3.6.9001 - Added some additional options to event_line() to allow users to manipulate the output more without having to get into the source code. Changes in version 0.3.6.9000 - Added S3 object geom2trace.GeomFlame that now allows geom_flame() to be converted to an interactive plotly object via plotly::ggplotly() Changes in version 0.3.6 (2019-01-16) - Updated Zenodo badge to reflect the upload of v0.3.6 - 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 Changes in version 0.3.5.9006 - 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 Changes in version 0.3.5.9005 - Corrected some typos in the gridded event detection vignette Changes in version 0.3.5.9004 - First update of 2019 - Added 'protoEvents' argument to detect_events.R() for returning the proto events rather than a table for the event metrics Changes in version 0.3.5.9003 - 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() Changes in version 0.3.5.9002 - Fixed bug in event_line() that caused it to graph events outside of the spread range - Expanded testing back up to 100% Changes in version 0.3.5.9001 - Fixed bug caused by R not liking dates older than 1970-01-01 - Changed maxPadLength behaviour in ts2clm() to match the Python default settings Changes in version 0.3.5.9000 - Added 'duration_max' to block_average() output - Resumed correct version numbering Changes in version 0.3.5 - 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) Changes in version 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 Changes in version 0.3.3 (2018-08-02) - Added CITATION file so that package citation is now set to JOSS article - Added Zenodo DOI badge - JOSS review process complete - Added JOSS DOI badge - 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 Changes in version 0.3.2 - Edits suggested through JOSS review - Remove unneeded copies of data from functions to improve memory-use efficiency. Changes in version 0.3.1 - 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 Changes in version 0.3.0 (2018-06-22) - 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 Changes in version 0.2.7.9003 - Logic catch for lolli_plot being asked to highlight more events than are present - New vignette that looks at calculating more complex climatologies Changes in version 0.2.7.9002 - Tweak to ts2clm Changes in version 0.2.7.9001 - Tweaks to detect_event and exceedance Changes in version 0.2.7.9000 - 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 - Added CRAN link to pkgdown site - Added Bug Report link to pkgdown site Changes in version 0.2.7 (2018-05-30) - Accepted on CRAN - Submitted to CRAN Changes in version 0.2.6.9002 - 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 - Additional speed improvements - Repair testthat tests Changes in version 0.2.6.9001 - 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 Changes in version 0.2.6.9000 - 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 Changes in version 0.2.5.9003 - 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 Changes in version 0.2.4.9003 - Updated testthat for lolli_plot() and event_line() - Updated testthat for ts2clm() - Updated testthat for detect_event() Changes in version 0.2.4.9002 - Take advantage of C++ speed enhancement in smooth_percentile() by using RcppRoll - Update testthat accordingly Changes in version 0.2.3.9002 - Basic R vs Python vignette finished Changes in version 0.2.3.9001 - 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 Changes in version 0.2.3.9000 - 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) Changes in version 0.2.2.9000 - Removed all instances of detect() in favour of the new pipeline - Updated exceedance() to utilise the internal functions - Updated object names in block_average() Changes in version 0.2.1.9001 - 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 Changes in version 0.2.1.9000 - 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 Changes in version 0.2.0.9000 - 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. Changes in version 0.1.0.9000 - One may now provide alternative baselines and climatologies to detect() Changes in version 0.0.7.9001 - 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 Changes in version 0.0.7.9000 - New category() function returns the category results for events - Still requires testing and improved event naming scheme Changes in version 0.0.6.9000 - 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 Changes in version 0.0.5.9001 - 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() Changes in version 0.0.5.9000 - 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 Changes in version 0.0.4.9000 - Remove restriction to require full years for start/end points of climatology calculations in detect() - Documentation updated accordingly - Vignette on OISST data processing added Changes in version 0.0.3.9000 - Removed rlang dependency - Touch-up to block_average() - Tested make_whole() - Basic testing for other functions Changes in version 0.0.2.9000 - 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 Changes in version 0.0.1.9000 - Added a NEWS.md file to track changes to the package. - Cloned RmarineHeatWaves package to this repo - First build of pkgdown site live