• Updated URL for MHW tutorial
  • Corrected return behaviour of exceedance() to keep backwards compatibility
  • 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
  • Updated NOAA OISST vignette to account for a change they made to the data query process
  • Removed cpp function seqDates() from package
  • Removed category functionality from detect_event3() to keep it more streamlined
  • Minor tweaks to new functions and CodeCov testing implemented
  • 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
  • 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
  • Removed robust argument from ts2clm() that was deprecated years ago
  • Replaced ts2clm() with ts2clm3() throughout package
  • Removed tibble dependency
  • Removing dependencies and speeding up code
  • Removed lubridate and dplyr dependencies
  • 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
  • Addressed extreme edge case in category() when no Moderate I MCS are detected, just higher categories
  • Improvements to main pipeline to ensure lat column is passed forward for correct category seasons
  • 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
  • Major update in preparation of removing all dependencies and releasing v1.0.0
  • Also necessary due to cryptic CRAN error
  • Starting to remove as many dependencies as possible
  • Started by removing all but **plyr** dependency from proto_event() and detect_event()
  • 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
  • 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)
  • Added two new vignettes
    • Alternatives to downloading NOAA OISST data
    • 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
  • 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
  • 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
  • Cleaned up the CITATION file
  • Improvement to legend appearance for event_line()
  • Improvement to plotting in category vignette
  • 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
  • Updated NOAA OISST data downloading tutorial to account for minor changes to NOAA ERDDAP servers
  • 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.
  • 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

  • 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
  • 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
  • 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)
  • 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
  • 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
  • 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
  • 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
  • Added CRAN link to pkgdown site
  • Added Bug Report link to pkgdown site
  • 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
  • Additional speed improvements
  • 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
  • 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)
  • 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()
  • 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