Skip to contents

dhw 3.0.1

dhw 3.0.0

  • Added calculate_dhm() for exact reproduction of the rolling monthly Mason et al. workflow, including MATLAB window alignment, strict anomaly thresholds, three- or four-month windows, and optional degree-week conversion.

  • Added the scientifically distinct calculate_dhmi_lough() annual standardized Degree Heating Month Index and deprecated the ambiguous legacy calculate_dhmi() interface.

  • Added NOAA-compatible final-product encoding via encoding = "noaa" and encode_noaa().

  • Added NOAA’s 7-day maximum BAA composite (calculate_baa_7d() and product "baa_7d") plus post-15 December 2023 Alert Level 3–5 fixtures.

  • Added a reproducible, all-cell regional NOAA tile validation workflow and vignette covering coastlines, masks and controlled missing-pixel propagation.

  • Added release CI across Linux, macOS and Windows plus scheduled/manual differential checks of CRAN and Bioconductor reverse dependencies.

  • Organised the package into core, optional data-access, and analysis layers; moved provider, plotting, and specialised analysis packages to Suggests.

  • Replaced packaged multi-megabyte validation rasters with a compact complete one-cell baseline fixture and an optional external validation-cache policy.

  • Fixed missing-DHW conversion, completeness boundary detection, annual SST metric grouping, elapsed-time trends, atomic downloads, raster-preserving reef extraction, processing defaults, and hindcast overwrite handling.

Accuracy

  • Reimplemented the NOAA Coral Reef Watch v3.1 monthly climatology exactly: daily SST is averaged by year-month for 1985–2012, each calendar month’s annual means are regressed against year, and the regression is evaluated at 1988.286.
  • Daily climatologies now interpolate cyclically through monthly values on the 15th day, including the December–January and leap-day transitions.
  • calculate_hotspots() now returns the signed SST-minus-MMM product. The 1 degree C accumulation threshold is applied only by calculate_dhw().
  • calculate_dhw() now uses complete 84-calendar-day windows, includes the current day, and propagates missing dates and values instead of treating them as zero heat stress.
  • calculate_baa() implements NOAA’s December 2023 single-day categories from No Stress through Alert Level 5.
  • Added offline NOAA v3.1 regression fixtures spanning Lizard Island, Hawaii, the Florida Keys, and Belize. The complete Lizard 1985–2012 baseline reproduces the published monthly climatology within its 0.01 degree C storage precision; downstream SSTA, HotSpot, and DHW products are also checked against independent NOAA output.

Breaking changes

  • Removed the baa logical argument from create_climatology(). Request BAA explicitly with products = "baa" or include it in a product vector. With products = NULL, the historical default remains all products except BAA.
  • Missing or non-consecutive dates now produce NA DHW values for every affected 84-day window. Code that previously relied on implicit zero filling must repair or explicitly handle the input gaps.
  • HotSpots below zero are retained, matching NOAA’s signed product.

Performance and output

  • Monthly annual means are produced in one terra::tapp() pass and fitted with centered analytical OLS, avoiding per-cell model objects.
  • Daily climatology interpolation reuses exact common-year and leap-year templates.
  • Calculation functions accept filename, overwrite, and wopt so large outputs can be written directly to disk.
  • create_climatology() calculates dependencies lazily and returns/writes only requested products.

dhw 2.0.0

dhw 1.4.0

dhw 1.3.0

dhw 1.2.1

dhw 1.2.0

  • added hindcast_qm(), anomaly-based quantile mapping to reconstruct a hindcast SST time series by bias-correcting a long model dataset (e.g. ERA5) to a shorter observed reference dataset (e.g. OISST), enabling extension of historical SST records.

dhw 1.1.0

  • fixed downloadCoralTemp() and download_OISST() to handle date vectors

  • fixed calculate_baa() to handle NaN in dhw input

  • fixed calculate_dhw() so that if anomaly >= 1, only daily hotspot values greater than or equal to that threshold are included, and if anomaly < 1, all non-NA hotspot values are included without thresholding

  • updated process_CoralTemp() to use futures::future_lapply() instead of parallel::mclapply() to make OS compatible and fix new mc issues in MacOS (to do: process_OISST())

  • added isComplete() function that checks for completeness of download_OISST() and download_CoralTemp() timeseries

  • added plot_sst_timeseries() function for visualising SST time series

  • added plot_max_dhw() function for visualising annual max DHW over a timeseries

  • added plot_annual_dhw function for visualising daily DHW over an annual timeseries

  • added visualising_outputs vignette to display plot/mapping options for outputs

dhw 1.0.0

  • Initial release